Untitled
unknown
plain_text
3 years ago
2.6 kB
22
Indexable
%%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)Editor is loading...