gpt4 book ai didi

python - 在 scikit-learn 的 RandomizedSearchCV 中使用 hold-out-set 进行验证?

转载 作者:行者123 更新时间:2023-12-05 06:15:00 24 4
gpt4 key购买 nike

当验证数据已经作为保留集存在时,是否有任何方法可以从 scikit-learn 执行 RandomizedSearchCV?我尝试连接训练数据和验证数据并定义 cv 参数以准确拆分两个集合的合并位置,但找不到 RandomizedSearchCV 接受的正确语法。

scikit-learn 文档说:

cv : int, cross-validation generator or an iterable, optional
Determines the cross-validation splitting strategy.
Possible inputs for cv are:
- None, to use the default 3-fold cross validation,
- integer, to specify the number of folds in a `(Stratified)KFold`,
- An object to be used as a cross-validation generator.
- An iterable yielding train, test splits.

我希望最后一个选项能以某种方式起作用,但我不知道我必须以哪种格式提交它。

感谢任何帮助!

最佳答案

假设您在 train_indices 中有训练样本的索引,在 test_indices 中有测试样本的索引。然后,将这些作为包裹在列表中的元组传递给 RandomizedSearchCVcv 参数就足够了。要演示的 MWE:

from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import RandomizedSearchCV


X, y = make_classification(n_samples=10)

param_distributions = {
'n_estimators': [10, 20, 30, 40]
}

train_indices = [0, 1, 2, 3, 4]
test_indices = [5, 6, 7, 8, 9]
cv = [(train_indices, test_indices)]

search = RandomizedSearchCV(
RandomForestClassifier(),
param_distributions=param_distributions,
cv=cv,
n_iter=2
)

search.fit(X, y)

这将始终在相同的样本上训练和测试估计器。如果您的数据存储在 pandas 数据帧中,例如df,使用df.index.values获取你需要的索引。

关于python - 在 scikit-learn 的 RandomizedSearchCV 中使用 hold-out-set 进行验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62656660/

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