SuperAPI AI 工具集

categorical-encoder

编程与开发

查看项目

更新于 10-15 21:08

技能介绍

用途:针对机器学习特征工程中的分类变量编码,按变量基数与模型类型选择合适编码方式。

主要能力与选择建议:低基数(<10)用 one-hot 或 dummy;中等基数(10-50)用 target、frequency、binary;高基数(>50)用 hash 或 embeddings;有序变量用 ordinal。模型方面:树模型(RF、XGB)适合 ordinal、target、frequency;线性模型(LR、SVM)用 one-hot,避免 ordinal;神经网络对高基数用 embeddings;基于距离的模型使用标准化后的编码。

使用方式:pandas 可用 pd.get_dummies(df, columns=['category_col'], prefix='cat');sklearn 用 OneHotEncoder(sparse_output=False, handle_unknown='ignore'),先 fit_transform 训练集再 transform 测试集,特征名通过 get_feature_names_out 获取。target 编码需结合 KFold 交叉验证并做贝叶斯平滑(含 alpha 参数)以防过拟合。binary 编码借助 category_encoders 的 ce.BinaryEncoder,可显著降低维度。frequency 与 count 编码通过训练集统计映射并填充未知值。embeddings 可用 one-hot 后接 TruncatedSVD 降维。还提供多编码组合函数与可复用的 RobustCategoricalEncoder 类,支持 onehot 与 target 两种模式及未知值回退。

限制与注意事项:fit 只能在训练集上执行,否则造成数据泄漏;需处理未知类别并设置回退策略;one-hot 会显著增加维度;不同模型偏好不同编码;建议对编码结果做维度与空值校验。资料未提供安装命令、收费信息或平台支持范围。