gpt4 book ai didi

python - 我如何知道数据拆分是在使用 scikit-learn 的缩放器之前还是之后完成的

转载 作者:行者123 更新时间:2023-12-05 05:37:30 26 4
gpt4 key购买 nike

我正在使用 scikit-learn 创建决策树模型,我需要拆分数据BEFORE 使用 StandardScaler() 缩放它们。但是,我还想使用 cross_val_score() 方法。

我首先使用 make_column_transformer() 中的 OneHotEncoding() 对我的一些分类数据进行编码,如下所示:

transformer = sklearn.compose.make_column_transformer(
(sklearn.preprocessing.OneHotEncoder(handle_unknown='ignore'), ['SoilDrainage', 'Geology', 'LU2016']),
remainder='passthrough')

然后我实例化我的模型和缩放器类:

model = sklearn.tree.DecisionTreeClassifier()

scalar = sklearn.preprocessing.StandardScaler()

我将它们添加到我的管道中:

pipe = sklearn.pipeline.make_pipeline(transformer, scalar, model)

最后,我将管道输入 cross_val_score():

sklearn.model_selection.cross_val_score(pipe, X, y, cv=5, scoring='accuracy').mean()

我这样做时没有收到任何错误,但是因为拆分是在 cross_val_score() 方法中完成的,所以我不确定如何验证缩放器是在数据已拆分。

最佳答案

https://github.com/scikit-learn/scikit-learn/blob/baf0ea25d/sklearn/model_selection/_validation.py#L381

如果您查看_fit_and_score() 的文档,会明确指出估算器(=您的管道)仅应用于数据集的拆分。

此外,在 cross_validate() 中,为每个拆分克隆估计器。

关于python - 我如何知道数据拆分是在使用 scikit-learn 的缩放器之前还是之后完成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73108657/

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