scikitlearn之Lasso回归

lasso回归

在这里插入图片描述
转载自 机器学习总结(一):线性回归、岭回归、Lasso回归

基本语法

from sklearn import linear_model
reg = linear_model.Lasso(alpha=0.1)
reg.fit([[0,0],[1,1],[2,2]],[0,1,2])
reg.coef_ #coeficients
reg.intercept_
reg.predict([[1,1]])

和之前的线性回归之类的都很像哦~

Lasso and Elastic Net for Sparse Signals

import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
np.random.seed(42)#一个随机数种子
n_samples,n_features = 50,200#五十个样本量,200个变量
x = np.random.randn(n_samples,n_features)#返回一个50*200的矩阵,每个数字都是来自标准正态分布的
#np.random.randn(d1,d2,d3...dn)括号里的都是维度The dimensions of the returned array, 
coef = 3*np.random.randn(n_features)
inds= np.arange(n_features)#生成一个数字索引,个数是变量的个数
np.random.shuffle(inds)#把这个索引打乱
coef[inds[10:]] = 0#挑选了10个变量的系数不是零
y = np.dot(x,coef)#参考文件,矩阵相乘
#和y2 = np.matmul(x,coef)是一样的
y+= 0.01*np.random.randn(n_samples)#增加一个扰动项
n_samples = x.shape[0] 
X_train,X_test = x[:n_samples//2],x[n_samples//2:]
Y_train,Y_test = y[:n_samples//2],y[n_samples//2:]
#lasso
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(lasso)
print("r^2 on test data : %f" %r2_score_Lasso)
# ElasticNet
from sklearn.linear_model import ElasticNet
enet = ElasticNet(alpha=alpha,l1_ratio=0.7)
#The ElasticNet mixing parameter, with 0 <= l1_ratio <= 1. For l1_ratio = 0 the penalty is an L2 penalty. For l1_ratio = 1 it is an L1 penalty.
# For 0 < l1_ratio < 1, the penalty is a combination of L1 and L2.
y_pred_enet = enet.fit(X_train,Y_train).predict(X_test)
r2_score_enet = r2_score(Y_test,y_pred_enet)
print(enet)
print("r^2 on test data : %f" %r2_score_enet)
#plot
plt.plot(enet.coef_,color = 'l
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值