Связана ли точность Random Forest с количеством разделов в Spark? - PullRequest
0 голосов
/ 26 апреля 2020

В Spark, есть ли связь между точностью классификатора Random Forest и количеством разделов, которые занимали обучающие данные?

Например, мы храним обучающие данные на 10 разделах и обучаем RandomForest классификатор (RF1). затем мы перераспределяем обучающие данные на 20 секций и обучаем второй классификатор RandomForest (RF2). Есть ли техническая разница между RF1 и RF2?

1 Ответ

0 голосов
/ 01 мая 2020

Вопрос кажется логичным, но на самом деле вид очевиден:

  • Если вы переразбиваете, вы каждый раз меняете распределение данных в целом. Одни и те же данные по 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)
...

Я заметил, что при переходе от меньшего числа к большему количеству разделов я получал разные Точность, иногда выше, иногда нет.

...