Форум сайта python.su
0
Дан файл “boston_houses.csv”
Задание: “Your task is to calculate the vector of the coefficients of the linear regression for the prediction of the first variable (the first column of data) by all the rest.”
“Нарисовал” два решения:
from numpy import loadtxt from sklearn.linear_model import LinearRegression x = loadtxt('boston_houses.csv', delimiter=',', skiprows=1) r = LinearRegression().fit(x[:, 1 :], x[:, 0]) print(r.intercept_, *r.coef_) и from numpy import loadtxt import statsmodels.api as sm x = loadtxt('boston_houses.csv', delimiter=',', skiprows=1) y = x[:, 0] x = x[:, 1 :] x = sm.add_constant(x) model = sm.OLS(y, x) print(*model.fit().params)
Отредактировано udeep (Дек. 13, 2019 11:13:07)
Офлайн
568
udeep
как мне кажется, суть задачи была именно в том, чтобы вы сами реализовали алгоритм линейной регрессии, а не использовали готовое решение
Офлайн
0
FishHookСтранно… и в условиях об этом умалчивается. - Модуль statsmodels реально не установлен, а вот sklearn вылетает c "Runtime error … UserWarning: Permission denied …“
udeepкак мне кажется, суть задачи была именно в том, чтобы вы сами реализовали алгоритм линейной регрессии, а не использовали готовое решение
Отредактировано udeep (Дек. 13, 2019 18:05:03)
Офлайн
568
udeep
+ Не встречал в курсе необходимости ”повторять" встроенные функции.
Офлайн
0
FishHook
В какое место они встроенные?
Офлайн
0
Решил:
from numpy import array, linalg, loadtxt x = loadtxt('boston_houses.csv', delimiter=',', skiprows=1) y = array(x[:, 0]) x[:, 0] = [1.] * len(x) t = x.T print(*linalg.inv(t.dot(x)).dot(t).dot(y))
Отредактировано udeep (Дек. 14, 2019 20:50:23)
Офлайн