首页 > 解决方案 > 如何在特征少于最初训练的原始数据集的数据集上使用标准缩放器模型

问题描述

我正在使用来自 sklearn.preprocessing 的标准标量模型。我在包含 27 个特征的数据集上安装了标准缩放器模型。是否可以在包含少于 27 个特征的测试数据集上使用相同的标准标量模型?

from sklearn.preprocessing import StandardScaler()
sc=StandardScaler()
sc.fit_transform(x_train)

到目前为止,这一切正常。当我尝试转换我的测试数据集时出现问题。我知道为什么会这样。测试数据集中有 24 个特征。但是是否可以转换仅有的 24 个特征并忽略其中不存在的那些列。

sc.transform(x_test)

提前致谢!!

标签: pythonpandasmachine-learningscikit-learn

解决方案


如果要选择没有第一个3功能的所有功能,请使用DataFrame.iloc

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()

x_train.iloc[:, 3:] = sc.fit_transform(x_train.iloc[:, 3:])
print (x_train)

如果功能在列表中,请使用subset

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()

features = ['col1','col2',..., 'col24']
x_train[features] = sc.fit_transform(x_train[features])
print (x_train)

推荐阅读