Jam*_*ong 9 python machine-learning pandas scikit-learn categorical-data
主要目标如下:
1)适用StandardScaler于连续变量
2)应用LabelEncoder和OnehotEncoder分类变量
连续变量需要缩放,但同时,一些分类变量也是整数类型.应用StandardScaler会导致不良影响.
另一方面,StandardScaler将扩展基于整数的分类变量,这也不是我们的.
由于连续变量和分类变量混合在一个PandasDataFrame中,所以推荐的工作流程是什么来解决这类问题?
说明我的观点的最好例子是Kaggle Bike Sharing Demand数据集,其中season和weather是整数分类变量
use*_*924 11
查看sklearn_pandas.DataFrameMapper元变压器.使用它作为管道中执行逐列数据工程操作的第一步:
mapper = DataFrameMapper(
[(continuous_col, StandardScaler()) for continuous_col in continuous_cols] +
[(categorical_col, LabelBinarizer()) for categorical_col in categorical_cols]
)
pipeline = Pipeline(
[("mapper", mapper),
("estimator", estimator)]
)
pipeline.fit_transform(df, df["y"])
Run Code Online (Sandbox Code Playgroud)
此外,您应该使用sklearn.preprocessing.LabelBinarizer而不是列表[LabelEncoder(), OneHotEncoder()].