我使用scikit-learn的standardScaler类在同一数据集上构建的两个缩放器获得了不同的标准化值。
我已经使用Scikit-learn在具有52个功能的训练数据集上构建了StandarScaler对象。我们称它为Scaler1。然后,我使用该缩放器对训练数据集进行标准化,并在标准化数据上学习不同的模型。这导致了具有选定功能的最佳模型(52个中的26个)。为了实现使用该模型的预测器类:(1)我仅抓取了原始(非标准化)数据集中与26个所选要素相对应的列;然后(2)我通过拟合新创建的数据集来创建并保存(使用joblib)新的StandarScaler对象。我们称它为Scaler2。以下是我的实现的简单概述。
scaler = StandardScaler()
scaler.set_params (**parameters)
scaler.fit(data)
joblib.dump(scaler, destination)
与我的预期相反,在尝试对原始数据集进行标准化时,与Scaler1相比,Scaler2为我提供了26个功能中每个特征的相同数据点的不同值。标准化不是针对每一行独立进行吗?我该如何解决这个问题?
最好, 扬尼克
答案 0 :(得分:0)
此问题已解决。重要的是要确保处理要素的顺序保持不变,因为标准化模型似乎没有保存要素的名称。