Как использовать методы 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. Ваш членский взнос напрямую поддерживает меня и других писателей, которых вы читаете.

Вам также может понравиться