ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【scikit-learn基础】--『预处理』之 离散化 [打印本页]

作者: 锦通    时间: 2024-2-28 23:44
标题: 【scikit-learn基础】--『预处理』之 离散化
数据的预处理是数据分析,或者机器学习训练前的重要步骤。
通过数据预处理,可以
本篇介绍的离散化处理,是一种数据预处理技术,用于将连续的、连续的数值型数据转换为离散的、分类的标签。
这种处理方式主要应用于一些需要转化为分类问题的数据集,如机器学习和数据挖掘中的输入变量。
1. 原理

离散化的原理主要是通过将连续的数值属性转化为离散的数值属性来实现数据的转化。
这个过程通常会采用分箱(Binning)的方法。
在分箱中,原始数据的值被分配到一些离散的、预定义的类别中,这些类别通常被称为“箱子”或“桶”,
箱子的数量和大小可以根据数据的分布和实际需求进行调整。
我们平时常用的离散化处理有两种:
1.1. 二值化处理

二值化就是根据阈值将一系列连续的数据分为两种类别。
二值化处理的实际应用场景很多,比如垃圾邮件的判定,信用卡欺诈的判定,还有各种的医疗检测结果(阴性阳性)。
使用scikit-learn中的Binarizer对数据进行二值化处理:
  1. from sklearn import preprocessing as pp
  2. import numpy as np
  3. data = np.random.randint(0, 100, size=(3, 3))
  4. b = pp.Binarizer(threshold=80)
  5. result = b.fit_transform(data)
  6. print("原始数据: {}".format(data))
  7. print("二值化后数据: {}".format(result))
  8. # 运行结果
  9. 原始数据:
  10. [[12 28 84]
  11. [ 2 18 81]
  12. [74 92 74]]
  13. 二值化后数据:
  14. [[0 0 1]
  15. [0 0 1]
  16. [0 1 0]]
复制代码
Binarizer的参数threshold就是分类的阈值。
上面的例子中,threshold=80,则大于80的值为1,小于等于80的值为0。
1.2. K-bins处理

K-bins离散化处理则可以控制数据分成多个类别。
它在实际中的应用比如电商领域,根据用户的购买行为将用户分为不同的消费类别;在统计学习成绩时,按照成绩分为不同的等级(优/良/中/差)等等。
这些场景下,不能简单的进行二值化,需要离散化为多个分类。
对于K-bins离散化,可以使用scikit-learn中的KBinsDiscretizer。
  1. data = np.random.randint(0, 100, 10).reshape(-1, 1)
  2. b = pp.KBinsDiscretizer(n_bins=3, encode="ordinal")
  3. result = b.fit_transform(data)
  4. print("原始数据: {}".format(data))
  5. print("K-bins离散化后数据: {}".format(result))
  6. # 运行结果
  7. 原始数据: [[12]
  8. [82]
  9. [19]
  10. [32]
  11. [81]
  12. [84]
  13. [92]
  14. [25]
  15. [61]
  16. [31]]
  17. K-bins离散化后数据: [[0.]
  18. [2.]
  19. [0.]
  20. [1.]
  21. [2.]
  22. [2.]
  23. [2.]
  24. [0.]
  25. [1.]
  26. [1.]]
复制代码
KBinsDiscretizer的参数n_bins表示分为几类,上面的示例中设置分为了3类
另一个参数encode表示离散化后的数据编码,上面的示例中"ordinal"表示用顺序的整数来编码。
可以设置encode为onehot,使得离散化的数据变为独热编码。
2. 作用

数据离散化的主要作用有:
当然,离散化处理简化了数据,可能会导致原始数据中的一些细节信息的丢失。
其次,离散化处理可能会引入一些主观性和不稳定性,因为分类的数量和大小通常是基于经验和实际需求进行调整的,不同的决策可能会导致不同的结果。
3. 总结

总之,关注离散化处理给我们带来的种种好处之时,在实际应用中也需要注意其局限性,如可能会造成数据的丢失和失真等问题。
因此,在具体的实践中,需要根据实际情况和需求进行合理的选择和应用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4