【发布时间】:2018-03-06 20:41:19
【问题描述】:
我有一个 LinearRegression() 模型。我现在要做的基本上是计算一些数据点和回归线之间的距离。
我的数据点是二维点(x, y)
我的问题是:如何从LinearRegression() 模型中得到直线方程?
【问题讨论】:
标签: python scikit-learn
我有一个 LinearRegression() 模型。我现在要做的基本上是计算一些数据点和回归线之间的距离。
我的数据点是二维点(x, y)
我的问题是:如何从LinearRegression() 模型中得到直线方程?
【问题讨论】:
标签: python scikit-learn
拟合模型后,您可以调用coef 和intercept_ 属性来查看系数和截距分别是多少。
但这需要为您的模型编写一个构造公式。我的建议是,一旦您建立模型,做出预测并根据真正的 y 值对其进行评分 -
from sklearn.metrics import mean_squared_error
mean_squared_error(y_test, y_pred) # y_test are true values, y_pred are the predictions that you get by calling regression.predict()
如果目标是计算距离,您可以使用sklearn.metrics 便利函数,而不是寻找方程式并自己手动计算。手动的方法是 -
import numpy as np
y_pred = np.concatenate(np.ones(X_test.shape[0]), X_test) * np.insert(clf.coef_,0,clf.intercept_)
sq_err = np.square(y_pred - y_test)
mean_sq_err = np.mean(sq_err)
【讨论】:
从documentation 中,使用clf.coef_ 作为权重向量,使用clf.intercept_ 作为偏差:
coef_: 数组,形状(n_features, )或(n_targets, n_features)
线性回归问题的估计系数。如果多个 在拟合期间传递目标(y 2D),这是一个 2D 形状数组(n_targets, n_features),如果只通过一个目标,这是一个 长度为n_features的一维数组。
intercept_: 数组中的独立项 线性模型。
一旦你有了这些,请参阅here。
【讨论】: