Machine Learning | (10) 回归算法-岭回归

举报
DrugAI 发表于 2021/07/15 01:48:37 2021/07/15
【摘要】 Machine Learning | 机器学习简介 Machine Learning | (1) Scikit-learn与特征工程 Machine Learning | (2) sklearn数据集与机器学习组成 Machine Learning | (3) Scikit-learn的分类器算法-k-近邻 Machine Learning | (4) Scikit-...

Machine Learning | 机器学习简介

Machine Learning | (1) Scikit-learn与特征工程

Machine Learning | (2) sklearn数据集与机器学习组成

Machine Learning | (3) Scikit-learn的分类器算法-k-近邻

Machine Learning | (4) Scikit-learn的分类器算法-逻辑回归

Machine Learning | (5) Scikit-learn的分类器算法-朴素贝叶斯

Machine Learning | (6) Scikit-learn的分类器算法-性能评估

Machine Learning | (7) Scikit-learn的分类器算法-决策树(Decision Tree)

Machine Learning | (8) Scikit-learn的分类器算法-随机森林(Random Forest)

Machine Learning | (9) 回归算法-线性回归

Machine Learning | (10) 回归算法-岭回归


回归算法之岭回归

具有L2正则化的线性最小二乘法。岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。当数据集中存在共线性的时候,岭回归就会有用。

sklearn.linear_model.Ridge


  
  1. class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state=None)**
  2. """
  3. :param alpha:float类型,正规化的程度
  4. """

  
  1. from sklearn.linear_model import Ridge
  2. clf = Ridge(alpha=1.0)
  3. clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1]))

方法

score(X, y, sample_weight=None)

clf.score()

 

属性

coef_


  
  1. clf.coef_
  2. array([ 0.34545455, 0.34545455])

intercept_


  
  1. clf.intercept_
  2. 0.13636...

 


案例分析


  
  1. def linearmodel():
  2. """
  3. 线性回归对波士顿数据集处理
  4. :return: None
  5. """
  6. # 1、加载数据集
  7. ld = load_boston()
  8. x_train,x_test,y_train,y_test = train_test_split(ld.data,ld.target,test_size=0.25)
  9. # 2、标准化处理
  10. # 特征值处理
  11. std_x = StandardScaler()
  12. x_train = std_x.fit_transform(x_train)
  13. x_test = std_x.transform(x_test)
  14. # 目标值进行处理
  15. std_y = StandardScaler()
  16. y_train = std_y.fit_transform(y_train)
  17. y_test = std_y.transform(y_test)
  18. # 3、估计器流程
  19. # LinearRegression
  20. lr = LinearRegression()
  21. lr.fit(x_train,y_train)
  22. # print(lr.coef_)
  23. y_lr_predict = lr.predict(x_test)
  24. y_lr_predict = std_y.inverse_transform(y_lr_predict)
  25. print("Lr预测值:",y_lr_predict)
  26. # SGDRegressor
  27. sgd = SGDRegressor()
  28. sgd.fit(x_train,y_train)
  29. # print(sgd.coef_)
  30. y_sgd_predict = sgd.predict(x_test)
  31. y_sgd_predict = std_y.inverse_transform(y_sgd_predict)
  32. print("SGD预测值:",y_sgd_predict)
  33. # 带有正则化的岭回归
  34. rd = Ridge(alpha=0.01)
  35. rd.fit(x_train,y_train)
  36. y_rd_predict = rd.predict(x_test)
  37. y_rd_predict = std_y.inverse_transform(y_rd_predict)
  38. print(rd.coef_)
  39. # 两种模型评估结果
  40. print("lr的均方误差为:",mean_squared_error(std_y.inverse_transform(y_test),y_lr_predict))
  41. print("SGD的均方误差为:",mean_squared_error(std_y.inverse_transform(y_test),y_sgd_predict))
  42. print("Ridge的均方误差为:",mean_squared_error(std_y.inverse_transform(y_test),y_rd_predict))
  43. return None

 

 

文章来源: drugai.blog.csdn.net,作者:DrugAI,版权归原作者所有,如需转载,请联系作者。

原文链接:drugai.blog.csdn.net/article/details/104321088

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。