【发布时间】:2020-10-06 14:24:15
【问题描述】:
我正在应用以下代码来估算并编码我的数据集中的分类数据:
# Encoding categorical data
# Define a Pipeline with an imputing step using SimpleImputer prior to the OneHot encoding
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
from sklearn.impute import SimpleImputer
from sklearn.pipeline import Pipeline
# use strategy='constant', fill_value='missing' for imputing to preserve the categories' structure
categorical_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='constant', fill_value='missing')),
('encoder', OneHotEncoder(handle_unknown='ignore'))])
preprocessor = ColumnTransformer(
transformers=[
('cat', categorical_transformer, [0])
])
Z = np.array(preprocessor.fit_transform(Z))
print (Z[:,0])
我想对数组 Z 中的所有列重复这些步骤,因为 Z 包含我原始数据集中的所有分类特征。 有没有更有效的方法来做到这一点,而不是像这样列出每一列:
preprocessor = ColumnTransformer(
transformers=[
('cat', categorical_transformer, [0,1,2,3,4,5,6,7,8,9,10])
])
提前致谢!
【问题讨论】:
标签: python machine-learning scikit-learn