类别型数据预处理+代码

本文将介绍处理类别型数据常用技术,以便将它们转换为适合机器学习算法使用的格式。

类别型数据是由一组离散的值组成的数据。

  • 有序的(如教育水平:小学、中学、大学)
  • 无序的(如颜色:红、绿、蓝)

以下是几种常用的类别型数据编码方法:

1 标签编码(Label Encoding)

标签编码将每个类别映射到一个整数。这种方法简单直接,但可能会引入不恰当的顺序关系。

用法:使用 sklearn.preprocessing.LabelEncoder 来实现标签编码

import pandas as pd
from sklearn.preprocessing import LabelEncoder

# 示例数据
data = {'Category': ['Red', 'Blue', 'Green', 'Blue', 'Red']}
df = pd.DataFrame(data)

# 创建 LabelEncoder 对象
le = LabelEncoder()

# 对 'Category' 列进行标签编码
df['Category_Encoded'] = le.fit_transform(df['Category'])

print(df)

2、独热编码(One-Hot Encoding)

通过将每个类别映射到一个二进制向量来实现,每个类别对应一个唯一的二进制向量。这种方法避免了引入顺序关系,但可能会导致特征数量急剧增加。

用法:可以使用 pandas.get_dummiessklearn.preprocessing.OneHotEncoder来实现独热编码。

3、目标编码(Target Encoding)

目标编码使用目标变量的统计量(如均值)来替换类别值。

# 目标编码
target_means = train.groupby('Category')['Target'].mean()
train['Target_Encoding'] = train['Category'].map(target_means)
test['Target_Encoding'] = test['Category'].map(target_means)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。