Трудность воспроизведения RandomForestLearner приводит к сценарию, а не к графическому интерфейсу - PullRequest
0 голосов
/ 11 мая 2018

Я надеялся воспроизвести некоторые данные, вызывая функции через скрипт, а не используя оранжевый графический интерфейс, поскольку это упростит пакетную обработку данных. Я потратил довольно много часов на это безрезультатно, так как не смог найти документацию для сценариев randomforest в orange3.

При использовании схемы на изображении я получаю разумные значения MSE, RMSE, MAE, R2 для случайного дерева из наборов данных инструктора и теста. Случайное дерево использует параметры по умолчанию, выбранные при размещении модели.

Когда я пытаюсь создать сценарий для наборов данных, используя случайное дерево по умолчанию, оно обычно возвращает: «ValueError: Ввод содержит NaN, бесконечность или значение, слишком большое для dtype ('float64')." для всех значений.

Вот код, который я использую:

import os
import Orange

cwd = os.getcwd()+'\\'

train = Orange.data.Table(cwd+'train_ex.csv')
test = Orange.data.Table(cwd+'test_ex.csv')
learner = Orange.classification.RandomForestLearner()

result = Orange.evaluation.testing.TestOnTestData(train,test,[learner])

MSE = Orange.evaluation.MSE(result)
RMSE = Orange.evaluation.RMSE(result)
MAE = Orange.evaluation.MAE(result)
R2 = Orange.evaluation.R2(result)
print(MSE,RMSE,MAE,R2)

Наборы данных можно найти по следующей ссылке: https://drive.google.com/open?id=1lmNar3jItWmWql7ywZtbTi4PtMC32UwE

Любая помощь по этому вопросу очень ценится!

1 Ответ

0 голосов
/ 16 мая 2018

Я решил проблему, с которой столкнулся. В графическом интерфейсе при выборе целевых данных графический интерфейс автоматически выбирает между типами классификации и регрессии деревьев и лесов. Если целевые данные пользователей являются числовыми (непрерывными), необходимо вызвать Orange.regression.learner, тогда как для категориальных (дискретных) данных будет использоваться Orange.classification.learner.

...