【问题标题】:Use of Scaler with LassoCV, RidgeCVScaler 与 LassoCV、RidgeCV 的使用
【发布时间】:2017-01-20 20:33:50
【问题描述】:
我想在每个折叠训练集上应用“StandardScaler”时使用 scikit-learn LassoCV/RidgeCV。我不想在交叉验证之前应用缩放器以避免泄漏,但我无法弄清楚我应该如何使用 LassoCV/RidgeCV 做到这一点。
有没有办法做到这一点?或者我应该使用 Lasso/Ridge 创建一个管道并“手动”搜索超参数(例如使用 GridSearchCV)?
非常感谢。
【问题讨论】:
标签:
python
machine-learning
scikit-learn
【解决方案1】:
我通过 scikit-learn 邮件列表得到了答案,所以这里是:
'没有办法将“高效”的 EstimatorCV 对象与管道一起使用。
这是一个 API 错误,有一个未解决的问题,甚至可能是一个 PR。'
非常感谢 Andreas Mueller 的回答。
【解决方案2】:
代码:
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
from sklearn.cross_validation import cross_val_score
from sklearn.linear_model import Ridge
X = "some data"
y = "the labels of the data"
make_my_pipe = make_pipeline(StandardScaler(), Ridge())
scores = cross_val_score(pipe, X, y)
print(scores)