python - sklearn preprocessing.scale() 函数,何时使用?
问题描述
我正在使用以下方法构建神经网络sklearn.neural_network.MLPClassifier
:
clf = sklearn.neural_network.MLPClassifier(hidden_layer_sizes= (11,11,11),max_iter = 500)
在训练它之前,我正在使用现有的提取器创建一个新的提取器
preprocessing.scale()
像这样:
labels = someDataBase.loadLabels()
fetchers = someDataBase.loadFetchers()
fetchers = preprocessing.scale(fetchers)
并从他们那里,使用该train_test_split
函数,创建一个训练值的测试,如下所示:
X_train, X_test, y_train, y_test = train_test_split(fetchers,labels,test_size = 0.2)
然后我将它提供给 MLPClassifier 的 fit 函数
clf.fit(X_train, y_train)
现在我有一个训练有素的神经网络
我想用它来使用 MLPClassifier 的 predict 方法基于新的提取器进行预测,这个提取器不是测试的,它们是全新的值
我应该再次使用 preprocessing.scale() 吗?然后将它们输入预测方法?还是按原样使用它们?
解决方案
У我们的方法可能会给出不同的比例因子。它适用于单一扩展作业,但不适用于需要一致转换的作业。
我建议你宁愿使用sklearn.preprocessing.StandardScaler
. 它有很好的文档记录,并在此处提供示例。训练时调用fit_transform
方法,仅transform
在预测时调用。
推荐阅读
- r - 通过索引在 R 中写入矩阵
- python - 有没有办法用它们之间的两行的平均值替换异常?
- apache-flink - Flink 网络缓冲区使用率高,导致 Kafka 滞后
- html - 如何更改 ng 引导轮播箭头的颜色
- cassandra - Cassandra NoHostAvailableException:所有主机尝试查询失败
- c - 块和复合语句是同一个概念吗?
- python - 在 Pandas 中未正确附加的行
- python - 如何将图像名称与 tkinter 连接起来?
- kotlin - 为什么Kotlin的代码可以直接从“kotlin.collections”调用顶层函数,而不需要导入包
- javascript - ml5.js 错误:检查时出错:预期 dense_Dense1_input 的形状为 [null,250] 但得到的数组的形状为 [1,1]