线性回归完全关闭

Posted

技术标签:

【中文标题】线性回归完全关闭【英文标题】:Linear Regression completely off 【发布时间】:2016-11-27 07:14:17 【问题描述】:

我目前正在尝试学习 scikit-learn,为此,我对房屋价格相对于平方米大小进行了简单的线性回归。 我已经为一个位置完成了这个模型,一切正常,当我尝试使用另一个数据集时,数据分散得很好,但回归/预测完全关闭!信心也很糟糕,通常是消极的。

这是截图:

代码如下:

style.use('ggplot')

dataset = pd.read_csv('/Path/Data.csv')

X = np.array(dataset[['size']])
y = np.array(dataset[['value']])

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.2)

clf = LinearRegression()
clf.fit(X_train, y_train)

plt.scatter(X,y)
plt.plot(X, clf.predict(X))

plt.tight_layout()
plt.show()

confidence = clf.score(X_test, y_test)
print confidence

【问题讨论】:

只有当数据遵循线性关系时,线性回归才能很好地发挥作用。 由于右端有两个异常值,因此无法在大多数点之间放置一条线,而不会对异常值产生难以置信的错误。请注意,线性回归假设正态分布残差 - 因此您计算平方距离。平方对异常值非常敏感。除了 @hashcode55 已经暗示的那样,趋势看起来至少是多项式的,因此可能还需要添加二次项。 它确实跟着一个,尤其是当 0 @cel 我的其他线性也有异常值:i.imgur.com/C1TOdzO.png.. 但无论如何,我怎样才能让它对那些更宽容? @Codemon,只需画出您认为正确的线并测量与异常值的距离。我猜它会越过 (1000, 6000000),所以对于 5000,它将在 3000 万左右,这离你的情节的上端非常非常远。这会产生 (2900 万)^2 的错误,这将主导一切。 【参考方案1】:

平方误差对异常值过于敏感。我最终删除了它们,因为它们完全关闭了

【讨论】:

以上是关于线性回归完全关闭的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch 完全入门指南!从线性回归逻辑回归到图像分类

看R语言建立回归分析,如何利用VIF查看共线性问题

Sklearn拟合线性回归[关闭]

Sklearn拟合线性回归[关闭]

R中线性回归模型后的置信区间[关闭]

线性回归有解析解为啥还要用梯度下降