gpt4 book ai didi

python - 如何预处理序数特征(其中特征值是数字范围)并相应地对它们进行排序或编码

转载 作者:行者123 更新时间:2023-11-30 09:25:54 24 4
gpt4 key购买 nike

我的数据集中有以下特征列:

+-----------+
| 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 中是否有任何方法/包可以帮助我实现这一目标?请帮忙。

最佳答案

Pandas 解决方案还指定 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+]

关于python - 如何预处理序数特征(其中特征值是数字范围)并相应地对它们进行排序或编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51354805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com