使用sklearn预处理量表训练模型后,如何处理新样本?

时间:2018-08-12 00:26:29

标签: scikit-learn

假设我有一个数据集X和一个负责监督的机器学习任务的标签Y。

假设X具有10个功能和1,000个样本,我认为使用sklearn.preprocessing.scale缩放数据是合适的。完成此操作后,我训练了模型。

我现在希望将其用于新数据的模型,因此我收集了X的10个特征的新样本,并希望使用训练有素的模型对该样本进行分类。

在尝试对模型进行训练之前,对模型进行分类之前,是否有一种简单的方法可以应用对X执行的相同缩放?

如果没有,那么唯一的解决方案是在缩放之前保留X的副本并将我的新样本添加到此数据,然后缩放此数据集并在通过此过程进行缩放后尝试对新样本进行分类吗? / p>

2 个答案:

答案 0 :(得分:2)

使用类api代替函数api。像preprocessing.MinMaxScalerpreprocessing.StandardScaler

http://scikit-learn.org/stable/modules/preprocessing.html#preprocessing

  

功能 scale提供了一种快速简便的方法来对     单个数组状数据集

     

预处理模块还提供了一个实用程序类 StandardScaler,     实现Transformer API以计算平均值和标准偏差     训练集,以便以后可以在     测试集。

答案 1 :(得分:1)

假设您拥有训练数据集“ training_dataset”,并且执行了以下操作来缩放它,

x__feature_scaler = = MinMaxScaler(feature_range = (0, 1))
training_scaled_dataset = x__feature_scaler.fit_transform(training_dataset)

使用MinMaxScaler的相同实例缩放新数据集。如果您的新数据集是“ new_dataset”,请执行以下操作

new_scaled_dataset = x__feature_scaler.transform(new_dataset)

这样,您可以将新数据集缩放到与训练数据集相同的比例。