一、学习简单线性回归需要用到的三个库:
import numpy as np # 数组运算库 import matplotlib.pyplot as plt # 画图库 from sklearn.linear_model import LinearRegression #sklearn类库
二、简单线性回归模型
(1)LinearRegression:sklearn重的一个估计器(sklearn中所有的估计器都实现了fit和predict方法)。它的fit()方法学习了公式y=a+bx,利用训练的数据学习产生的最佳拟合模型的简单线性回归的参数值称为普通最小二乘(OLS)。
(2)损失函数(代价函数)
1)含义:用于定义和衡量一个模型的误差。(例:由模型预测出的价格和在训练数据集披萨的实际价格之间的差值被称为残差或者训练误差。)
2)我们可以通过最小化残差的和来生成最佳拟合模型。如果预测出的值都接近实际值那么模型就是拟合的。这种衡量模型拟合的方法叫做残差平方和(RSS)代价函数。公式如下:
X=np.array([[6],[8],[10],[14],[18]]).reshape(-1,1)
y=[7,9,13,17.5,18]
print('Residual sum of squares:%.2f'%np.mean((model.predict(X)-y)**2))
3)求解简单线性回归的OLS
a.求方差
X=np.array([[6],[8],[10],[14],[18]]).reshape(-1,1) variance2=np.var(X,ddof=1)
b.求协方差
y2=np.array([7,9,13,17.5,18]) # 使用Numpy多位数组定义y,由此可以调用它包含的几个计算样本均值的方法 y_bar=y2.mean() covariance2=np.cov(X.transpose(),y2)[0][1]
c.求解OLS参数
# np.around(,)保留小数点后两位 b=np.around(covariance2/variance2,2) a=np.around(y_bar-b*x_bar,2)
三、评估模型
通常我们使用一些方法来评估模型的预测能力,在此以R方为例。
R方,也被称为决定系数,用来衡量数据和回归线的贴近程度。
# -----------通过R方(决定系数)来评估模型的预测能力-------------- # 训练集 X_train=np.array([6,8,10,14,18]).reshape(-1,1) y_train=[7,9,13,17.5,18] # 测试集 X_test=np.array([8,9,11,16,12]).reshape(-1,1) y_test=[11,8.5,15,18,11] # 建立模型 model=LinearRegression() # 训练模型 model.fit(X_train,y_train) # 评估模型的预测能力(通过R方的值) r_squared=model.score(X_test,y_test)# score()方法用来计算模型的R方值 print(r_squared)
----寝室聚餐了,今日未完-----
---------11.24补完了-------



