python - 使用 1) StandardScaler & Classifier vs 2) Pipeline(Scalar, Classifier) 是否相同?

标签 python machine-learning random-forest

先运行标准缩放器再运行分类器是否会产生与使用流水线相同的结果?

您好,我有一个分类问题并尝试使用 scikit learn 的 StandardScaler() 缩放 X 变量。我看到这样做有两种选择,理论上它们应该产生相同的结果吗?因为当我使用选项 (1) 时,我的测试数据集的精度得分更高。

(1)

scalar = StandardScaler()
xtrain_ = scalar.fit_transform(xtrain)
RFC = RandomForestClassifier(n_estimators=100)
RFC.fit(xtrain. ytrain)

xtest_ = scalar.transform(xtest)
score = cross_val_score(RFC, xtest_, ytest,cv=10, scoring ='precision')

(2)

RFCs = Pipeline([("scale", StandardScaler()), ("rf", RandomForestClassifier(n_estimators=100))])
RFCs.fit(xtrain, ytrain)
scores = cross_val_score(RFCs, xytest, ytest, cv=10, scoring='precision')

最佳答案

您的选项 2 使用与您的版本号 (1) 不同的数据集 (xytest),后者使用 xtest。此外,您的交叉验证应该包括训练,而不仅仅是预测。

除此之外它们应该是相同的,而我建议您使用管道。

关于python - 使用 1) StandardScaler & Classifier vs 2) Pipeline(Scalar, Classifier) 是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31243290/

相关文章:

java - java 和 python 上的实现相同,但运行时间截然不同

除非我在终端上执行,否则带有输入的 Python 脚本不会运行

python - 如何删除括号内的内容而不删除括号

python - 一起使用过采样和 cross_validation 函数的方法是什么?

machine-learning - *从头开始重新启动数据预取*在caffe中是什么意思

machine-learning - scikit-learn RandomForestClassifier 产生 'unexpected' 结果

python - 无法保存数据库路径(Python/Windows)

algorithm - 字符串的聚类算法

machine-learning - 如何绘制随机森林模型的学习曲线?

python - 如何创建与 R randomForest 相同的 sklearn 随机森林模型?