当前位置:   article > 正文

【Python机器学习】线性模型——线性回归_线性回归python代码

线性回归python代码

线性回归,又叫普通最小二乘法,是回归问题最简单也是最经典的线性方法。线性回归寻找参数w和b,使得对训练集的预测值与真实的回归目标值y之间的均方误差最小。

均方误差是预测值与真实值之差的平方和除以样本差。线性回归没有参数,是一个优点,但是也因此无法控制模型的复杂度。

一维数据集:
  1. import mglearn.datasets
  2. from sklearn.model_selection import train_test_split
  3. from sklearn.linear_model import LinearRegression
  4. X,y=mglearn.datasets.make_wave(n_samples=60)
  5. X_train,X_test,y_train,y_test=train_test_split(
  6. X,y,random_state=42
  7. )
  8. lr=LinearRegression().fit(X_train,y_train)
  9. print('斜率:{}'.format(lr.coef_))
  10. print('截距:{}'.format(lr.intercept_))
  11. print('训练集score:{:.2f}'.format(lr.score(X_train,y_train)))
  12. print('测试集score:{:.2f}'.format(lr.score(X_test,y_test)))

 score约为0.66,结果不是很好,但训练集和测试集的分数非常相近,说明模型存在欠拟合,而不是过拟合

多维数据集:

mglearn包有个现成数据集,为波士顿房价数据集,有506个样本和105个导出特征。

  1. import mglearn.datasets
  2. from sklearn.model_selection import train_test_split
  3. from sklearn.linear_model import LinearRegression
  4. from sklearn.neighbors import KNeighborsRegressor
  5. import matplotlib.pyplot as plt
  6. import numpy as np
  7. X,y=mglearn.datasets.load_extended_boston()
  8. X_train,X_test,y_train,y_test=train_test_split(
  9. X,y,random_state=0
  10. )
  11. lr=LinearRegression().fit(X_train,y_train)
  12. print('训练集score:{:.2f}'.format(lr.score(X_train,y_train)))
  13. print('测试集score:{:.2f}'.format(lr.score(X_test,y_test)))

比较训练集饿测试集的分数,可以发现在训练集上的预测非常准确,但测试集上就要低很多,说明存在过拟合。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/683664
推荐阅读
相关标签
  

闽ICP备14008679号