机器学习(一)线性模型之岭回归器RidgeRegressor
创建岭回归器
- 创建目的
- 一、目标函数、损失函数和正则化是什么?
- 二、详细步骤
- 结果
- 总结
- 源代码和数据集下载
创建目的
在上一篇博客中我们实现了线性回归器模型,但是线性回归器模型具有一个致命的缺点,那就是对异常值敏感。所谓异常值敏感就是线性模型由于考虑到了那些异常店,会使线性模型向异常点“靠拢”,用图片表示就是
可以从图中看到:在没有右下方异常点的时候线性模型拟合成实线的模样,在添加了两个异常值后,原先的实线为了“照顾”那两个异常点,发生了向右下方偏移的情况。这就叫做异常值敏感。
产生敏感的原因在于最小二乘法“照顾”了这两个点,所以要对最小二乘法进行优化,这便产生了岭回归器RidgeRegressor。
注意:岭回归器RidgeRegressor的原理仍然是最小二乘法,但是增加了正则化项的系数作为阈值来消除异常值的影响,这个参数就是alpha。用alpha这个参数来控制对异常值的敏感程度。因此,如果你希望模型对异常值不那么敏感,就需要设置一个较大的alpha值
注意:岭回归器RidgeRegressor的原理仍然是最小二乘法,但是增加了正则化项的系数作为阈值来消除异常值的影响,这个参数就是alpha。用alpha这个参数来控制对异常值的敏感程度。因此,如果你希望模型对异常值不那么敏感,就需要设置一个较大的alpha值
一、目标函数、损失函数和正则化是什么?
什么是目标函数?
定义是:指所关心的目标与相关的因素的函数关系。
比如在线性模型y=ax+b中,为了求出a,b这两个参数,我们使用最小二乘法拟合,这时候最小二乘法得到的函数便是目标函数,是Obj(a,b),是关于a,b的函数,我们的目标是使目标函数最小,即min(Obj(a,b)),这时候我们会采用一阶导等于0来求解所有的极小值,然后在所有的极小值中取最小值,这便是整个过程
什么是损失函数?
损失函数也叫代价函数,是用来评估模型的预测值f(x)与真实值y的差距,是一个正数。可以理解为人和人之间的距离,不论谁前谁后,距离都是正数。所以在计算差距时通常取绝对值,计算机为了避开取绝对值这个麻烦,干脆直接平方,这就有了均方误差。
什么是正则化项?
正则化项,又称惩罚项,主要是用来防止过拟合和提高模型泛化性能的一类方法的统称。
现在我们再来看一下目标函数通常的定义形式:
Obj(Θ)=L(Θ)+Ω(Θ)
中文翻译一下是 :
目标函数 = 损失函数 + 正则项
说这么多,就一句话,正则化是为了消除异常值敏感的
二、详细步骤
# 读入数据
filename = r"data_singlevar1.txt"
x = []
y = []
with open(filename,'r') as f:for line in f.readlines():data = [float(i) for i in line.split(',')]xt, yt = data[:-1],data[-1]#s[:-1] # 等价于 s[0:len(s)],除了最后一个元素的切片x.append(xt)y.append(yt)# 将数据全部用作训练数据
num = len(x)
x_train = np.array(x[:num])
y_train = np.array(y[:num])# 创建回归器
linear_regressor = linear_model.LinearRegression()
linear_regressor.fit(x_train, y_train)# 正则化系数的候选集合
alpha_candidates = [-1000,-50,0,1,10]
for alpha in alpha_candidates:ridge_regressor = linear_model.Ridge(alpha=alpha,fit_intercept=True,max_iter=10000)ridge_regressor.fit(x_train, y_train)# 训练y_train_predict = ridge_regressor.predict(x_train) # 预测所有的数据plt.plot(x_train,y_train_predict,label='alpha='+str(alpha)) # 对每一个alpha值,都画在图中plt.legend() # 给图加上图例
plt.scatter(x_train,y_train) # 在图中画出训练数据的散点图
plt.show() # 展示!
结果
总结
我在原来的数据集中(第一篇博客上面有)添加了两个异常值,在图中的右下角的那两个点。通过一个for循环在图中生成了一个类似于彩虹的图,我把它称之为“彩虹图”。可以看到alpha越来越小,就会越来越向那两个点偏移,当alpha的值小到-1000时,直线直接落到了异常点上。
源代码和数据集下载
链接:https://pan.baidu.com/s/1LMAVQDFNoWzIRxWj9F9iCQ
提取码:qy42
复制这段内容后打开百度网盘手机App,操作更方便哦
机器学习(一)线性模型之岭回归器RidgeRegressor相关推荐
- 机器学习(13)岭回归(线性回归的改进)
目录 一.基础理论 API 二.岭回归:预测波士顿房价 总代码 一.基础理论 岭回归:带有L2正则化的线性回归.(为了解决过拟合) 对病态数据的拟合要强于最小二乘法 API sklearn.linea ...
- 【机器学习】使用集成学习回归器改善预测模型的得分
作者 | SHYAM2106 编译 | Flin 来源 | analyticsvidhya 介绍 集成的一般原则是将各种模型的预测与给定的学习算法相结合,以提高单个模型的鲁棒性. "整体大于 ...
- 机器学习之LASSO,岭回归
回归算法 文章参考 1.线性回归 假设有数据有 其中: 其中m为训练集样本数,n为样本维度,y是样本的真实值.线性回归采用一个多维的线性函数来尽可能的拟合所有的数据点,最简单的想法就是最小化函数值与真 ...
- 深入浅出python机器学习_4.3.1_岭回归的原理 4.3.2_岭回归的参数调节
# 重启显示图加这句代码就好了 %matplotlib inlinefrom sklearn.linear_model import LinearRegressionfrom sklearn.mode ...
- 缺失值填充4——使用线性模型(岭回归、Lasso回归、ElasticNet回归)填充序列缺失值
原始的问题可能是:一个X(包含x1,x2,缺失x,x3-) =====预测=> y 模型填充缺失值:使用:x1,x2,x3- y =====预测=> 缺失x 算法思路 Lasso回归:在线 ...
- 深入浅出python机器学习_4.3.2_岭回归的参数调节-2_绘制折线图
# 重启显示图加这句代码就好了 %matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.line ...
- 机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)
阅读本文需要的背景知识点:标准线性回归算法.一丢丢编程知识 一.引言 前面一节我们学习了机器学习算法系列(三)- 标准线性回归算法(Standard Linear Regression Algor ...
- 大数据分析机器学习(三)之岭回归-医疗心率数据分析
大数据分析机器学习(一)之线性模型-年龄和心率关系 大数据分析机器学习(二)之直方图和多元线性回归 岭回归 岭回归(英文名:ridge regression, Tikhonov regularizat ...
- 常用的三种线性模型算法--线性回归模型、岭回归模型、套索回归模型
常用的三种线性模型算法–线性回归模型.岭回归模型.套索回归模型 线性模型基本概念 线性模型的一般预测模型是下面这个样子的,一般有多个变量,也可以称为多个特征x1.x2.x3 - 最简单的线性模型就是一 ...
- 殊途同归的两种角度理解岭回归(内含有sklearn例子)
在学习统计学专业课<回归分析技术>时学过岭回归,学机器学习时也涉及到岭回归,但是两个角度的思想方法略有不同,但最后的结果却是殊途同归的,最近准备统计学考研的复试时,对比了两种思路,觉得很有 ...
最新文章
- SAP RETAIL 分配表功能的使用
- windows平台cl.exe编译pcre 8.13
- android源码查看源码的版本
- IDEA下svn配置与share project
- 前缀和优化+计蒜客 泡咖啡
- [Node.js] mySQL数据库 -- NPM包
- Java多线程学习二十九:AtomicInteger(原子类) 和 synchronized 的异同点?
- 2017年个人工作总结
- CentOS7安装KVM、KVM安装CentOS7
- java中InvocationHandler 用于实现代理。
- 斐讯K2路由器,版本号V22.6.507.43(最新)刷华硕固件简明教程(附所有工具包)
- 虾米关停之际,抖音快手借道音乐暗战TME
- 宏excel怎么计算机,excel宏的使用/EXCEL 如何关闭宏
- WEB-互补色与对比色的计算与获取 (实用、赞)
- linux命令界面切换桌面,Linux图形界面和命令行界面切换
- 中学语文教学参考杂志社中学语文教学参考编辑部2022年第27期目录
- unity水下模糊效果
- 动态路由和tab页切换路由
- ios wifi 定位_一种IOS设备的集中式Wifi室内定位方法
- 约瑟夫环代码展示,以及理解约瑟夫环
热门文章
- quarkus-contexts和DI介绍(原理)
- windows 2012 nps认证cisco、h3c(comware5)交换机radius认证
- k近邻算法_K近邻算法(一)
- php源码 gd,php 源码安装没有gd库
- QT学习第一步 QT下载及安装详细步骤
- 华为交换机初始化_华为S5700交换机初始化和配置TELNET远程登录
- 后台coder的神器!Bootstrap Layoutit
- java动态字段排序_Java利用Stream来实现多字段排序功能
- ajax中的get和post的区别
- 联邦学习 OR 迁移学习?联邦迁移学习不香吗