这个错误提示是因为在计算均方误差的时候,使用了`axis=1`参数,但是此时的`_`变量是一个一维数组,没有第二个轴。可以将`axis=1`改为`axis=0`即可解决问题。
修改后的代码如下:
```python
import numpy as np
import pandas as pd
from sklearn.linear_model import LassoCV
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv')
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
# 自适应Lasso模型
alphas, coefs, _ = LassoCV(cv=10, random_state=0, max_iter=10000).path(X, y, eps=0.001)
# 特征筛选后的系数可视化
plt.figure(figsize=(10, 6))
for i in range(coefs.shape[0]):
plt.plot(alphas, coefs[i], label='Feature {}'.format(i+1))
plt.xscale('log')
plt.xlabel('Log(alpha)')
plt.ylabel('Coefficients')
plt.title('Lasso Paths')
plt.legend(loc='best')
plt.show()
# lambda与RMSE关系曲线图
mse_mean = np.mean(_, axis=0) # 修改这里的axis参数
plt.figure(figsize=(10, 6))
plt.plot(alphas, mse_mean, label='Mean Squared Error')
plt.xscale('log')
plt.xlabel('Log(alpha)')
plt.ylabel('Mean Squared Error')
plt.title('Lambda vs RMSE')
plt.legend(loc='best')
plt.show()
```
注意到修改后的代码中,`np.mean`函数的`axis`参数被修改为了0。