【发布时间】:2017-08-24 10:28:42
【问题描述】:
我将 python 和 scikitlearn 用于线性回归和可视化目的。
我需要创建自己的函数来返回渐变和最佳拟合线 y 截距,而不是使用来自 sklearn 的 linear_model.LinearRegression()。
m = (μ(x) * μ(y) - μ(x * y))/((μ(x))2 - μ(x2))
b = μ(y) - m * μ(x)
其中 μ 是平均函数
我正在努力在 python 中做到这一点。
任何帮助将不胜感激。
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
diabetes = datasets.load_diabetes()
diabetes_X = diabetes.data[:, np.newaxis, 2]
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
regr = linear_model.LinearRegression()
regr.fit(diabetes_X_train, diabetes_y_train)
print('Coefficients: \n', regr.coef_)
print("Mean squared error: %.2f"
% np.mean((regr.predict(diabetes_X_test) - diabetes_y_test) ** 2))
print('Variance score: %.2f' % regr.score(diabetes_X_test, diabetes_y_test))
plt.scatter(diabetes_X_test, diabetes_y_test, color='green', label="Test")
plt.scatter(diabetes_X_train, diabetes_y_train, color='red', label ='Training')
plt.plot(diabetes_X_test, regr.predict(diabetes_X_test), color='blue',
linewidth=3, label='Best fit line')
plt.xticks(())
plt.yticks(())
plt.legend()
plt.show()
【问题讨论】:
-
你能发布你到目前为止所做的事情吗?
标签: python python-2.7 scikit-learn