проблема цикла for (как использовать i-параметр для имени объекта, созданного в цикле for) - PullRequest
0 голосов
/ 26 октября 2019

Я хотел бы создать несколько моделей случайных лесов в цикле for, в которых я перемещаю количество оценок. Обучите каждого из них одной и той же выборке и измерьте точность каждого. Это мой начальный код:

r = range(0, 100)
for i in r:
    RF_model_%i = RandomForestClassifier(criterion="entropy", n_estimators=i, oob_score=True)
    RF_model_%i.fit(X_train, y_train)
    y_predict =   RF_model_%i.predict(X_test)
    accuracy_%i = accuracy_score(y_test, y_predict)

, что я хотел бы понять:

  1. как я могу поставить i-параметр на имя каждогомодель (для того, чтобы их распознать)?
  2. после задания и вычисления показателя точности каждой из i-моделей как я могу поместить результат в список в цикле for?

1 Ответ

1 голос
/ 26 октября 2019

Вы можете сделать что-то вроде этого:

results = [] # init 
r = range(0, 100)
for i in r:
    RF_model_%i = RandomForestClassifier(criterion="entropy", n_estimators=i, oob_score=True)
    RF_model_%i.id = i # dynamically add fields to objects
    RF_model_%i.fit(X_train, y_train)
    y_predict =   RF_model_%i.predict(X_test)
    accuracy_%i = accuracy_score(y_test, y_predict)
    results.append(accuracy_%i) # put the result on a list within the for-loop
...