Главная страница

Лекции по линейным мето дам классификации. Вы научитесь


Скачать 74.98 Kb.
НазваниеЛекции по линейным мето дам классификации. Вы научитесь
Дата26.01.2022
Размер74.98 Kb.
Формат файлаpdf
Имя файлаstatement-linear.pdf
ТипЛекции
#343207

Нормализация признаков
Данное задание основано на материалах лекции по линейным мето- дам классификации.
Вы научитесь:
• работать с персептроном — простейшим вариантом линейного клас- сификатора
• повышать качество линейной модели путем нормализации призна- ков
Введение
Линейные алгоритмы — распространенный класс моделей, которые отли- чается своей простотой и скоростью работы. Их можно обучать за разум- ное время на очень больших объемах данных, и при этом они могут рабо- тать с любыми типами признаков — вещественными, категориальными,
разреженными. В этом задании мы предлагаем вам воспользоваться пер- септроном — одним из простейших вариантов линейных моделей.
Как и в случае с метрическими методами, качество линейных алго- ритмов зависит от некоторых свойств данных. В частности, признаки должны быть нормализованы, то есть иметь одинаковый масштаб. Ес- ли это не так, и масштаб одного признака сильно превосходит масштаб других, то качество может резко упасть.
Один из способов нормализации заключается в стандартизации при- знаков. Для этого берется набор значений признака на всех объектах,
вычисляется их среднее значение и стандартное отклонение. После это- го из всех значений признака вычитается среднее, и затем полученная разность делится на стандартное отклонение.
1

Реализация в Scikit-Learn
В библиотеке scikit-learn линейные методы реализованы в пакете sklearn.linear_model.
Мы будем работать с реализацией персептрона sklearn.linear_model.Perceptron.
Как и у большинства моделей, обучение производится с помощью функ- ции fit, построение прогнозов — с помощью функции predict.
Пример использования:
import numpy a s np from s k l e a r n . l i n e a r _ m o d e l import P e r c e p t r o n
X = np . a r r a y ( [ [ 1 ,
2 ] , [ 3 , 4 ] , [ 5 ,
6 ] ] )
y = np . a r r a y ( [ 0 , 1 , 0 ] )
c l f = P e r c e p t r o n ( )
c l f . f i t (X, y )
p r e d i c t i o n s = c l f . p r e d i c t (X)
В качестве метрики качества мы будем использовать долю верных ответов (accuracy). Для ее подсчета можно воспользоваться функци- ей sklearn.metrics.accuracy_score, первым аргументом которой является вектор правильных ответов, а вторым — вектор ответов алгоритма.
Для стандартизации признаков удобно воспользоваться классом sklearn.preprocessing.StandardScaler. Функция fit_transform данного клас- са находит параметры нормализации (средние и дисперсии каждого при- знака) по выборке, и сразу же делает нормализацию выборки с исполь- зованием этих параметров. Функция transform делает нормализацию на основе уже найденных параметров.
Пример использования:
from s k l e a r n . p r e p r o c e s s i n g import S t a n d a r d S c a l e r s c a l e r = S t a n d a r d S c a l e r ( )
X_train = np . a r r a y ( [ [ 1 0 0 . 0 ,
2 . 0 ] ,
[ 5 0 . 0 ,
4 . 0 ] ,
[ 7 0 . 0 ,
6 . 0 ] ] )
X_test = np . a r r a y ( [ [ 9 0 . 0 ,
1 ] ,
[ 4 0 . 0 ,
3 ] ,
[ 6 0 . 0 ,
4 ] ] )
X _ t r a i n _ s c a l e d = s c a l e r . f i t _ t r a n s f o r m ( X_train )
X_t est_s caled = s c a l e r . t r a n s f o r m ( X_test )
Инструкция по выполнению
1. Загрузите обучающую и тестовую выборки из файлов perceptron- train.csv и perceptron-test.csv. Целевая переменная записана в пер-
2
вом столбце, признаки — во втором и третьем.
2. Обучите персептрон со стандартными параметрами и random_state=241.
3. Подсчитайте качество (долю правильно классифицированных объ- ектов, accuracy) полученного классификатора на тестовой выборке.
4. Нормализуйте обучающую и тестовую выборку с помощью класса
StandardScaler.
5. Обучите персептрон на новых выборках. Найдите долю правиль- ных ответов на тестовой выборке.
6. Найдите разность между качеством на тестовой выборке после нор- мализации и качеством до нее. Это число и будет ответом на зада- ние.
Если ответом является нецелое число, то целую и дробную часть необходимо разграничивать точкой, например, 0.421. При необходимо- сти округляйте дробную часть до трех знаков.
Ответ на каждое задание — текстовый файл, содержащий ответ в первой строчке. Обратите внимание, что отправляемые файлы не долж- ны содержать перевод строки в конце. Данный нюанс является ограни- чением платформы Coursera. Мы работаем над тем, чтобы убрать это ограничение.
3


написать администратору сайта