想要在特定功能上应用特定的缩放器,比如StandardScaler,同时保持其他功能不变。
数据集格式类似于:[ [1, 0.2, 1000], [2, 0.1, 2400], [3, 0.9, 7620] ]
我只需要转换一列,在这个例子中是第三列。
我不想使用pandas。
想要在特定功能上应用特定的缩放器,比如StandardScaler,同时保持其他功能不变。
数据集格式类似于:[ [1, 0.2, 1000], [2, 0.1, 2400], [3, 0.9, 7620] ]
我只需要转换一列,在这个例子中是第三列。
我不想使用pandas。
如前所述,最简单的方法是StandardScaler
仅将 应用于需要缩放的特征子集,然后将结果与其余特征连接起来。
或者,scikit-learn 还提供(仍然是实验性的,即可能会更改)ColumnTransformer
API。它的工作原理类似于pipeline
:
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandarScaler
column_trans = ColumnTransformer(
[('scaler', StandardScaler(),2],
remainder='passthrough')
column_trans.fit_transform(X)
元组的第三个条目(此处为 : 2
)可以是单个或列索引列表(或使用 pandas DataFrame 时的列名)。
只需将一列传递给缩放器,然后更改数据,例如:
x[i,:] = scaler.transform(x[i,:])
一旦安装了缩放器。