2

在随机森林的Mllib版本中,有可能使用参数categoricalFeaturesInfo 指定具有名义特征(数值但仍为分类变量)的列什么是ML随机森林?在用户指南there is an example使用VectorIndexer的类别特征转换矢量为好,但它的写有“自动识别类别特征,并对其进行索引”如何处理Spark中最新的随机森林中的分类特征?

In the other discussion of the same problem我发现数值指标为连续的特点反正在随机森林治疗,并建议做一个热门编码,以避免这种情况,这似乎是没有意义的这种算法的情况下,特别是考虑到上面提到的官方示例!

我还注意到,当在分类列中有很多类别(> 1000)时,一旦用StringIndexer索引它们,随机森林算法会要求我设置MaxBin参数,该参数应该与连续要素一起使用。这是否意味着超过箱数的特征将被视为连续的,as it's specified in the official example,,因此对于我的分类列,StringIndexer是否可以,或者是否意味着具有数字静态名义特征的整列将被假设变量为连续?

回答

1

在我发现数值指标为连续的特点反正在随机森林处理同样问题的其他讨论,

这实际上是不正确。树模型(包括RandomForest)依赖列元数据来区分分类变量和数值变量。元数据可以由ML变压器(如StringIndexerVectorIndexer)或added manually提供。旧的mllib基于RDD的API,由ml型号内部使用,使用categoricalFeaturesInfoMap出于同样的目的。

Current API只需要元数据并转换为categoricalFeaturesInfo预期的格式。

OneHotEncoding仅适用于线性型号,推荐使用,虽然不是必需的,但需要使用for multinomial naive Bayes classifier