На этом шаге мы сформулируем задачу, которыую будем решать на следующих шагах.
Еще одна полезная деталь интерфейса scikit-learn, о которой мы еще не говорили - это возможность вычислить оценки неопределенности прогнозов. Часто вас интересует не только класс, спрогнозированный моделью для определенной точки тестового набора, но и степень уверенности модели в правильности прогноза. В реальной практике различные виды ошибок приводят к очень разным результатам. Представьте себе медицинский тест для определения рака. Ложно положительный прогноз может привести к проведению дополнительных исследований, тогда как ложно отрицательный прогноз может привести к пропуску серьезной болезни. Мы подробнее разберем эту тему позднее.
В scikit-learn существует две различные функции, с помощью которых можно оценить неопределенность прогнозов:
[In 2]: from sklearn.ensemble import GradientBoostingClassifier from sklearn.datasets import make_blobs, make_circles from sklearn.model_selection import train_test_split X, y = make_circles(noise=0.25, factor=0.5, random_state=1) # мы переименовываем классы в «blue» и «red» для удобства y_named = np.array(["blue", "red"])[y] # мы можем вызвать train_test_split с любым количеством массивов, # все будут разбиты одинаковым образом X_train, X_test, y_train_named, y_test_named, y_train, y_test = \ train_test_split(X, y_named, y, random_state=0) # строим модель градиентного бустинга gbrt = GradientBoostingClassifier(random_state=0) gbrt.fit(X_train, y_train_named)
На следующем шаге мы рассмотрим решающую функцию.