Ошибка RandomForestClassifier 'у объекта типа' int 'нет len ()' - PullRequest
0 голосов
/ 24 мая 2018

я пишу код?и столкнулся с '' объектом типа int

1 Ответ

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

Нам нужно изменить некоторые вещи в коде:

  • Прежде всего, min_impurity_decrease следует заменить на min_impurity_split.RandomForestClassifier не имеет min_impurity_decrease.
  • Во-вторых, проблема в вашем коде заключается в способе определения class_weight.
  • Вам не нужна функция list.range отлично работает для всех параметров, кроме class_weight.

Пример, который работает с данными радужной оболочки:

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV

x = load_iris().data
y = load_iris().target

parameters = {'max_depth': range(3, 11, 2), 'class_weight':[{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 1, 1: 1}], 'min_impurity_split':range(3, 11, 2), 'max_features':range(3, 4)}
knc = RandomForestClassifier()
clf = GridSearchCV(knc, parameters)

clf.fit(x,y)
clf.best_estimator_

Из документации :

class_weight : dict, list of dicts, “balanced”,

Note that for multioutput (including multilabel) weights should be defined for 
each class of every column in its own dict. For example, for four-class 
multilabel classification weights should be [{0: 1, 1: 1}, {0: 1, 1: 5}, {0: 
1, 1: 1}, {0: 1, 1: 1}] instead of [{1:1}, {2:5}, {3:1}, {4:1}].`
...