创建岭回归器

  • 创建目的
  • 一、目标函数、损失函数和正则化是什么?
  • 二、详细步骤
  • 结果
  • 总结
  • 源代码和数据集下载

创建目的

在上一篇博客中我们实现了线性回归器模型,但是线性回归器模型具有一个致命的缺点,那就是对异常值敏感。所谓异常值敏感就是线性模型由于考虑到了那些异常店,会使线性模型向异常点“靠拢”,用图片表示就是

可以从图中看到:在没有右下方异常点的时候线性模型拟合成实线的模样,在添加了两个异常值后,原先的实线为了“照顾”那两个异常点,发生了向右下方偏移的情况。这就叫做异常值敏感。

产生敏感的原因在于最小二乘法“照顾”了这两个点,所以要对最小二乘法进行优化,这便产生了岭回归器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相关推荐

  1. 机器学习(13)岭回归(线性回归的改进)

    目录 一.基础理论 API 二.岭回归:预测波士顿房价 总代码 一.基础理论 岭回归:带有L2正则化的线性回归.(为了解决过拟合) 对病态数据的拟合要强于最小二乘法 API sklearn.linea ...

  2. 【机器学习】使用集成学习回归器改善预测模型的得分

    作者 | SHYAM2106 编译 | Flin 来源 | analyticsvidhya 介绍 集成的一般原则是将各种模型的预测与给定的学习算法相结合,以提高单个模型的鲁棒性. "整体大于 ...

  3. 机器学习之LASSO,岭回归

    回归算法 文章参考 1.线性回归 假设有数据有 其中: 其中m为训练集样本数,n为样本维度,y是样本的真实值.线性回归采用一个多维的线性函数来尽可能的拟合所有的数据点,最简单的想法就是最小化函数值与真 ...

  4. 深入浅出python机器学习_4.3.1_岭回归的原理 4.3.2_岭回归的参数调节

    # 重启显示图加这句代码就好了 %matplotlib inlinefrom sklearn.linear_model import LinearRegressionfrom sklearn.mode ...

  5. 缺失值填充4——使用线性模型(岭回归、Lasso回归、ElasticNet回归)填充序列缺失值

    原始的问题可能是:一个X(包含x1,x2,缺失x,x3-) =====预测=> y 模型填充缺失值:使用:x1,x2,x3- y =====预测=> 缺失x 算法思路 Lasso回归:在线 ...

  6. 深入浅出python机器学习_4.3.2_岭回归的参数调节-2_绘制折线图

    # 重启显示图加这句代码就好了 %matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltfrom sklearn.line ...

  7. 机器学习算法系列(四)- 岭回归算法(Ridge Regression Algorithm)

    阅读本文需要的背景知识点:标准线性回归算法.一丢丢编程知识 一.引言   前面一节我们学习了机器学习算法系列(三)- 标准线性回归算法(Standard Linear Regression Algor ...

  8. 大数据分析机器学习(三)之岭回归-医疗心率数据分析

    大数据分析机器学习(一)之线性模型-年龄和心率关系 大数据分析机器学习(二)之直方图和多元线性回归 岭回归 岭回归(英文名:ridge regression, Tikhonov regularizat ...

  9. 常用的三种线性模型算法--线性回归模型、岭回归模型、套索回归模型

    常用的三种线性模型算法–线性回归模型.岭回归模型.套索回归模型 线性模型基本概念 线性模型的一般预测模型是下面这个样子的,一般有多个变量,也可以称为多个特征x1.x2.x3 - 最简单的线性模型就是一 ...

  10. 殊途同归的两种角度理解岭回归(内含有sklearn例子)

    在学习统计学专业课<回归分析技术>时学过岭回归,学机器学习时也涉及到岭回归,但是两个角度的思想方法略有不同,但最后的结果却是殊途同归的,最近准备统计学考研的复试时,对比了两种思路,觉得很有 ...

最新文章

  1. SAP RETAIL 分配表功能的使用
  2. windows平台cl.exe编译pcre 8.13
  3. android源码查看源码的版本
  4. IDEA下svn配置与share project
  5. 前缀和优化+计蒜客 泡咖啡
  6. [Node.js] mySQL数据库 -- NPM包
  7. Java多线程学习二十九:AtomicInteger(原子类) 和 synchronized 的异同点?
  8. 2017年个人工作总结
  9. CentOS7安装KVM、KVM安装CentOS7
  10. java中InvocationHandler 用于实现代理。
  11. 斐讯K2路由器,版本号V22.6.507.43(最新)刷华硕固件简明教程(附所有工具包)
  12. 虾米关停之际,抖音快手借道音乐暗战TME
  13. 宏excel怎么计算机,excel宏的使用/EXCEL 如何关闭宏
  14. WEB-互补色与对比色的计算与获取 (实用、赞)
  15. linux命令界面切换桌面,Linux图形界面和命令行界面切换
  16. 中学语文教学参考杂志社中学语文教学参考编辑部2022年第27期目录
  17. unity水下模糊效果
  18. 动态路由和tab页切换路由
  19. ios wifi 定位_一种IOS设备的集中式Wifi室内定位方法
  20. 约瑟夫环代码展示,以及理解约瑟夫环

热门文章

  1. quarkus-contexts和DI介绍(原理)
  2. windows 2012 nps认证cisco、h3c(comware5)交换机radius认证
  3. k近邻算法_K近邻算法(一)
  4. php源码 gd,php 源码安装没有gd库
  5. QT学习第一步 QT下载及安装详细步骤
  6. 华为交换机初始化_华为S5700交换机初始化和配置TELNET远程登录
  7. 后台coder的神器!Bootstrap Layoutit
  8. java动态字段排序_Java利用Stream来实现多字段排序功能
  9. ajax中的get和post的区别
  10. 联邦学习 OR 迁移学习?联邦迁移学习不香吗