Как использовать методы predict
и predict_proba
в наборе данных для выполнения прогнозов
Введение
При обучении моделей (и, точнее, контролируемых оценок) с помощью sklearn
нам иногда нужно предсказать фактический класс, а в некоторых других случаях мы можем захотеть предсказать вероятности класса.
В сегодняшней статье мы обсудим, как использовать методы predict
и predict_proba
в наборе данных для выполнения прогнозов. Кроме того, мы рассмотрим различия между этими методами и обсудим, когда лучше использовать один из них.
Во-первых, давайте создадим модель-пример, на которую мы будем ссылаться в этой статье, чтобы продемонстрировать несколько концепций. В наших примерах мы будем использовать набор данных Iris, который также включен в модуль sklearn.datasets
модуля scikit-learn
. Это будет классификационная задача, в которой нам нужно идентифицировать и правильно предсказать три различных типа ирисов, а именно Setosa, Versicolour и Virginica, по размерам лепестков и чашелистиков (длина и ширина).
import numpy as np from sklearn import datasets from sklearn.neighbors import KNeighborsClassifier # Load the Iris dataset iris_X, iris_y = datasets.load_iris(return_X_y=True) # Split Iris dataset into train/test sets randomly np.random.seed(0) indices = np.random.permutation(len(iris_X)) iris_X_train = iris_X[indices[:-10]] iris_y_train = iris_y[indices[:-10]] iris_X_test = iris_X[indices[-10:]] iris_y_test = iris_y[indices[-10:]] # Instantiate and fit a KNeighbors classifier knn = KNeighborsClassifier() knn.fit(iris_X_train, iris_y_train)
Метод прогнозирования ()
Все контролируемые оценщики в scikit-learn
реализуют метод predict()
, который можно выполнить на обученной модели, чтобы предсказать фактическую метку (или класс) для нового набора данных.
Метод принимает один аргумент, соответствующий данным, по которым будут делаться прогнозы, и возвращает массив, содержащий прогнозируемую метку для каждой точки данных.
predictions = knn.predict(iris_X_test) print(predictions) array([1, 2, 1, 0, 0, 0, 2, 1, 2, 0])
Метод pred_proba()
В контексте задач классификации некоторые оценщики sklearn
также реализуют метод predict_proba
, который возвращает вероятности класса для каждой точки данных.
Метод принимает один аргумент, соответствующий данным, по которым будут вычисляться вероятности, и возвращает массив списков, содержащих вероятности класса для точек входных данных.
predictions = knn.predict_proba(iris_X_test) print(predictions) array([[0. , 1. , 0. ], [0. , 0.4, 0.6], [0. , 1. , 0. ], [1. , 0. , 0. ], [1. , 0. , 0. ], [1. , 0. , 0. ], [0. , 0. , 1. ], [0. , 1. , 0. ], [0. , 0. , 1. ], [1. , 0. , 0. ]])
Последние мысли
В сегодняшней статье мы обсудили, как выполнять прогнозирование данных с использованием предварительно обученной модели scikit-learn
. Кроме того, мы изучили основные различия между методами predict
и predict_proba
, реализуемыми оценщиками scikit-learn
.
Метод predict
используется для прогнозирования фактического класса, а метод predict_proba
можно использовать для вывода вероятностей класса (т. е. вероятности того, что конкретная точка данных попадает в базовые классы).
Стать участником и читать все истории на Medium. Ваш членский взнос напрямую поддерживает меня и других писателей, которых вы читаете.
Вам также может понравиться