首页 > 解决方案 > 套索回归预测平均值

问题描述

我正在尝试使用 Lasso 回归来预测非二进制分类输出:

首先我使用 pandas 读取数据,然后我的意思是估算缺失值并使用 StandardScaler() 标准化数据。我将数据分成训练和测试,进一步训练数据到训练和验证,然后针对不同的 alpha 训练模型。我计算 y_predicted 和 y_validated 之间的均方误差,选择的最佳模型始终是将所有值预测为均值或接近均值输出的模型。

X = pd.read_csv(X_path)
y = pd.read_csv(y_path)

X = X.fillna(X.mean())

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2, random_state=77)
sc=StandardScaler()

X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

X_train_,X_validate,y_train_,y_validate = train_test_split(X_train,y_train,test_size=0.2,random_state=77)
alphas=np.linspace(-1,1,50)

mse=np.zeros(len(alphas))

for i in range(0,len(alphas)):
     lasso_reg = lasso(alpha=alphas[i])
     lasso_reg.fit(X_train_,y_train_)

     y_pred = lasso.predict(X_validate)
     mse[i] = mean_squared_error(y_pred,y_validate)

我尝试更改 alphas 并在套索中进行标准化,但结果相同。有什么想法可能是错误的,或者有什么建议哪个评估指标更合适?

我的数据有点不平衡,它大致正态分布在 20-100 之间,其中大部分数据位于 40-65 之间。这会导致问题吗?

标签: pythonscikit-learnlasso-regression

解决方案


推荐阅读