Изучение наборов данных и оценщиков в Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим настройки и объект оценщика в scikit-learn, популярной библиотеке машинного обучения на Python. Мы узнаем о наборах данных, которые представляются в виде двумерных массивов, и о том, как их предобрабатывать для scikit-learn. Мы также изучим концепцию объектов оценщиков, которые используются для обучения на данных и для предсказания.

Советы по работе с ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Ноутбук, чтобы получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 83%. Он получил 94% положительных отзывов от учащихся.

Понимание наборов данных

Scikit-learn представляет наборы данных в виде двумерных массивов, где первый ось представляет образцы, а вторая ось представляет признаки. Посмотрим на пример, используя набор данных iris:

from sklearn import datasets

iris = datasets.load_iris()
data = iris.data
print(data.shape)

Результат:

(150, 4)

Набор данных iris состоит из 150 наблюдений по ирисам, при этом каждое наблюдение описывается 4 признаками. Форма массива данных имеет размер (150, 4).

Преобразование формы данных

Иногда данные могут не иметь изначально формы, требуемой scikit-learn. В таких случаях мы должны предобработать данные, чтобы преобразовать их в форму (n_samples, n_features). Примером преобразования формы данных является набор данных digits, который состоит из 1797 изображений размером 8x8 рукописных цифр:

digits = datasets.load_digits()
print(digits.images.shape)

Результат:

(1797, 8, 8)

Для использования этого набора данных с scikit-learn нам нужно преобразовать каждое изображение размером 8x8 в вектор признаков длиной 64:

data = digits.images.reshape((digits.images.shape[0], -1))

Объекты оценщиков

Объекты оценщиков в scikit-learn используются для обучения на данных и для предсказания. Это могут быть алгоритмы классификации, регрессии или кластеризации, или трансформеры, которые извлекают полезные признаки из исходных данных. Создадим простой пример объекта оценщика:

from sklearn.base import BaseEstimator

class Estimator(BaseEstimator):
    def __init__(self, param1=0, param2=0):
        self.param1 = param1
        self.param2 = param2

    def fit(self, data):
        ## Реализация метода fit
        pass

estimator = Estimator()

Применение данных

Основным API, реализованным в scikit-learn, является метод fit объекта оценщика. Он принимает на вход набор данных (обычно двумерный массив). Чтобы применить данные к оценщику, мы можем вызвать метод fit:

estimator.fit(data)

Параметры оценщиков

Объекты оценщиков могут иметь параметры, влияющие на их поведение. Эти параметры можно задавать при инициализации оценщика или путём изменения соответствующего атрибута. Зададим несколько параметров для нашего примера оценщика:

estimator = Estimator(param1=1, param2=2)
print(estimator.param1)

Результат:

1

Эстимированные параметры

Когда данные подгоняются под оценщик, параметры оцениваются на основе данных. Все оцененные параметры являются атрибутами объекта оценщика, заканчивающимися подчёркиванием. Например:

print(estimator.estimated_param_)

Резюме

В этом практическом занятии мы изучили наборы данных в scikit-learn, как изменять форму данных, и концепцию объектов оценщиков. Мы изучили применение данных к оценщику, настройку параметров и доступ к оцененным параметрам. Это понимание настройки и объекта оценщика будет необходимо при работе с scikit-learn для задач статистического обучения.