gpt4 book ai didi

apache-spark-mllib - 如何在 spark ml 中处理决策树、随机森林的分类特征?

转载 作者:行者123 更新时间:2023-12-04 22:28:26 24 4
gpt4 key购买 nike

我正在尝试在 UCI 银行营销数据上构建决策树和随机森林分类器 -> https://archive.ics.uci.edu/ml/datasets/bank+marketing .数据集中有许多分类特征(具有字符串值)。

在 spark ml 文档中,提到可以通过使用 StringIndexer 或 VectorIndexer 进行索引将分类变量转换为数字。我选择使用 StringIndexer(向量索引需要向量特征和向量汇编器,将特征转换为向量特征只接受数字类型)。使用这种方法,分类特征的每个级别都将根据其频率分配数值(0 表示类别特征的最频繁标签)。

我的问题是随机森林或决策树的算法如何理解新特征(源自分类特征)与连续变量不同。索引特征在算法中会被视为连续的吗?这是正确的方法吗?或者我应该继续使用 One-Hot-Encoding 来处理分类特征。

我从这个论坛上阅读了一些答案,但最后一部分我没有弄清楚。

最佳答案

应该对类别 > 2 的分类变量进行一次热编码。

要理解为什么,您应该知道分类数据的子类别之间的区别:Ordinal dataNominal data .

序数数据 :这些值在它们之间有某种排序。例子:
客户反馈(优秀、好、中立、差、非常差)。正如您所看到的,它们之间有明确的顺序(优秀 > 好 > 中性 > 差 > 非常差)。在这种情况下 StringIndexer单独用于建模目的就足够了。

标称数据 :这些值之间没有定义的顺序。
例如:颜色(黑色,蓝色,白色,...)。在这种情况下 StringIndexer只有不是 充足的。和 One Hot EncodingString Indexing 之后需要.

String Indexing让我们假设输出是:

 id | colour   | categoryIndex
----|----------|---------------
0 | black | 0.0
1 | white | 1.0
2 | yellow | 2.0
3 | red | 3.0

然后没有 One Hot Encoding ,机器学习算法将假设: red > yellow > white > black ,我们知道这不是真的。 OneHotEncoder()将帮助我们避免这种情况。

所以回答你的问题 ,

Will indexed feature be considered as continuous in the algorithm?



它将被视为连续变量。

Is it the right approach? Or should I go ahead with One-Hot-Encoding for categorical features



取决于你对数据的理解。虽然随机森林和一些提升方法不需要 OneHot Encoding ,大多数 ML 算法都需要它。

引用: https://spark.apache.org/docs/latest/ml-features.html#onehotencoder

关于apache-spark-mllib - 如何在 spark ml 中处理决策树、随机森林的分类特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44959122/

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