拓端tecdat|Matlab广义线性模型glm泊松回归的lasso、弹性网络正则化分类预测考试成绩
原文链接:http://tecdat.cn/?p=24777
原文出处:拓端数据部落公众号
使用冗余预测变量构建数据集并使用lasso和 glm
识别这些预测变量 。
使用lasso
正则化去除冗余预测变量
创建一个X
包含 100 个观测值和 10 个预测变量的随机矩阵 。y
仅使用四个预测变量和少量噪声创建正态分布因变量 。
默认值
randn ;
X*权重 + randn*0.1; % 小的附加噪音
执行lasso
正则化。
lasso
求第 75 个Lambda
值 的系数向量 B
。

lassoglm
识别并删除冗余预测变量。
广义线性模型的交叉验证lasso
正则化
从泊松模型构建数据,并使用lasso
确定重要的预测变量 。
创建具有 20 个预测变量的数据。仅使用三个预测变量加上一个常数来创建泊松因变量。
rng % 用于重现性
randn
exp(X)*weights + 1
构建数据的泊松回归模型的交叉验证lasso
正则化。
检查交叉验证图以查看Lambda
正则化参数的效果 。
Plot('CV');
legend

绿色圆圈和虚线定位 Lambda
交叉验证误差最小的位置。蓝色圆圈和虚线定位具有最小交叉验证误差加一个标准偏差的点。
找到对应于两个识别点的非零模型系数。
FitInf
find(B

FitInf
min1fnd(B)

来自最小加一标准误差点的系数正是用于创建数据的那些系数。
使用lasso
正则化预测值
加载 学生考试成绩数据集。将上次考试成绩转换为逻辑向量,其中 1
代表80以上0
的成绩, 代表80以下的成绩。
ynm = (y>=80);
将数据划分为训练集和测试集。
rng default % 设置可重复性的种子
Xi = X(iTain,:);
yran = yBinom
yTe = yBinom
对训练数据进行 3 折交叉验证,对广义线性模型回归执行lasso
正则化。假设 中的值 y
是二项分布的。选择对应于Lambda
最小预期偏差的模型系数 。
lasso(Trn,Tain,'binomial','CV',3);
ince = FitIiance;
FitIept

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

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

最受欢迎的见解
1.R语言多元Logistic逻辑回归 应用案例
2.面板平滑转移回归(PSTR)分析案例实现
3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)
4.R语言泊松Poisson回归模型分析案例
5.R语言混合效应逻辑回归Logistic模型分析肺癌
6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
7.R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病
8.python用线性回归预测股票价格
9.R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测