Случайные леса
Случайные леса — классический и мощный ансамблевый метод, в котором объединяются отдельные деревья решений с помощью бэггинга (bootstrap aggregation). Два основных гиперпараметра этого типа модели — количество деревьев и максимальная глубина каждого дерева. В этом упражнении вы реализуете и оцените простой классификатор на основе случайного леса с фиксированными значениями гиперпараметров.
X_train, y_train, X_test, y_test доступны в вашем рабочем пространстве. Там же доступны pandas как pd, numpy как np и sklearn. Из sklearn.ensemble импортирован RandomForestClassifier(), а из sklearn.metrics — roc_curve() и auc().
Это упражнение является частью курса
Прогнозирование CTR с помощью машинного обучения на Python
Инструкции к упражнению
- Создайте классификатор на основе случайного леса с 50 деревьями и максимальной глубиной 5.
- Обучите классификатор, получите вероятностные оценки с помощью
.predict_proba()и предсказания с помощью.predict()для тестовых данных. - Оцените AUC кривой ROC: сначала используйте
roc_curve()для вычисленияfprиtpr, затем передайте результат вauc(). - Вычислите точность (precision) и полноту (recall) для классификатора.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create random forest classifier with specified params
clf = ____(____ = 50, ____ = 5)
# Train classifier - predict probability score and label
y_score = clf.____(X_train, y_train).____(X_test)
y_pred = clf.____(X_train, y_train).____(X_test)
# Get ROC curve metrics
fpr, tpr, thresholds = ____(y_test, y_score[:, 1])
print("ROC of AUC: %s"%(____(fpr, tpr)))
# Get precision and recall
precision = ____(y_test, y_pred, average = 'weighted')
recall = ____(y_test, y_pred, average = 'weighted')
print("Precision: %s, Recall: %s" %(precision, recall))