Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 09.07.2021
Сообщений: 23

Лучшая степень для полинома используя метрику r2_score

13.05.2022, 14:08. Показов 2200. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
используя метрику r2_score нужно:
возьмите все степени от 1 до 10 по порядку, без пропусков.
найдите степень полинома, где будет лучший r2-score
напишите код, который выводит самую подходящую степень полинома и соответствующий ей скор
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
from sklearn.metrics import r2_score
from sklearn.linear_model import LinearRegression
 
data = pd.read_csv('3.10_non_linear.csv', sep=',')
 
def generate_degrees(source_data: list, degree: int):
    return np.array([
        source_data**n for n in range(1, degree + 1)
    ]).T
 
for i in range(1, 11):
    degree = i
 
    X = generate_degrees(data['x_train'], degree)
    model = LinearRegression().fit(X, data.y_train)
    y_pred = model.predict(X)
    error = r2_score(data['y_train'], y_pred)
    print("Степень полинома %d Ошибка %.5f" % (degree, error))
    plt.scatter(data['x_train'], data['y_train'], 40, 'g', 'o', alpha=0.8, label='data')
    plt.plot(data['x_train'], y_pred)
 
plt.show()
#Степень полинома 1 Ошибка 0.51947
#Степень полинома 2 Ошибка 0.53347
#Степень полинома 3 Ошибка 0.88840
#Степень полинома 4 Ошибка 0.89549
#Степень полинома 5 Ошибка 0.89556
#Степень полинома 6 Ошибка 0.89934
#Степень полинома 7 Ошибка 0.90046
#Степень полинома 8 Ошибка 0.90866
#Степень полинома 9 Ошибка 0.90881
#Степень полинома 10 Ошибка 0.90911
возникла проблема с написанием кода для нахождения лучшего из результатов.
Просто вывести последний результат не подходит, т.к. до 14-го степеня r2_score идет по возрастанию, а дальше снова падает, то-есть нужно вывести значение которое ближе всего к единице.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.05.2022, 14:08
Ответы с готовыми решениями:

Лучший r2_score для степени полинома
В задаче полиномиальной регрессии реализовать код для выбора лучшей степени полинома: - взять все степени от 1 до 10 по порядку - найти...

Для полинома g(x) выполнить следующее действие, используя операцию Символы
g(x)=x4 - x3 + x2 - 11x + 10 Для полинома g(x) выполнить следующее действие: подставьте выражение x = y + z в g(x), используя операцию...

Возведение полинома в степень
Создать линейный список на динамической памяти, в котором от головного элемента к концу записаны целые коэффициенты многочлена n-ой...

6
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
13.05.2022, 17:19
Ну так что вам мешает не выводить результат в консоль, а накапливать его (например) в списке, а потом, после окончания процесса прогона всех ваших полиномов искать в этом списке максимум? Тривиальное-же решение. Чем не подходит?
0
1 / 1 / 0
Регистрация: 09.07.2021
Сообщений: 23
13.05.2022, 17:25  [ТС]
я и пытался так сделать, это версия которая рабочая, но без попыток найти ближайшее значение метрики
0
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
13.05.2022, 18:47
Ну так сделайте то, что я вам посоветовал. Где-же ваше решение-попытка?
И не "ближайшее", а наверное "наибольшее"?

Добавлено через 12 минут
P.S. Кстати, в первом сообщении в начале значиться:
"возьмите все степени от 1 до 10 по порядку"
а в конце этого-же сообщения:
"до 14-го степеня r2_score идет по возрастанию, а дальше снова".
В чем причина этого несоответствия?
0
1 / 1 / 0
Регистрация: 09.07.2021
Сообщений: 23
15.05.2022, 13:00  [ТС]
"до 14-го степеня r2_score идет по возрастанию, а дальше снова". это я проверял до какой степени оно будет увеличиваться, потому что решение должно быть актуально и для других степеней. И нужно именно ближайшее число к единице, так как идеальный результат r2_score равен единице, и нужен вывод числа максимально приближенный к этому результату.
"Где-же ваше решение-попытка?" в моем решении программа выводит последнее созданное нею значение, то-есть созданное мною решение является неправильным. И в данный момент нету абсолютно никакого понимания как можно было бы его реализовать.
0
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
15.05.2022, 13:44
"И нужно именно ближайшее число к единице, так как идеальный результат r2_score равен единице, и нужен вывод числа максимально приближенный к этому результату." - а что, бывает r2_score больше 1? Вы с определением r2_score знакомились? Впрочем - надо "ближе к единице" - ну считайте разницу полученного значения и этой самой единицы. Ничего же (кроме дополнительного явно излишнего действия) не добавиться.

И в данный момент нету абсолютно никакого понимания как можно было бы его реализовать.
Ну, то-есть ранее приведенная для вас подсказка:

накапливать его (например) в списке, а потом, после окончания процесса прогона всех ваших полиномов искать в этом списке максимум?
вам по какой-то причене не подошла. Почему? Объяснить можете?
0
5517 / 2870 / 571
Регистрация: 07.11.2019
Сообщений: 4,761
16.05.2022, 08:46
__art1xgg__, у вас, похоже, ошибка в 11 строке. Формировать матрицу нужно начиная с нулевой степени, а не первой.
Или используйте для этих целей:
Python
1
from sklearn.preprocessing import PolynomialFeatures
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2022, 08:46
Помогаю со студенческими работами здесь

Ввести степень и коэффициенты полинома
Ввести степень и коэффициенты полинома. Ввести границы интервала a, b и точность eps. Найти корень полинома на интервале методом ...

Требуется понизить степень полинома до 1
Добрый день. Есть полином 6-й степени: y=A*sinx+A2*(sinx)^2+A3*(sinx)^3+A4*(sinx)^4+A5*(sinx)^5+A6*(sinx)^6 Требуется понизить...

Функция возведения полинома в степень
помогите написать функцию на matlab возведения полинома в степень. Заранее спасибо)

Функция возведения полинома в неотрицательную степень
помогите написать функцию возведения полинома в неотрицательную степень. Заранее спс)

Возвести число m в целую степень n, не используя операции возведения в степень
С помощью цикла For 1)Возвести число m в целую степень n, не используя операции возведения в степень (в том числе формулу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru