首页 文章

在标准化训练数据之后使用sklearn预测新数据

提问于
浏览
5

我使用Sklearn通过以下步骤构建线性回归模型(或任何其他模型):

X_train和Y_train是训练数据

  • 标准化训练数据
X_train = preprocessing.scale(X_train)
  • 适合模型
model.fit(X_train, Y_train)

一旦模型适合缩放数据,我如何使用拟合模型预测新数据(一次一个或多个数据点)?

我正在使用的是

  • 缩放数据
NewData_Scaled = preprocessing.scale(NewData)
  • 预测数据
PredictedTarget = model.predict(NewData_Scaled)

我想我错过了一个带有 preprocessing.scale 的转换函数,这样我就可以用经过训练的模型保存它,然后将它应用到新的看不见的数据上?请帮忙 .

1 回答

  • 15

    看看these docs .

    您可以使用预处理模块的 StandardScaler 类来记住训练数据的缩放比例,以便将其应用于未来的值 .

    from sklearn.preprocessing import StandardScaler
    X_train = np.array([[ 1., -1.,  2.],
                        [ 2.,  0.,  0.],
                        [ 0.,  1., -1.]])
    scaler = preprocessing.StandardScaler().fit(X_train)
    

    scaler 计算了平均值和比例因子,以标准化每个特征 .

    >>>scaler.mean_
    array([ 1. ...,  0. ...,  0.33...])
    >>>scaler.scale_                                       
    array([ 0.81...,  0.81...,  1.24...])
    

    要将其应用于数据集:

    import numpy as np
    
    X_train_scaled = scaler.transform(X_train)
    new_data = np.array([-1.,  1., 0.])    
    new_data_scaled = scaler.transform(new_data)
    >>>new_data_scaled
    array([[-2.44...,  1.22..., -0.26...]])
    

相关问题