gpt4 book ai didi

python - 线性回归中的交叉验证

转载 作者:太空宇宙 更新时间:2023-11-04 02:29:37 25 4
gpt4 key购买 nike

我正在尝试在线性回归中执行交叉验证,为此我正在使用 python sklearn 库。我对对给定数据集执行交叉验证的适当方式有疑问。

让我有点困惑的两个 API 是 cross_val_score() 和任何正则化交叉验证算法,例如 LassoCV()

据我了解,cross_val_score 用于根据交叉验证获取分数。并且,它可以与 Lasso() 组合以实现正则化交叉验证分数(示例:here)。

相比之下,LassoCV(),为it's documentation建议,针对给定范围的调整参数(alpha 或 lambda)执行 Lasso

现在,我的问题是:

  • 哪种方法更好(cross_val_scoreLasso 或只是 LassoCV)。
  • 执行线性交叉验证的正确方法是什么回归(或其他算法,例如 Logistic、NN 等)

谢谢。

最佳答案

让您更加困惑 - 考虑使用 GridSearchCV ,这将进行交叉验证并调整超参数。

演示:

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import Lasso, Ridge, SGDRegressor
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import Pipeline, FeatureUnion

X_train, X_test, y_train, y_test = \
train_test_split(X, y, test_size = 0.33)

pipe = Pipeline([
('scale', StandardScaler()),
('regr', Lasso())
])

param_grid = [
{
'regr': [Lasso(), Ridge()],
'regr__alpha': np.logspace(-4, 1, 6),
},
{
'regr': [SGDRegressor()],
'regr__alpha': np.logspace(-5, 0, 6),
'regr__max_iter': [500, 1000],
},
]

grid = GridSearchCV(pipe, param_grid=param_grid, cv=3, n_jobs=-1, verbose=2)
grid.fit(X_train, y_train)

predicted = grid.predict(X_test, y_test)

print('Score:\t{}'.format(grid.score(X_test, y_test)))

关于python - 线性回归中的交叉验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49522928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com