在Spark中,随机森林的准确率与分区数量有关吗?

问题描述 投票:-1回答:1

在Spark中,随机森林分类器的准确率和训练数据占用的分区数有关系吗?

例如,我们将训练数据存储在10个分区上,并训练一个RandomForest分类器(RF1).然后我们将训练数据重新分区在20个分区上,并训练第二个RandomForest分类器(RF2).RF1和RF2在技术上有什么区别吗?

apache-spark random-forest
1个回答
0
投票

这个问题看起来很有逻辑,但实际上有点明显。

  • 如果你重新分区,你就会改变数据的分布,每次都是如此。同样的数据在N个或N+M个分区上取训练数据时,通常不会产生同样的结果。

    val Array(trainingData, testData) = data.randomSplit(Array(0.7, 0.3))

  • 那么,获得你的训练和测试、验证数据,在参数相同的情况下,就是一组不同的结果。

所以,你使用的是不同的训练数据,很可能会因此得到稍微不同的结果。

所以,简短的答案是肯定的,也是否定的。有一个间接的关系,也可能不是你问问题时想的那样。不能说分区越多就意味着精度越高。

我跑了很多次。

...
val data = data0.repartition(N) // N varying
...
val Array(trainingData, testData) = data.randomSplit(Array(0.7, 0.3),seed=333)
...

我注意到,随着分区数量从较低到较高,我得到了不同的精度,有时较高,有时不高。

© www.soinside.com 2019 - 2024. All rights reserved.