python实现lasso回归 要求随机生成数据 并对测试集与训练集分类 用MSE评估
时间: 2024-03-21 19:42:43 浏览: 17
好的,以下是一个完整的示例代码,包括随机生成数据、将数据划分为训练集和测试集、使用 Lasso 回归模型进行训练和预测、以及使用 MSE 来评估预测的性能:
```python
from sklearn.linear_model import Lasso
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
import numpy as np
# 随机生成数据
np.random.seed(0)
n_samples, n_features = 50, 10
X = np.random.randn(n_samples, n_features)
coef = 3 * np.random.randn(n_features)
inds = np.arange(n_features)
np.random.shuffle(inds)
coef[inds[4:]] = 0 # 将一些系数设置为 0,使问题更接近于稀疏信号恢复设置。
y = np.dot(X, coef)
# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建 Lasso 模型
lasso = Lasso(alpha=0.1)
# 训练模型
lasso.fit(X_train, y_train)
# 预测测试集数据
y_pred = lasso.predict(X_test)
# 计算 MSE
mse = mean_squared_error(y_test, y_pred)
print("MSE: ", mse)
```
在上面的代码中,我们首先使用 numpy 库生成了一些随机数据。接着,我们使用 train_test_split 函数将数据划分为训练集和测试集,比例为 8:2。然后,我们创建了一个 Lasso 模型,并使用 fit 方法训练模型。接下来,我们使用 predict 方法预测测试集数据,并使用 mean_squared_error 函数计算 MSE。最后,我们输出了 MSE 的值。
需要注意的是,在实际应用中,我们需要通过交叉验证等方法来选择最优的 alpha 值。此外,我们还可以使用 LassoCV 类来自动选择最优的 alpha 值。