scikit-learn 实现简单的二维线性回归

来源:互联网 发布:空燃比传感器数据分析 编辑:程序博客网 时间:2024/06/06 16:34

假设我们有这样的一幅图:

这里写图片描述

需要画一条直线,使得点到样本点的方差最小。

具体点的坐标如下:

>>> x = array([[ 0.07786339],   [-0.03961813],   [ 0.01103904],   [-0.04069594],   [-0.03422907],   [ 0.00564998],   [ 0.08864151],   [-0.03315126],   [-0.05686312],   [-0.03099563],   [ 0.05522933],   [-0.06009656],   [ 0.00133873],   [-0.02345095],   [-0.07410811],   [ 0.01966154],   [-0.01590626],   [-0.01590626],   [ 0.03906215],   [-0.0730303 ]])>>> y = array([ 233.,   91.,  111.,  152.,  120.,   67.,  310.,   94.,  183.,     66.,  173.,   72.,   49.,   64.,   48.,  178.,  104.,  132.,    220.,   57.])

我们使用 python 中的 scikit-learn 第三方模块进行计算:

>>> from sklearn import linear_model>>> import matplotlib.pyplot as plt>>> regr = linear_model.LinearRegression()>>> regr.fit(x,y)>>> y_pred = regr.predict(x)>>> plt.scatter(x, y, color='black')>>> plt.plot(x, y_pred, color='blue')>>> plt.show()

则可以得到下图:

这里写图片描述

图中直线的斜率与截距分别是:

>>> regr.coef_array([ 1121.36526482])>>> regr.intercept_137.38931497870459
原创粉丝点击