0
点赞
收藏
分享

微信扫一扫

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化

使用冗余预测变量构建数据集并使用​​lasso和 glm​​识别这些预测变量 。

使用lasso正则化去除冗余预测变量

创建一个​​X​​​ 包含 100 个观测值和 10 个预测变量的随机矩阵 。​​y​​ 仅使用四个预测变量和少量噪声创建​​正态分布​​因变量 。

1.  默认值
2. randn ;
3.
4. X*

  1. 权重 + randn*0.1; % 小的附加噪音
  2.   

执行​​lasso​​正则化。

lasso

求第 75 个​​Lambda​​​ 值 的系数向量 ​​B​​。

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_数据

​lassoglm​​ 识别并删除冗余预测变量。

广义线性模型的交叉验证lasso正则化

从泊松模型构建数据,并使用​​lasso​​ 确定重要的预测变量 。

创建具有 20 个预测变量的数据。仅使用三个预测变量加上一个常数来创建泊松因变量。


1.   
2. rng % 用于重现性
3. randn
4.
5. exp(X)*weights + 1
6.
7.

构建数据的泊松回归模型的交叉验证​​lasso​​正则化。

检查交叉验证图以查看​​Lambda​​ 正则化参数的效果 。

  1.  Plot('CV');
  2.  legend

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_数据_02

绿色圆圈和虚线定位 ​​Lambda​​ 交叉验证误差最小的位置。蓝色圆圈和虚线定位具有最小交叉验证误差加一个标准偏差的点。

找到对应于两个识别点的非零模型系数。

  1.  FitInf
  2.  find(B

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_r语言_03

  1.  FitInf
  2.  min1fnd(B)

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_数据_04

来自最小加一标准误差点的系数正是用于创建数据的那些系数。

使用lasso正则化预测值

加载 学生考试成绩数据集。将上次考试成绩转换为逻辑向量,其中 ​​1​​​ 代表80以上​​0​​ 的成绩, 代表80以下的成绩。

  1.   
  2.  ynm = (y>=80);

将数据划分为训练集和测试集。

  1.   
  2.  rng default % 设置可重复性的种子
  3.  Xi = X(iTain,:);
  4.  yran = yBinom
  5.  yTe = yBinom

对训练数据进行 3 折交叉验证,对广义线性模型回归执行​​lasso​​​正则化。假设 中的值 ​​y​​​ 是二项分布的。选择对应于​​Lambda​​ 最小预期偏差的模型系数 。

  1.  lasso(Trn,Tain,'binomial','CV',3);
  2.  ince = FitIiance;
  3.  FitIept

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_r语言_05

使用在上一步中找到的模型系数预测测试数据的考试成绩。使用 指定二项式因变量的链接函数 ​​'logit'​​。将预测值转换为逻辑向量。

使用混淆矩阵确定预测的准确性。

confuhart

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_数据_06

该函数可以正确预测 31 个考试成绩。然而,该函数错误地预测了1名学生获得B或以上的成绩,4名学生获得B以下的成绩。

拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩数据和交叉验证可视化_r语言_07

举报

相关推荐

0 条评论