С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
5 / 3 / 2
Регистрация: 11.02.2017
Сообщений: 32

Построение модели с использованием полиномиальной функции

11.01.2018, 03:22. Показов 4103. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Сам код
Кликните здесь для просмотра всего текста
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
from sklearn import datasets, linear_model
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import Pipeline
from sklearn.model_selection import cross_val_score
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
## подкл выборку
 
x_train = pd.read_table ("tic/ticdata2000.txt", header = None).iloc [0:4000, 0:85]
x_test = x_train.iloc[0:4000, 84]
 
 
y_train = pd.read_table ("tic/ticeval2000.txt", header = None)
y_test = pd.read_table ("tic/tictgts2000.txt", header = None)
 
 
## обучение выборки
regression = linear_model.LinearRegression()
regression.fit (x_train, y_train)
 
 
train_predict = regression.predict (x_train)
 
print('Коэффициенты: \n', regression.coef_)
print("Cреднеквадратичная ошибка: %.2f" % mean_squared_error(y_train, train_predict))
print('Оценка отклонения: %.2f' % r2_score(y_train, train_predict))
 
## Проверка точности модели по тестовой выборке и запись в результирующий файл
y_pr = pd.DataFrame(train_predict)
y_test = y_test.reset_index(drop = True)
res = pd.concat([y_pr, y_test], axis=1)
res.to_csv("result.txt", index = False)
 
degrees = [1,5]
err = [1,5]
x_train_pol = x_train
y_train_pol = x_test
x_test_pol = y_train
y_test_pol = y_test
 
for i in range(len(degrees)):
    polynomial_features = PolynomialFeatures(degree = degrees[i],
                                             include_bias = False)
    linear_regression = LinearRegression()
    pipeline = Pipeline([("polynomial_features", polynomial_features),
                         ("linear_regression", linear_regression)])
    pipeline.fit(x_train_pol, y_train_pol)
    scores = cross_val_score(pipeline, x_train_pol, y_train_pol,
                             scoring="neg_mean_squared_error")
    pred_y = pipeline.predict(x_test_pol)
    err[i] = -scores.mean()
    print("\nСтепень: {}\nСреднеквадратичная ошибка = {}(+/- {})".format(degrees[i], -scores.mean(),
                                               scores.std()))
    print('Показатель отклонения: %.3f' % r2_score(y_test_pol, pred_y))


Выборка взята отсюда
Собственно нужно построить построить модель с использованием полиномиальной функции (пример: http://scikit-learn.org/stable... fitting-py)

вылетает ошибка
Кликните здесь для просмотра всего текста
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
MemoryError                               Traceback (most recent call last)
<ipython-input-5-84ddafffa438> in <module>()
     12     pipeline = Pipeline([("polynomial_features", polynomial_features),
     13                          ("linear_regression", linear_regression)])
---> 14     pipeline.fit(x_train_pol, y_train_pol)
     15     scores = cross_val_score(pipeline, x_train_pol, y_train_pol,
     16                              scoring="neg_mean_squared_error")
 
/usr/local/lib/python3.5/dist-packages/sklearn/pipeline.py in fit(self, X, y, **fit_params)
    255             This estimator
    256         """
--> 257         Xt, fit_params = self._fit(X, y, **fit_params)
    258         if self._final_estimator is not None:
    259             self._final_estimator.fit(Xt, y, **fit_params)
 
/usr/local/lib/python3.5/dist-packages/sklearn/pipeline.py in _fit(self, X, y, **fit_params)
    220                 Xt, fitted_transformer = fit_transform_one_cached(
    221                     cloned_transformer, None, Xt, y,
--> 222                     **fit_params_steps[name])
    223                 # Replace the transformer of the step with the fitted
    224                 # transformer. This is necessary when loading the transformer
 
/usr/local/lib/python3.5/dist-packages/sklearn/externals/joblib/memory.py in __call__(self, *args, **kwargs)
    360 
    361     def __call__(self, *args, **kwargs):
--> 362         return self.func(*args, **kwargs)
    363 
    364     def call_and_shelve(self, *args, **kwargs):
 
/usr/local/lib/python3.5/dist-packages/sklearn/pipeline.py in _fit_transform_one(transformer, weight, X, y, **fit_params)
    587                        **fit_params):
    588     if hasattr(transformer, 'fit_transform'):
--> 589         res = transformer.fit_transform(X, y, **fit_params)
    590     else:
    591         res = transformer.fit(X, y, **fit_params).transform(X)
 
/usr/local/lib/python3.5/dist-packages/sklearn/base.py in fit_transform(self, X, y, **fit_params)
    519         else:
    520             # fit method of arity 2 (supervised transformation)
--> 521             return self.fit(X, y, **fit_params).transform(X)
    522 
    523 
 
/usr/local/lib/python3.5/dist-packages/sklearn/preprocessing/data.py in transform(self, X)
   1338 
   1339         # allocate output data
-> 1340         XP = np.empty((n_samples, self.n_output_features_), dtype=X.dtype)
   1341 
   1342         combinations = self._combinations(n_features, self.degree,
 
MemoryError:


С питоном всё очень плохо у меня, подскажите из-за чего ошибка и как исправить D:
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2018, 03:22
Ответы с готовыми решениями:

Построение продукционной модели представления знаний с использованием конфликтного набора в конкретной предметной област
Нужно создать систему правил для предметной области «посещение концерта». Исходные данные – «идти на концерт». Имеем следующие правила: ...

Построение графика функции с использованием подпрограммы-функции
Помогите с задачей: требуется написать программу для построения графика функции, где начальные параметры Х, шаг dX и значение Y для...

Построение фигур с использованием функции RND
Здравствуй, люд. Пока начинающий в бейсике, и вот толкнулся я, значит, с такой проблемой. Нужно построить, данные ниже, изображения. ...

5
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 6
11.01.2018, 11:33
MemoryError. Такое бывает, к примеру, при запросе слишком большого куска памяти.
0
110 / 36 / 5
Регистрация: 27.12.2012
Сообщений: 130
11.01.2018, 12:02
Цитата Сообщение от dondublon Посмотреть сообщение
MemoryError. Такое бывает, к примеру, при запросе слишком большого куска памяти.
Да, но сам файл очень маленький. И там линейная наипростейшая регрессия, без симуляций и прочего. Должно все решатся за 1-2 секунды.

Цитата Сообщение от Enmaboya Посмотреть сообщение
С питоном всё очень плохо у меня, подскажите из-за чего ошибка и как исправить D:
А до 44 строки код нормально работает? Может данные неправильно читает?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 6
11.01.2018, 12:04
Цитата Сообщение от vorobichek Посмотреть сообщение
Да, но сам файл очень маленький. И там линейная наипростейшая регрессия, без симуляций и прочего. Должно все решатся за 1-2 секунды.
Ну, тут уж не знаю.
0
5 / 3 / 2
Регистрация: 11.02.2017
Сообщений: 32
11.01.2018, 18:31  [ТС]
Цитата Сообщение от vorobichek Посмотреть сообщение
А до 44 строки код нормально работает? Может данные неправильно читает?
да, ошибка именно при полиноме.

если полинома два, допустим 1 и 4, но всё более менее нормально работает.

но при добавлении третьего, 1, 4 и 14, например, то вылетает вышеуказанная ошибка
0
110 / 36 / 5
Регистрация: 27.12.2012
Сообщений: 130
11.01.2018, 19:42
Цитата Сообщение от Enmaboya Посмотреть сообщение
если полинома два, допустим 1 и 4, но всё более менее нормально работает.
но при добавлении третьего, 1, 4 и 14, например, то вылетает вышеуказанная ошибка
Что такое два/три полинома 1, 4, 14 с математической точки зрения? Может вы слишком много генерируете дополнительных переменных, что аж памяти не хватает? 14 это же не только X1, X2 и так далее в степенях от 1 до 14, но и все пересечения:

Полином 2 degree c 2мя переменными:
https://www.cyberforum.ru/cgi-bin/latex.cgi?a_{0}+a_{1}x_{1}^{2}+a_{2}x_{2}^{2}+a_{3}x_{1}x_{2}
А если у вас 84 переменных и полином 14 уровня... да еще и со всеми пересечениями....

Попробуйте добавить interaction_only=True в PolynomialFeatures(degree = degrees[i], include_bias = False).

Глобально лучше не баловаться этой регрессией и не брать полиномы выше 3-4ого. Если вы берете 14, то должны объяснить почему именно 14. Например degree 2 означает U образная поверхность. Degree 3 - кубическая парабола с седловой точкой.

П.с. если странные слова, извините. Я на русском не училась в вузе и не работаю. Некоторых терминов просто не знаю.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.01.2018, 19:42
Помогаю со студенческими работами здесь

Построение графика функции с использованием Curve
Народ, можете скинуть код программы, где используется Curve (построение кривой линии по точкам, координаты которых заданы в массиве). Или...

Построение изолиний с использованием функции contour
Здравствуйте господа. Суть вопроса, с которым столкнулся - это создание изолиний от функции, которую я приложу ниже: clear all ...

Мат. модели и блок-схемы на ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ и с использованием подпрограмм (процедуры и функции)
Привет всем! Помогите пожалуйста, нужны математические модели и блок-схемы к следующим задачкам: (Delphi 7) Задачи на циклические...

Приближение Лагранжа в полиномиальной функции
Учитывая эту функцию f (x) = ax ^ 2 + bx + c + sin (dx) с помощью Лагранжа в точке m = c, требуется выходное значение функции в точке m и...

Построение графика функции с использованием логарифмической шкалы
1) Задайте массив значений переменной x = 0.001, 0.01, 0.1, 1, 10, 100, 1000. Подсказка: Для удобства задания массива можно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru