• Tibshirani(1996)提出了Lasso(The Least Absolute Shrinkage and Selectionator operator)算法。
• 通过构造一个一阶惩罚函数获得一个精炼的模型;通过最终确定一些指标(变量)的系数为零(岭回归估计系数等于0的机会微乎其微,造成筛选变量困难),解释力很强。
• 擅长处理具有多重共线性的数据,与岭回归一样是有偏估计。
# -*- coding: utf-8 -*-
"""
Created on 2024.1.22
@author: rubyw
"""
import numpy as np
from numpy import genfromtxt
from sklearn import linear_model
# 读入数据
data = genfromtxt('longley.csv', delimiter=',')
print(data)
# 切分数据
x_data = data[1:, 2:]
y_data = data[1:, 1]
print(x_data)
print(y_data)
# 创建模型
model = linear_model.LassoCV()
model.fit(x_data, y_data)
# lasso系数
print(model.alpha_)
# 相关系数
print(model.coef_)
model.predict(x_data[-2].reshape(1, -1))