【发布时间】:2020-11-29 06:15:37
【问题描述】:
我想在5折交叉验证过程中确定回归问题中的最佳正则化系数α。
当我为此运行以下简单代码时,抛出错误:
alphas = np.logspace(-6, 2, 200)
skf = StratifiedKFold(n_splits=5)
lasso_cv = LassoCV(alphas=alphas, random_state=17, max_iter=5000)
for k, (train, test) in enumerate(skf.split(X_train_scaled, y_train)):
lasso_cv.fit(X_train_scaled[train], y_train[train])
print("[fold {0}] alpha: {1:.5f}, score: {2:.5f}".
format(skf, lasso_cv.alpha_, lasso_cv.score(X_train_scaled[test], y_train[test]))
)
for k, (train, test) in enumerate(skf.split(X_train_scaled, y_train)):
----> 6 lasso_cv.fit(X_train_scaled[train], y_train[train])
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
我基本上重写了 here 的代码(非常底部)
我没有 nan 或 inf 值:
where_XNaNs = np.isnan(X_train_scaled)
where_yNaNs = np.isnan(y_train)
print(X_train_scaled[where_XNaNs])
print(y_train[where_yNaNs])
print()
where_Xinfs = np.isinf(X_train_scaled)
where_yinfs = np.isinf(y_train)
print(X_train_scaled[where_Xinfs])
print(y_train[where_yinfs])
[]
Series([], Name: quality, dtype: int64)
[]
Series([], Name: quality, dtype: int64)
【问题讨论】:
-
在 x 和 y 上尝试 fillna
-
嗯,我的数据没有非空值。无论如何,它没有帮助
标签: python scikit-learn regression cross-validation