Введение
В этом практическом занятии мы изучим настройки и объект оценщика в scikit-learn, популярной библиотеке машинного обучения на Python. Мы узнаем о наборах данных, которые представляются в виде двумерных массивов, и о том, как их предобрабатывать для scikit-learn. Мы также изучим концепцию объектов оценщиков, которые используются для обучения на данных и для предсказания.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Ноутбук, чтобы получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Понимание наборов данных
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 для задач статистического обучения.