一元线性回归的数学推导
一元线性回归概念
用相关系数去衡量线性相关性的强弱。
一元线性回归模型
如果 X 和 Y 之间存在着较强的相关关系,则我们有 Y ≈ α+βX,如果我们能求出 α 和 β 的值,根据 X 的值,可以得到 Y 预测值:
如何确定 α 和 β 呢?我们确定的 α 和 β 可以使得 平方误差和最小,根据最小二乘法:
式中: α 和 β 未知。求上式子最小时候的α 和 β 值。对α 和 β 求偏导。
根据:
最后可得:
数学简单示例:
黄志洪老师课件
一元线性回归的Python实现
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
from sklearn.linear_model import LinearRegression
#载入数据
lr = LinearRegression(fit_intercept=True)
columns = ["mpg", "cylinders", "displacement", "horsepower", "weight", "acceleration", "model year", "origin", "car name"]
cars = pd.read_table("auto_mpg.data",delim_whitespace=True, names=columns)
#训练数据
lr.fit(cars[["weight"]], cars[["mpg"]])
predictions = lr.predict(cars[["weight"]])
#显示图形
plt.scatter(cars[["weight"]], cars["mpg"], c='red')
plt.scatter(cars[["weight"]], predictions, c='blue')
plt.show()