Пакетное обучение классификатора случайных лесов Python Ошибка измерения - PullRequest
0 голосов
/ 24 апреля 2020

У меня большой фрейм данных, содержащий около миллиона записей и 19 функций (+1 целевая переменная). Так как я не смог обучить свой RF-классификатор из-за ошибки памяти (это многоклассовая классификация с приблизительно 750 классами), поэтому я прибегнул к пакетному обучению. Модель обучена отлично, но когда я запускаю команду model.predict, она дает мне следующее ValueError :

ValueError: operands could not be broadcast together with shapes (231106,628) (231106,620) (231106,628).

Мой код следующий:

#Splitting into Dependent and Independent Variables

X= df.iloc[:,1:]
y= df.iloc[:,0]

#Train-test Split

train_X, test_X, train_y, test_y = train_test_split(X,y,test_size=0.25,random_state=1234) 

data_splits= zip(np.array_split(train_X,6),np.array_split(train_y,6))

rf_clf= RandomForestClassifier(warm_start=True, n_estimators=1,criterion='entropy',random_state=1234)

for i in range(10): #10 passes through the data
    for X,y in data_splits:
        rf_clf.fit(X,y)
        rf_clf.n_estimators +=1 # increment by one, so next will add 1 tree

y_preds= rf_clf.predict(test_X)

Буду очень признателен за любую помощь. Любые другие предложения также приветствуются.

1 Ответ

0 голосов
/ 29 апреля 2020

Нашел ответ. Это происходило из-за несогласованности классов переменной y в пакетах данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...