如何在特征少于原始训练数据集的数据集上使用标准化模型

我使用了来自sklearn.preprocessing的标准化模型。我在一个包含27个特征的数据集上拟合了标准化模型。是否有可能在测试数据集上使用相同的标准化模型,而这个测试数据集的特征少于27个?代码片段如下:

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

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

sc.transform(x_test)

提前感谢!!


回答:

如果想选择所有特征但不包括前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)

Related Posts

聚类算法的性能指标有哪些?

已关闭。 此问题不符合 Stack Overflow …

将序列填充到特定长度

我有一组张量,使用pad_sequence进行填充,但…

### 如何在Tensorflow中创建带有可训练参数的自定义激活函数

已关闭。 此问题不符合 Stack Overflow …

ValueError: 发现输入变量的样本数不一致:[6, 80]

我在处理下面的代码时遇到了问题(这是imblearn管…

如何简单地生成大量全连接层?

我想创建640个全连接层。 (在def init中) …

在设备上训练声音分类器

我正在尝试在iOS设备上使用CoreML训练一个声音分…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注