gpt4 book ai didi

machine-learning - 如何使用 pySpark 决定要传递给 SPark MLlib 中的随机森林算法的 numClasses 参数

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

我正在使用 Spark 中的随机森林算法进行分类,有一个示例数据集,如下所示:

Level1,Male,New York,New York,352.888890
Level1,Male,San Fransisco,California,495.8001345
Level2,Male,New York,New York,-495.8001345
Level1,Male,Columbus,Ohio,165.22352099
Level3,Male,New York,New York,495.8
Level4,Male,Columbus,Ohio,652.8
Level5,Female,Stamford,Connecticut,495.8
Level1,Female,San Fransisco,California,495.8001345
Level3,Male,Stamford,Connecticut,-552.8234
Level6,Female,Columbus,Ohio,7000

这里每行中的最后一个值将用作标签,其余值用作特征。但我想将 label 视为类别而不是数字。因此,165.22352099 将表示一个类别,-552.8234 也将表示一个类别。为此,我已将我的features 以及label 编码为分类数据。现在我遇到的困难是决定在 Spark MlLibRandom Forest 算法中应该为 numClasses 参数传递什么>?我的意思是它应该等于我的标签中唯一值的数量吗?我的标签有大约 10000 个唯一值,因此如果我将 10000 作为 numClasses 的值,那么它不会大幅降低性能吗?

以下是在 MlLib 中构建随机森林模型的典型签名:

model = RandomForest.trainClassifier(trainingData, numClasses=2, categoricalFeaturesInfo={},
numTrees=3, featureSubsetStrategy="auto",
impurity='gini', maxDepth=4, maxBins=32)

最佳答案

困惑来自于你正在做一些你不应该做的事情。您的问题显然是回归/排名,而不是分类。您为什么将其视为一种分类?尝试回答这两个问题:

  • 每个至少有 100 个样本(100,000 * 100 = 1,000,000)吗?
  • 类中是否完全没有结构,例如,值“200”的对象与值“100”或“300”的对象比值“200”的对象更相似-1000”还是“+2300”?

如果至少有一个答案是,那么您不应将此视为分类问题

如果出于某种奇怪的原因,您回答了两次,那么答案是:“是的,您应该将每个不同的值编码为不同的类”,从而导致 10000 个唯一的类,从而导致:

  • 分类极度不平衡(RF,如果没有平衡元学习器,在这种情况下几乎总是会失败)
  • 类别数量极多(没有模型能够解决它,RF 肯定无法解决它)
  • 问题的维度非常小——从你的特征数量来看,如果你能从二元分类中进行预测,我会感到惊讶。正如您所看到的,这些值有多么不规则,您有 3 个点仅在第一个值上出现分歧,并且您得到完全不同的结果:

    Level1,Male,New York,New York,352.888890
    Level2,Male,New York,New York,-495.8001345
    Level3,Male,New York,New York,495.8

总而言之,几乎 100% 确定这不是分类问题,您应该:

  • 回归最后一个值(关键字:reggresion)
  • 建立排名(关键字:学习排名)
  • 将您的值存储为最多 10 个不同的值,然后进行分类(关键词:不平衡分类、稀疏二进制表示)

关于machine-learning - 如何使用 pySpark 决定要传递给 SPark MLlib 中的随机森林算法的 numClasses 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34031038/

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