机器学习线性回归学习总结笔记
线性回归模板:
1)获取数据:
2)划分数据集:
一般使用:train_test_split()
划分数据集的包from sklearn.model_selection import train_test_split
3)标准化处理
StandardScaler()
引包:from sklearn.preprocessing import StandardScaler
-
fit(X)
:计算输入数据集 X 的均值和标准差。这些统计量将用于后续的数据转换。 -
transform(X)
:对输入数据集 X 进行标准化处理,即将 X 缩放到均值为 0、标准差为 1 的分布。 -
fit_transform(X)
:先计算 X 的均值和标准差,然后对 X 进行标准化处理。 -
inverse_transform(X)
:将经过标准化处理的数据集 X 还原回原始数据空间,即逆转标准化操作。
代码示例:
transfer=StandardScaler()
x_train=transfer.fit_transform(x_train)
x_test=transfer.transform(x_test)
4)选择预估器
引包:from sklearn.linear_model import LinearRegression,SGDRegressor,Ridge.......
-
LinearRegression
:实现了普通最小二乘线性回归模型。它适用于特征与目标之间的线性关系,并且假设模型的误差服从正态分布。 -
SGDRegressor
:使用随机梯度下降算法实现的线性回归模型。相比于LinearRegression
,SGDRegressor
对大规模数据集更加高效。 -
Ridge
:通过添加 L2 正则化项来改进线性回归模型。正则化有助于控制模型的复杂度,减轻过拟合问题。 -
lasso: 通过添加 L1 正则化项来改进线性回归模型。
。。。
5)得出模型
权重系数:coef_
偏置:intercept_
6)模型评估
使用mean_squared_error()函数计算均方误差:
引包:from sklearn.metrics import mean_squared_error
代码示例:
y_predict=estimatar.predict(x_test)
print('预测值',y_predict)
error=mean_squared_error(y_test,y_predict)
print('岭回归的均方误差:',error)
7)可视化操作
使用matplotlib
引包:
import matplotlib.pyplot as plt
代码示例:
fig=plt.figure()
ax1=fig.add_subplot(221)
plt.scatter(y_test,y_predict,s=50,c='r',marker='o')
ax1.set_xlabel('y_test',labelpad=10,color='blue')
ax1.set_ylabel('y_predict',color='blue')
ax1.set_title('ax1',color='blue',size=30)y_chazhi=np.array(y_predict-y_test)
ax2=fig.add_subplot(222)
plt.scatter(y_test,y_chazhi,s=50,c='y',marker='o')
ax2.set_xlabel('y_test',labelpad=10,color='blue')
ax2.set_ylabel('y_chazhi',color='blue')
ax2.set_title('ax2',color='blue',size=30)# 特征名和权重系数的bar图
ax3=fig.add_subplot(223)
name_diab=diab.feature_names
y=estimatar.coef_
plt.bar(name_diab,y)
ax3.set_xlabel('name_diab',labelpad=10,color='blue')
ax3.set_ylabel('estimatar.coef_',color='blue')
ax3.set_title('ax3',color='blue',size=30,alpha=0.5)plt.show()