python - 如何预处理特征值是数字范围的序数特征并相应地对它们进行排名或编码
问题描述
我的数据集中有以下特征列:
+-----------+
| size |
+-----------+
| 10-90 |
| <10 |
| 100-200 |
| 10-90 |
| 500-800 |
| 10000+ |
| <10 |
| 1000-4999 |
+-----------+
我是机器学习的新手,发现很难处理这样的功能集。
当我做:
import pandas as pd
y = pd.Categorical(train['size'],ordered=True)
y 的输出是:
[10-90, <10, 100-200, 10-90, 500-800, 10000+, <10, 1000-4999]
Categories (6, object): [10-90 < 100-200 < 1000-4999 < 10000+ < 500-800 < <10]
这是错误的,因为 <10 应该获得最低排名,并且 500-800 获得错误排名。根据此功能集 >10000 或 10000+ 应该获得最高排名。
我需要相应地对这些数据进行排名或编码,这样如果我的测试数据获得值 5 或 <5,它应该获得与 <10 相同的排名或编码,因为这是最接近的。
python或R中是否有任何方法/包可以帮助我实现这一目标?请帮忙。
解决方案
熊猫解决方案也指定了categories
预期的顺序:
cats= ['<10', '10-90' , '100-200','500-800', '1000-4999', '10000+']
y = pd.Categorical(train['size'],ordered=True, categories=cats)
print (y)
[10-90, <10, 100-200, 10-90, 500-800, 10000+, <10, 1000-4999]
Categories (6, object): [<10 < 10-90 < 100-200 < 500-800 < 1000-4999 < 10000+]
推荐阅读
- swift - 在第一个视图控制器出现后做某事
- php - 如何将图像添加到 sql 数据库
- node.js - 获取 mongodb 数据库中每个类别的产品数量
- python - 如何在 Pygame 模块中碰撞两个图像
- python - 选择关于 k 折交叉验证的最佳模型
- struct - 如何在指向同一结构中的数据的结构中存储可变引用?
- javascript - React Native,在源代码中使用 RapidAPI
- sublimetext3 - 在 Sublime Text 3 中自动将缩进从 2 个空格转换为 4 个空格
- python - 如何构建图表以查看正则化对测试和训练分数的影响
- python - 如何保存图像数据集的numpy数组?