机器学习笔记(3) —— 线性回归

使用sklearn编程

对于你的线性回归模型,你将使用 scikit-learn 的LinearRegression类。此类会提供函数fit()来将模型与数据进行拟合。

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x_values, y_values)

在上述示例中,model变量是拟合到数据x_values和y_values的线性回归模型。拟合模型意味着寻找拟合训练数据的最佳线条。我们使用模型的predict()函数做出两个预测。

print(model.predict([ [127], [248] ]))
[[ 438.94308857, 127.14839521]]

该模型返回了一个预测数组,每个输入数组一个预测结果。第一个输入[127]的预测结果是438.94308857。第二个输入[248]的预测结果是127.14839521。用[127]这样的数组(而不只是127)进行预测的原因是模型可以使用多个特征进行预测。

多元线性回归

如果你要预测的结果取决于多个变量,可以创建一个更复杂的模型来考虑多个变量。只要这些变量与要解决的问题相关,使用更多自变量/预测器变量就有助于做出更好的预测。

如果只有一个预测器,则线性回归模型是一条线,但是如果添加更多的预测器变量,就会增加更多的维度。

如果有一个预测器变量,线条的方程是

y = m x + b

y=mx+b

图形可能如下所示:

图片

带有一个预测器变量的线性回归

添加一个预测器变量,变成两个预测器变量后,预测方程是

y=m1x1+m2x2+b

要用图形表示,我们需要三维图形,并将线性回归模型表示成一个平面:

图片

带有两个预测器变量的线性回归

你可以使用两个以上的预测器变量,实际上可以使用任意多个,只要有用即可!如果你使用n

n个预测器变量,那么模型可以用以下方程表示:

y=m1x1+m2x2+m3x3​+...+mnxn+b

如果模型有多个预测器变量,则很难用图形呈现,但幸运的是,关于线性回归的所有其他方面都保持不变。我们依然可以通过相同的方式拟合模型并作出预测,我们来试试吧!

线性回归注意事项

线性回归隐含一系列前提假设,并非适合所有情形,因此应当注意以下两个问题。

最适用于线性数据

线性回归会根据训练数据生成直线模型。如果训练数据包含非线性关系,你需要选择:调整数据(进行数据转换)、增加特征数量(参考下节内容)或改用其他模型。

图片

容易受到异常值影响

线性回归的目标是求取对训练数据而言的 “最优拟合” 直线。如果数据集中存在不符合总体规律的异常值,最终结果将会存在不小偏差。

在第一个图表中,模型与数据相当拟合。

图片

但若添加若干不符合规律的异常值,会明显改变模型的预测结果。

图片

在大多数情况下,模型需要基本上能与大部分数据拟合,所以要小心异常值!

正则化比较s

图片

posted @ 2020-06-28 11:50  CQCx64  阅读(139)  评论(0)    收藏  举报