Sklearn Lasso回归

时间:2024-03-18 14:12:58

以下是一个使用Sklearn库实现Lasso回归的简单代码示例。Lasso回归是一种用于回归分析的线性模型,它通过正则化项来强加稀疏性,从而可以估计系数的非零值,并使得某些系数变为零。

# 导入必要的库
from sklearn.linear_model import Lasso
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import numpy as np
# 创建样本数据
# X是一个包含特征的二维数组,y是目标值
# 这里我们随机生成数据
np.random.seed(0)
X = np.random.rand(100, 10)  # 100个样本,每个样本有10个特征
y = np.random.rand(100, 1)   # 100个目标值
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建Lasso回归模型实例
# 你可以根据需要调整alpha参数,它控制正则化的强度
lasso = Lasso(alpha=0.1)
# 训练模型
lasso.fit(X_train, y_train)
# 预测测试集结果
y_pred = lasso.predict(X_test)
# 计算并打印均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"测试集的均方误差为: {mse}")
# 打印系数
print("Lasso回归系数:", lasso.coef_)
# 检查哪些特征的系数为零
print("系数为零的特征索引:", np.where(np.abs(lasso.coef_) < 1e-5)[0])

在上面的代码中,我们首先生成了一些随机数据作为样例,然后分割数据为训练集和测试集。接着,我们创建了一个Lasso回归模型,并使用训练数据来拟合模型。通过调整alpha参数,我们可以控制正则化的强度。在模型训练之后,我们使用测试集来评估模型的性能,并打印出测试集的均方误差以及模型的系数。最后,我们还检查了哪些特征的系数变为零,这可以帮助我们理解模型选择的特征集合。