Случайный лес warm_start = True дает значение ошибки при запуске функции оценки - операнды не могут быть переданы вместе - PullRequest
0 голосов
/ 28 апреля 2019

Я использую случайный лесной прогноз в качестве базового уровня для моей модели ml. Так как мой X_train_split_xgb имеет форму (48195, 300), мне нужно выполнить batchtraining (память). Для этого я установил randomforest с warm_start = True, но когда я включил это, я получил ошибку в rf.predict (строка X_train_split_xgb, а именно: ValueError: операнды не могли быть переданы вместе с фигурами (48195,210) (48195,187 ) (48195,210). Если warm_start = False, я не получаю эту ошибку, и код запускается. Кто-нибудь знает, почему я получаю этот оценщик и как его исправить? Я уже пробовал много вещей. Благодарим Вас за помощь!

X_batch имеет форму (1000,300)

y_batch имеет форму 1000

X_train_split_xgb имеет форму (48195, 300)

y_train_split_xgb_encoded имеет форму 48195

Я даже не знаю, как он пытается вещать (48195,210) (48195,187) (48195,210) вместе, откуда приходят 210 и 187?

from sklearn.ensemble import RandomForestClassifier

errors = []
rf = RandomForestClassifier(n_estimators=5,  
                                     random_state=0,warm_start=True)


for X_batch, y_batch in get_batches(X_train_split_xgb,        y_train_split_xgb_encoded, 1000):

        # Run training and evaluate accuracy
        rf.fit(X_batch, y_batch)# warm_start=True
        print(X_batch.shape)
        print(rf.predict(X_train_split_xgb))
        print(rf.score(X_train_split_xgb, y_train_split_xgb_encoded))
        #pred = rf.predict(X_batch)
        #errors.append(MSE(y_batch, rf.predict(X_batch)))
        rf.n_estimators += 1

Ошибка:

ValueError: operands could not be broadcast together with shapes (48195,210)     (48195,187) (48195,210)

Ожидается: код проходит и выдает оценки на каждой итерации. Факт: код перестает работать в цикле 2, таким образом, когда прогнозирование / оценка должны быть выполнены во второй раз. останавливается в rf.predict ()

...