Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
2.6 kB
19
Indexable
Never
%%time
best_result = 0
best_model_forest = None

for depth in range(1, 100):
    model = RandomForestClassifier(n_estimators=20, max_depth=depth, random_state=42)
    model.fit(features_upsampled, target_upsampled)
    predicted_valid = model.predict(features_valid) # получаем предсказания модели
    result_f1 = f1_score(target_valid, predicted_valid)
    #result = model.score(features_valid, target_valid)
    #print(result)
    print(result_f1)
    #print(depth)
    if result_f1 > best_result:
        best_model_forest = model # сохраняем наилучшую модель
        best_result = result_f1 #  сохраняем наилучшее значение метрики accuracy на валидационных данных
        #best_est = est
        #best_crit_val = crit_val
        best_depth = depth

# Посчитаем F1        
print("F1 наилучшей модели на валидационной выборке:", best_result, "\nЛучшая глубина:", best_depth)


%%time
best_model_forest = None
best_result = 0
criterion = ['gini', 'entropy']

# Выберем число деревьев 20
for est in range(1, 100):
    for crit_val in criterion:
        model = RandomForestClassifier(max_depth=71, random_state=42, n_estimators=est, criterion=crit_val) # обучаем модель с заданным количеством деревьев
        model.fit(features_train, target_train) # обучаем модель на тренировочной выборке
        #result = model.score(features_valid, target_valid) # считаем качество модели на валидационной выборке
        #print("Accuracy:", result, "\nЧисло деревьев:", est, "\nКритерий:", crit_val)
        predicted_valid = model.predict(features_valid) # получаем предсказания модели
        result_f1 = f1_score(target_valid, predicted_valid)
        print(result_f1)
        if result_f1 > best_result:
            best_model_forest = model # сохраняем наилучшую модель
            best_result = result_f1 #  сохраняем наилучшее значение метрики accuracy на валидационных данных
            best_est = est
            best_crit_val = crit_val

# Посчитаем F1        
print("F1 наилучшей модели на валидационной выборке:", best_result, "\nЛучшее чсило деревьев:", best_est, "\nЛучший критерий:", best_crit_val)