首页 > 解决方案 > 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() 吗?然后将它们输入预测方法?还是按原样使用它们?

标签: pythonmachine-learningscikit-learnneural-network

解决方案


У我们的方法可能会给出不同的比例因子。它适用于单一扩展作业,但不适用于需要一致转换的作业。

我建议你宁愿使用sklearn.preprocessing.StandardScaler. 它有很好的文档记录,并在此处提供示例。训练时调用fit_transform方法,仅transform在预测时调用。


推荐阅读