在特征处理中,有一些特征里面的值是一些可分类的字符串,举个例子:
| 姓名 | 学历 | 收入 |
|---|---|---|
| 小张 | 高中 | 4000-5000元 |
| 小王 | 本科 | 6000-7000元 |
| 小李 | 硕士 | 8000-9000元 |
| 小赵 | 本科 | 6000-7000元 |
| … | … | … |
学历可分为:高中、大专、本科、硕士等。收入可分为:4000-5000元、6000-7000元等。这些分类有时为中文,容易产生乱码。有些是英文字符,可能比较长,查看不方便。如果样本量非常多的话,保存下来的文件较大。
所以可以将 高中→1,大专→2,本科→3 ···;4000-5000元→1、6000-7000元→2 ···
这些特征工程处理上,可以对这种可分类的字符串进行替换,映射成一组数字去替换。但需要注意的是,虽然用数字替换,但数字仅仅是各分类变量的一个替换,并没有真正意义的数字含义,所以不能比较大小,也不能当成连续字符处理。
下面给出了批量替换的代码。
首先是将字符串映射成数字,然后逐列操作。
## 分类变量→数字的映射
def str2num(col_name):
value_dict = {
}
unique_str = np.unique(col_name)
for num

在特征工程中,对可分类的字符串特征(如高中、大专、本科等)进行数值映射是常见的处理步骤。将这些值映射为1、2、3等数字,但要注意数字仅作为分类替代,不具比较意义。本文介绍了如何使用Python进行批量替换,处理过程中需注意缺失值的处理,通过pickle保存映射字典以便后续使用。在应用映射时,确保处理新出现的类型,避免转换为缺失值。
最低0.47元/天 解锁文章
1225

被折叠的 条评论
为什么被折叠?



