【数据挖掘】Lasso回归原理讲解及实战应用(超详细 附源码)

简介: 【数据挖掘】Lasso回归原理讲解及实战应用(超详细 附源码)

需要源码请点赞关注收藏后评论区留言私信~~~

Lasso回归

岭回归无法剔除变量,而Lasso(Least Absolute Shrinkage and Selection Operator)回归模型,将惩罚项由L2范数变为L1范数,可以将一些不重要的回归系数缩减为0,达到剔除变量的目的

逐步回归

在处理多个自变量时,需要使用逐步回归(Stepwise Regression)。逐步回归中,自变量的选择是在一个自动的过程中完成的,其中包括非人为操作

逐步回归是通过观察统计的值,如R-square,t-stats和AIC指标,来识别重要的变量并通过同时添加/删除基于指定标准的协变量来拟合模型

常用的逐步回归方法有

标准逐步回归法做两件事情。即增加和删除每个步骤所需的预测

向前选择法从模型中最显著的预测开始,然后为每一步添加变量

向后剔除法与模型的所有预测同时开始,然后在每一步消除最小显著性的变量

逐步回归的目的是使用最少的预测变量数来最大化预测能力,是处理高维数据集的方法之一

如何正确选择回归模型

在多类回归模型中,基于自变量和因变量的类型,数据的维数以及数据的其它基本特征的情况下,选择最合适的技术非常重要。以下是你要选择正确的回归模型的关键因素

1.数据探索是构建预测模型的必然组成部分。在选择合适的模型时,比如识别变量的关系和影响时,它应该首选的一步

2. 比较适合于不同模型的优点,我们可以分析不同的指标参数,如统计意义的参数,R-square,Adjusted R-square,AIC,BIC以及误差项,另一个是Mallows’ Cp准则。这个主要是通过将模型与所有可能的子模型进行对比(或谨慎选择他们),检查在你的模型中可能出现的偏差

3.交叉验证是评估预测模型最好的方法。在这里,将你的数据集分成两份(一份做训练和一份做验证)。使用观测值和预测值之间的一个简单均方差来衡量你的预测精度

4.如果你的数据集是多个混合变量,那么你就不应该选择自动模型选择方法,因为你应该不想在同一时间把所有变量放在同一个模型中

5.它也将取决于你的目的。可能会出现这样的情况,一个不太强大的模型与具有高度统计学意义的模型相比,更易于实现

6.回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多重共线性情况下运行良好

Lasso回归实战

模型回归效果如下

部分代码如下

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
#def main():
# 产生一些稀疏数据
np.random.seed(42)
n_samples, n_features = 50, 100
X = np.random.randn(n_samples, n_features) 
# randn(...)产生的是正态分布的数据
coef = 3 * np.random.randn(n_features)
# 每个特征对应一个系数
inds = np.arange(n_features)
np.rinds[10:]] = 0 
# 稀疏化系数--随机地把系数向量1x200的其中10个值变为0
y = np.dot(X, coef) 
# 添加噪声:零均值,标准差为 0.01 的高斯噪声
y += 0so 模型
from sklearn.linear_model import Lasso
alpha = 0.1
lasso = Lasso(alpha=alpha)
y_pred_lasso = lasso.fit(X_train, y_train).predict(X_test)
r2_score_lasso = r2_score(y_test, y_pred_lasso)
print("r^2 on test data : %f" % r2_score_lasso)
plt.plot(lasso.coef_, color='gold', linewidth=2,label='Lasso coefficients')
plt.title("Lasso R^2: %f" % r2_score_lasso)
plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
5月前
|
算法 数据挖掘 Python
【数据挖掘】层次聚类DIANA、AGNES算法讲解及实战应用(图文解释 超详细)
【数据挖掘】层次聚类DIANA、AGNES算法讲解及实战应用(图文解释 超详细)
137 0
|
5月前
|
算法 数据可视化 数据挖掘
【数据挖掘】密度聚类DBSCAN讲解及实战应用(图文解释 附源码)
【数据挖掘】密度聚类DBSCAN讲解及实战应用(图文解释 附源码)
174 1
|
3月前
|
数据采集 算法 搜索推荐
数据挖掘实战:基于KMeans算法对超市客户进行聚类分群
数据挖掘实战:基于KMeans算法对超市客户进行聚类分群
153 0
|
5月前
|
运维 算法 数据挖掘
【数据挖掘】离群点检测方法详解及Sklearn中异常检测方法实战(附源码 超详细)
【数据挖掘】离群点检测方法详解及Sklearn中异常检测方法实战(附源码 超详细)
95 0
【数据挖掘】离群点检测方法详解及Sklearn中异常检测方法实战(附源码 超详细)
|
5月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】K-Means、K-Means++、ISODATA算法详解及实战(图文解释 附源码)
【数据挖掘】K-Means、K-Means++、ISODATA算法详解及实战(图文解释 附源码)
95 1

热门文章

最新文章