线性模型L1正则化——套索回归

 1 from sklearn.model_selection import train_test_split
 2 from sklearn.datasets import load_diabetes
 3 X,y=load_diabetes().data,load_diabetes().target
 4 X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=8)
 5
 6 from sklearn.linear_model import Lasso
 7 import numpy as np
 8 lasso=Lasso().fit(X_train,y_train)
 9 print("the coefficient:{}".format(lasso.coef_))
10 print(‘the intercept:{}‘.format(lasso.intercept_))
11 print("the score of this model:{:.3f}".format(lasso.score(X_test,y_test)))
12 print("the model uses {}".format(np.sum(lasso.coef_!=0))+" features\n")
 1 lasso01=Lasso(alpha=0.1,max_iter=100000).fit(X_train,y_train)
 2 print("the coefficient:{}".format(lasso01.coef_))
 3 print(‘the intercept:{}‘.format(lasso01.intercept_))
 4 print("the score of this model:{:.3f}".format(lasso01.score(X_test,y_test)))
 5 print("the model uses {}".format(np.sum(lasso01.coef_!=0))+" features\n")
 6
 7 lasso001=Lasso(alpha=0.01,max_iter=100000).fit(X_train,y_train)
 8 print("the coefficient:{}".format(lasso001.coef_))
 9 print(‘the intercept:{}‘.format(lasso001.intercept_))
10 print("the score of this model:{:.3f}".format(lasso001.score(X_test,y_test)))
11 print("the model uses {}".format(np.sum(lasso001.coef_!=0))+" features\n")
12
13 lasso0001=Lasso(alpha=0.001,max_iter=100000).fit(X_train,y_train)
14 print("the coefficient:{}".format(lasso0001.coef_))
15 print(‘the intercept:{}‘.format(lasso0001.intercept_))
16 print("the score of this model:{:.3f}".format(lasso0001.score(X_test,y_test)))
17 print("the model uses {}".format(np.sum(lasso0001.coef_!=0))+" features\n")
18
19 lasso00001=Lasso(alpha=0.0001,max_iter=100000).fit(X_train,y_train)
20 print("the coefficient:{}".format(lasso00001.coef_))
21 print(‘the intercept:{}‘.format(lasso00001.intercept_))
22 print("the score of this model:{:.3f}".format(lasso00001.score(X_test,y_test)))
23 print("the model uses {}".format(np.sum(lasso00001.coef_!=0))+" features\n")
 1 import matplotlib.pyplot as plt
 2 plt.plot(lasso.coef_,‘s‘,label=‘Lasso alpha=1‘)
 3 plt.plot(lasso01.coef_,‘^‘,label=‘Lasso alpha=0.1‘)
 4 plt.plot(lasso001.coef_,‘v‘,label=‘Lasso alpha=0.01‘)
 5 plt.plot(lasso0001.coef_,‘o‘,label=‘Lasso alpha=0.001‘)
 6 plt.plot(lasso00001.coef_,‘*‘,label=‘Lasso alpha=0.0001‘)
 7 plt.xlabel("coeffient index")
 8 plt.ylabel("coeffient magnitude")
 9 plt.legend(loc=(0,1.05))
10 plt.show()

原文地址:https://www.cnblogs.com/St-Lovaer/p/12245978.html

时间: 2025-01-18 04:36:18

线性模型L1正则化——套索回归的相关文章

【深度学习】L1正则化和L2正则化

在机器学习中,我们非常关心模型的预测能力,即模型在新数据上的表现,而不希望过拟合现象的的发生,我们通常使用正则化(regularization)技术来防止过拟合情况.正则化是机器学习中通过显式的控制模型复杂度来避免模型过拟合.确保泛化能力的一种有效方式.如果将模型原始的假设空间比作"天空",那么天空飞翔的"鸟"就是模型可能收敛到的一个个最优解.在施加了模型正则化后,就好比将原假设空间("天空")缩小到一定的空间范围("笼子")

L2与L1正则化理解

https://www.zhihu.com/question/37096933/answer/70507353 https://blog.csdn.net/red_stone1/article/details/80755144 机器学习中,如果参数过多,模型过于复杂,容易造成过拟合(overfit).即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的泛化能力.为了避免过拟合,最常用的一种方法是使用使用正则化,例如 L1 和 L2 正则化.但是,正则化项是如何得来的?其背

笔记︱范数正则化L0、L1、L2-岭回归&Lasso回归(稀疏与特征工程)

一.正则化背景 监督机器学习问题无非就是"minimizeyour error while regularizing your parameters",也就是在规则化参数的同时最小化误差.最小化误差是为了让我们的模型拟合我们的训练数据, 而规则化参数是防止我们的模型过分拟合我们的训练数据. 问题背景:参数太多,会导致我们的模型复杂度上升,容易过拟合. 作用: 1.约束参数,降低模型复杂度. 2.规则项的使用还可以约束我们的模型的特性.这样就可以将人对这个模型的先验知识融入到模型的学习当

通俗易懂--岭回归(L2)、lasso回归(L1)、ElasticNet讲解(算法+案例)

1.L2正则化(岭回归) 1.1问题 想要理解什么是正则化,首先我们先来了解上图的方程式.当训练的特征和数据很少时,往往会造成欠拟合的情况,对应的是左边的坐标:而我们想要达到的目的往往是中间的坐标,适当的特征和数据用来训练:但往往现实生活中影响结果的因素是很多的,也就是说会有很多个特征值,所以训练模型的时候往往会造成过拟合的情况,如右边的坐标所示. 1.2公式 以图中的公式为例,往往我们得到的模型是: 为了能够得到中间坐标的图形,肯定是希望θ3和θ4越小越好,因为这两项越小就越接近于0,就可以得

Lasso回归算法: 坐标轴下降法与最小角回归法小结

前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结.里面对线程回归的正则化也做了一个初步的介绍.提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归.但是对于Lasso回归的解法没有提及,本文是对该文的补充和扩展.以下都用矩阵法表示,如果对于矩阵分析不熟悉,推荐学习张贤达的<矩阵分析与应用>. 1. 回顾线性回归 首先我们简要回归下线性回归的一般形式: hθ(X)=Xθhθ(X)=Xθ 需要极小化的损失函数是: J(θ)=12(Xθ?Y)T(Xθ?Y

4.机器学习之逻辑回归算法

理论上讲线性回归模型既可以用于回归,也可以用于分类.解决回归问题,可以用于连续目标值的预测.但是针对分类问题,该方法则有点不适应,因为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中.即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了.为了更好的实现分类,逻辑回归诞生了.逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性.逻辑回归是假设数据服从Bernoulli分布的,因此LR也属于参数模型,他的目的也

知识图谱研究进展

在原文<知识图谱研究进展>基础上上做了相应的调整和补充 本文首先简要回顾知识图谱的历史,探讨知识图谱研究的意义.其次,介绍知识图谱构建的关键技术,包括实体关系识别技术.知识融合技术.实体链接技术和知识推理技术等.然后,给出现有开放的知识图谱数据集的介绍.最后,给出知识图谱在情报分析中的应用案例. - 漆桂林.高桓.吴天星 东南大学计算机科学与工程学院 本文节选自<情报工程>2017 年第 1 期,知识图谱专题稿件. 1 知识图谱构建技术 ??本节首先给出知识图谱的技术地图,然后介绍

机器学习之路: python线性回归 过拟合 L1与L2正则化

git:https://github.com/linyi0604/MachineLearning 正则化: 提高模型在未知数据上的泛化能力 避免参数过拟合正则化常用的方法: 在目标函数上增加对参数的惩罚项 削减某一参数对结果的影响力度 L1正则化:lasso 在线性回归的目标函数后面加上L1范数向量惩罚项. f = w * x^n + b + k * ||w||1 x为输入的样本特征 w为学习到的每个特征的参数 n为次数 b为偏置.截距 ||w||1 为 特征参数的L1范数,作为惩罚向量 k 为

机器学习 —— 基础整理(五):线性回归;二项Logistic回归;Softmax回归;广义线性模型

本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 二项Logistic回归是我去年入门机器学习时学的第一个模型,我觉得这个模型很适合用来入门(但是必须注意这个模型有很多很多很多很多可以展开的地方).比较有意思的是那时候还不会矩阵微积分,推导梯度时还是把矩阵全都展开求的(牛顿法要用的二阶梯度也是)... 下面的文字中,"Logistic回归"都表示用于二分类的二项Logistic回归. 首先约定一下记号