热门数据挖掘模型应用入门(一): LASSO回归

目录: • 模型简介 • 线性回归 • Logistic回归 • Elstic Net理论简介 • 学习资料

模型简介

Kaggle网站(https://www.kaggle.com/)成立于2010年,是当下最流行的进行数据发掘和预测模型竞赛的在线平台。 与Kaggle合作的公司可以在网站上提出一个问题或者目标,同时提供相关数据,来自世界各地的计算机科学家、统计学家和建模爱好者, 将受领任务,通过比较模型的某些性能参数,角逐出优胜者。 通过大量的比赛,一系列优秀的数据挖掘模型脱颖而出,受到广大建模者的认同,被普遍应用在各个领域。 在保险行业中用于拟合广义线性模型的LASSO回归就是其中之一。

LASSO回归的特点是在拟合广义线性模型的同时进行变量筛选(variable selection)和复杂度调整(regularization)。 因此,不论目标因变量(dependent/response varaible)是连续的(continuous),还是二元或者多元离散的(discrete),都可以用LASSO回归建模然后预测。 这里的变量筛选是指不把所有的变量都放入模型中进行拟合,而是有选择的把变量放入模型从而得到更好的性能参数。 复杂度调整是指通过一系列参数控制模型的复杂度,从而避免过度拟合(overfitting)。 对于线性模型来说,复杂度与模型的变量数有直接关系,变量数越多,模型复杂度就越高。 更多的变量在拟合时往往可以给出一个看似更好的模型,但是同时也面临过度拟合的危险。此时如果用全新的数据去验证模型(validation),通常效果很差。 一般来说,变量数大于数据点数量很多,或者某一个离散变量有太多独特值时,都有可能过度拟合。

LASSO回归复杂度调整的程度由参数 λ 来控制,λ 越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。 LASSO回归与Ridge回归同属于一个被称为Elastic Net的广义线性模型家族。 这一家族的模型除了相同作用的参数 λ 之外,还有另一个参数 α 来控制应对高相关性(highly correlated)数据时模型的性状。 LASSO回归 α=1,Ridge回归 α=0,一般Elastic Net模型 0<α<1。 这篇文章主要介绍LASSO回归,所以我们集中关注 α=1 的情况,对于另外两种模型的特点和如何选取最优 α 值, 我会在章节“Elstic Net模型家族简介”做一些简单阐述。

目前最好用的拟合广义线性模型的R package是 glmnet,由LASSO回归的发明人,斯坦福统计学家Trevor Hastie领衔开发。 它的特点是对一系列不同 λ 值进行拟合,每次拟合都用到上一个 λ 值拟合的结果,从而大大提高了运算效率。 此外它还包括了并行计算的功能,这样就能调动一台计算机的多个核或者多个计算机的运算网络,进一步缩短运算时间。

下面我们就通过一个线性回归和一个Logistic回归的例子,了解如何使用 glmnet 拟合LASSO回归。 另外,之后的系列文章我打算重点介绍非参数模型(nonparametric model)中的一种,Gradient Boosting Machine。 然后通过一个保险行业的实例,分享一些实际建模过程中的经验, 包括如何选取和预处理数据,如何直观得分析自变量与因变量之间的关系,如何避免过度拟合,如何衡量和选取最终模型。

线性回归

我们从最简单的线性回归(Linear Regression)开始了解如何使用 glmnet 拟合LASSO回归模型, 所以此时的连接函数(link function)就是恒等,或者说没有连接函数,而误差的函数分布是正态分布。

首先我们装载 glmnet package,然后读入试验用数据“LinearExample.RData”, 下载链接:

library(glmnet)
load("LinearExample.RData")

之后在workspace里我们会得到一个100×20的矩阵 x 作为输入自变量,100×1的矩阵 y 作为目标因变量。 矩阵 x 代表了我们有100个数据点,每个数据点有20个统计量(feature)。 现在我们就可以用函数 glmnet() 建模了:

fit = glmnet(x, y, family="gaussian", nlambda=50, alpha=1)

好,建模完毕,至此结束本教程

热门数据挖掘模型应用入门(一): LASSO回归相关推荐

  1. 基于Python的岭回归与LASSO回归模型介绍及实践

    基于Python的岭回归与LASSO回归模型介绍及实践 这是一篇学习的总结笔记 参考自<从零开始学数据分析与挖掘> [中]刘顺祥 著 完整代码及实践所用数据集等资料放置于:Github 岭 ...

  2. R语言glmnet拟合lasso回归模型实战:lasso回归模型的模型系数及可视化、lasso回归模型分类评估计算(混淆矩阵、accuracy、Deviance)

    R语言glmnet拟合lasso回归模型实战:lasso回归模型的模型系数(lasso regression coefficients)及可视化.lasso回归模型分类评估计算(混淆矩阵.accura ...

  3. Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型

    Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型 目录

  4. R构建lasso回归模型并获得最佳正则化系数

    R构建lasso回归模型并获得最佳正则化系数 目录 R构建lasso回归模型并获得最佳正则化系数 数据加载 拟合LASSO回归模型

  5. ML之4PolyR:利用四次多项式回归4PolyR模型+两种正则化(Lasso/Ridge)在披萨数据集上拟合(train)、价格回归预测(test)

    ML之4PolyR:利用四次多项式回归4PolyR模型+两种正则化(Lasso/Ridge)在披萨数据集上拟合(train).价格回归预测(test) 目录 输出结果 设计思路 核心代码 输出结果 设 ...

  6. python回归模型 变量筛选_如何进行高维变量筛选和特征选择(一)?Lasso回归

    01模型简介 随着海量电子病历的挖掘,影像学.基因组学等数据进入医学统计分析,经常会面临对高维变量特征选择的问题,Lasso回归是在线性回归模型的代价函数后面加上L1范数的约束项的模型,它通过控制参数 ...

  7. r ridge回归_手把手带你画高大上的lasso回归模型图

    各位芝士好友,今天我们来聊一聊lasso回归算法.与预后有关的文章,传统的做法一般会选择多变量cox回归,高级做法自然就是我们今天的lasso分析. 首先我们先来几篇文献,看一下lasso最近发的两篇 ...

  8. R语言使用glmnet包的glmnet函数拟合lasso回归模型:使用cv.glmnet函数获取最佳lambda值、coef函数获取每个特征的系数以及截距

    R语言使用glmnet包的glmnet函数拟合lasso回归模型:使用cv.glmnet函数获取最佳lambda值.coef函数获取每个特征的系数以及截距 目录

  9. 学习机器学习四 回归模型——线性回归、L1正则化(Lasso回归)、L2正则化(ridge回归)

    还记得什么是回归吗?回忆下回归就是连续的输出,分类是离散的. 回归模型一般分为:①线性回归--就是线性方程,类似为一元一次方程(y=wx+b),比如你的年龄: ②逻辑回归(类似为曲线方程) 线性回归 ...

最新文章

  1. C语言引用不同路径下的头文件的方法
  2. shiro解决一个账号异地登录的问题
  3. matlab编程选择语句,matlab编程控制语句
  4. python读取nc文件转成img_使用python的netCDF4库读取.nc文件 和 创建.nc文件[转]
  5. 数据结构 - 最小堆最大堆
  6. TCP的拥塞控制机制
  7. 多校#5-1005-Instring-HDU5785-manacher+维护
  8. django 笔记3
  9. 加速度传感器和角度传感器
  10. java 泰国_游记:泰国之旅
  11. 乐视手机调用自启动管理, 乐视手机调用应用权限管理
  12. 实验数据处理的基本方法
  13. c++如何保留两位小数
  14. JS实现线条动态背景
  15. Android碎碎念 -- 阿里Weex
  16. 一位互联网老兵曲曲折折的 16 年!
  17. 【服务通信自定义srv调用3----客户端的优化】
  18. 实现淘宝订单(比如订单生成、未支付的订单等等)自定义view的实现
  19. 【统计】如何理解相关系数,自相关和偏自相关函数(PACF)?
  20. 什么是组态软件(转)

热门文章

  1. React组件设计模式与最佳实践
  2. bresenham画线算法的最简洁实现
  3. Android中给LineayLayout加边框
  4. 【互联网那些事儿】小度 i 耳目
  5. manjaro 安装mysql_Manjaro安装Mysql
  6. java毕业设计项目介绍 基于SSM+Vue数字化家谱网站管理系统
  7. Python实现汉诺塔算法
  8. 【Android Camera2】Camera2开源项目源码分析汇总
  9. git 添加 ,密匙
  10. c/c++游戏编程之控制台贪吃蛇(一)