线性回归的改进-岭回归

news/2024/7/1 3:12:52

 线性回归的改进-岭回归

1 API

  • sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False) 【normalize:如果在特征工程处进行了标准化处理,此处就不需要再做处理】
    • 具有l2正则化的线性回归
    • alpha:正则化力度,也叫 λ   【alpha=1.0为默认】
      • λ取值:0~1 1~10
    • solver:会根据数据自动选择优化方法   【solver="auto" 为默认】
      • sag:如果数据集、特征都比较大,选择该随机梯度下降优化
    • normalize:数据是否进行标准化
      • normalize=False:可以在fit之前调用preprocessing.StandardScaler标准化数据
    • Ridge.coef_:回归权重
    • Ridge.intercept_:回归偏置

Ridge方法相当于SGDRegressor(penalty='l2', loss="squared_loss"),只不过SGDRegressor实现了一个普通的随机梯度下降学习,推荐使用Ridge(实现了SAG)

  • sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)
    • 具有l2正则化的线性回归,可以进行交叉验证
    • coef_:回归系数
class _BaseRidgeCV(LinearModel):def __init__(self, alphas=(0.1, 1.0, 10.0),fit_intercept=True, normalize=False,scoring=None,cv=None, gcv_mode=None,store_cv_values=False):

2 观察正则化程度的变化,对结果的影响?

  • 正则化力度越大,权重系数会越小
  • 正则化力度越小,权重系数会越大

3 波士顿房价预测

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, RidgeCVdef linear_model3():"""线性回归:岭回归:return:"""#  1.获取数据data = load_boston()#  2.数据集划分x_train, x_test, y_train, y_test = train_test_split(data.data, data.target, random_state=22)#  3.特征工程-标准化transter = StandardScaler()x_train = transter.fit_transform(x_train)x_test = transter.fit_transform(x_test)#  4.机器学习-线性回归(岭回归)estimator = Ridge(alpha=1)# estimator = RidgeCV(alphas=(0.1, 1, 10))estimator.fit(x_train, y_train)#  5.模型评估#  5.1获取系数等值y_predict = estimator.predict(x_test)print("预测值为:\n", y_predict)print("模型中的系数为:\n", estimator.coef_)print("模型中的偏执为:\n", estimator.intercept_)#  5.2评价#  均方误差error = mean_squared_error(y_test, y_predict)print("误差为:\n", error)linear_model3()

运行结果:

 


http://lihuaxi.xjx100.cn/news/267147.html

相关文章

能力差的程序员90%输在这点上!CTO:其实都是瞎努力!

在大数据浪潮当中,数据分析是这个时代的不二“掘金技能”。我们每一个人,每天无时无刻都在生产数据,一分钟内,微博上新发的数据量超过10万,b站的视频播放量超过600万......这些庞大的数字,意味着什么&#…

「薅」52图初探Linux通用知识

噗。。为啥不是面试题了,封面船去哪里了?要开好船,先回到我们的初心---Linux,这篇文章是Linux的超级基础且经常用到的内容,不多说,直接肝!可以直接拉到文末点个赞!当然,如…

VBS病毒弱点

VBS脚本病毒由于其编写语言为脚本,因而他不会像PE文件那样方便灵活,它的运行是方便灵活的, 它的运行是需要条件的(不过这种条件默认情况下就具备啦)VBS脚本病毒具有如下弱点。 ①绝大部分VBS脚本病毒运行时需要用到一个对象&#…

10个必知必会的PyCharm使用技巧!

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达来源丨麻瓜编程1. 查看使用库源码PyCharm 主程序员在 Stackoverflow 上答道经常听人说,多看源码。源码不仅能帮我们搞清楚运行机制,还能学习优秀的库…

【leetcode75】Intersection of Two Arrays(数组的交集)

题目描述: 给定两个数组求他们的公共部分,输出形式是数组,相同的元素只是输出一次 例如: nums1 [1, 2, 2, 1], nums2 [2, 2], return [2]. 原文描述: Given two arrays, write a function to compute their intersec…

kvm-桥接模式(二)

1.宿主机-添加br0桥接 宿主机信息:IP是: 192.168.2.13网卡是: ens33 操作:(1).添加一个br0的桥接vi /etc/sysconfig/network-scripts/ifcfg-br0DEVICEbr0 TYPEBridgeBOOTRPOTOstaticIPADDR192.168.2.13NETMASK255.255.255.0GATEWAY192.168.2.1DNS1192.168.2.1ONBOOTyes重启网路…

线性回归之模型的保存和加载

线性回归之模型的保存和加载 1 sklearn模型的保存和加载API from sklearn.externals import joblib 【目前这行代码报错,直接写import joblib就可以了】 保存:joblib.dump(estimator, test.pkl)加载:estimator joblib.load(test.pkl)【注…

xp命令大全

winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导 winchat--------XP自带局域网聊天 mem…