56
Введение в машинное обучение Введение в машинное обучение Виктория Федотова ([email protected])

Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Введение в машинное обучениеВиктория Федотова ([email protected])

Page 2: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 2

Содержание

• Задачи, решаемые при помощи машинного обучения

• Алгоритмы машинного обучения

• Описание

• Метрики качества

Page 3: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Что такое машинное обучение?

“Машинное обучение – это процесс, в результате которого машина (компьютер) способна показывать поведение, которое в нее не было явно заложено (запрограммировано).”− Артур Самуэль, 1959

3

Page 4: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 4

Способы машинного обучения

• Обучение «с учителем»

• Для каждого наблюдения задаётся требуемое решение

• Цель: научиться предзказывать требуемое решение для новых наблюдений

• Обучение «без учителя»

• Данные содержат только наблюдения, без дополнительной информации

• Цель: выявить закономерности в исходных данных

• Обучение с подкреплением

• Обучение ведётся при взаимодействии с некоторой средой. При воздействии на среду система получает отклик

• Цель: максимизировать значение общей «прибыли»

Page 5: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 5

Обучение «с учителем»

• Регрессия

• Позволяет предсказаль значение вещественнозначной зависимой переменной, исходя из значений одной или нескольких независимых переменных

• Классификация

• Позволяет определить принадлежность наблюдения определённому классунаблюдений

• Коллаборативная фильтрация

• Позволяет предсказать неизвестные предпочтения пользователя по известным предпочтениям других пользователей

Page 6: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 6

Обучение «без учителя»

• Кластеризация

• Позволяет сгруппировать наблюдения в группы (кластера) таким образом, что наблюдения внутри одной группы будут в определённом смысле более схожи, чем наблюдения из разных групп

• Понижение размерности

• Feature selection: позволяет выбрать наиболее релевантное подмножество признаков для дальнейшего построения модели

• Feature extraction: позволяет по изначальным признакам построить производные, более информативные, менее избыточные, признаки

• Ассоциативные правила

• Позволяют найти интересные зависимости между признаками в большом наборе данных

Page 7: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Регрессия

Page 8: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Линейная регрессия

8

• Используется для моделирования линейных, аддитивных зависимостей между признаками

Дан вектор признаков 𝑋𝑇 = (𝑥1, 𝑥2, … , 𝑥𝑝),

нужно предсказать ответ 𝑌 при помощи модели:

𝑦 = ℎ(𝑋) = 𝛽0 +

𝑗=1

𝑝

𝑥𝑗 𝛽𝑗

К оригинальным данным могут быть применены некоторые трансформации:

𝑥𝑗 = 𝑓𝑗 𝑍 ;

Где 𝑍𝑇 = (𝑧1, 𝑧2, … , 𝑧𝑞) – оригинальные данные

Weight | Horsepower | MPG

--------+------------+------

1.935 | 66 | 27.3

1.513 | 113 | 30.4

5.424 | 215 | 10.4

... | ... | ...

Независимые переменные / Признаки

Ответ

Чи

сло

на

бл

юд

ен

ий

(n)

Размерность задачи (p)

Page 9: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Функция стоимости

9

Одномерная линейная регрессия:ℎ 𝑥 = 𝛽0 + 𝛽1𝑥

Идея: Выбрать коэффициенты 𝛽0, 𝛽1таким образом, чтобы значение ℎ 𝑥 было близко к 𝑦 для наблюдений из тренировочной выборки.

Метод наименьших квадратов:

min𝛽0,𝛽1

𝑖=1

𝑛

ℎ 𝑥 𝑖 − 𝑦(𝑖) 2

𝐽(𝛽

0,𝛽

1)

𝛽0 𝛽1

Page 10: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Градиентный спуск

10

Функция стоимости: 𝐽 𝛽0, 𝛽1 =1

2𝑛 𝑖=1

𝑛 𝛽0 + 𝛽1𝑥(𝑖) − 𝑦(𝑖) 2

Метод градиентного спуска:

𝛽𝑗{𝑘+1}

= 𝛽𝑗{𝑘}

− 𝛼𝜕

𝜕𝛽𝑗𝐽(𝛽0, 𝛽1)

Результат:

𝛽0𝑘+1

= 𝛽0𝑘

− 𝛼1

𝑛

𝑖=1

𝑛

ℎ 𝑥 𝑖 − 𝑦 𝑖

𝛽1𝑘+1

= 𝛽1𝑘

− 𝛼1

𝑛

𝑖=1

𝑛

ℎ 𝑥 𝑖 − 𝑦 𝑖 𝑥 𝑖

𝜷 𝟎

𝜷 𝟏

𝜷 𝟐

−𝜵𝑱(𝜷 𝟏 )

−𝜵𝑱(𝜷 𝟎 )

𝜷∗

Page 11: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 11

Метод нормальных уравнений

Для задачи min𝛽

𝑖=1𝑛 ℎ 𝑥 𝑖 − 𝑦(𝑖) 2

можно найти аналитическое решение

𝐽 𝛽 =

𝑖=1

𝑛

𝑥 𝑖 𝑇𝛽 − 𝑦(𝑖) 2

𝑑𝐽 𝛽

𝑑𝛽= 0 ⇒ 𝑿𝑇 𝒚 − 𝑿𝛽 = 0

Если 𝑿𝑇𝑿 – матрица полного ранга, тогда существует единственное решение:

𝛽 = 𝑿𝑇𝑿 −1𝑿𝑇𝒚

𝑿 =1 𝑥(1)

… …1 𝑥(𝑛)

, 𝒚 =𝑦(1)

…𝑦(𝑛)

Page 12: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 12

Линейная регрессия в DAALШаг 0: Подключение библиотеки#include "daal.h"

/* C++ standard library */

using namespace std;

/* Main DAAL namespace */

using namespace daal;

/* Data management functionality: NumericTables, DataSources, etc. */

using namespace daal::data_management;

/* Classes of the linear regression algorithm */

using namespace daal::algorithms::linear_regression;

Page 13: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 13

Управление данными в DAAL

• Для представления данных в памяти используются числовые таблицы:

• Гомогенные – когда набор данных содержит данные одного типа

• Плотные

• Разреженные

• Гетерогенные – когда в наборе данных есть данные разных типов (double, int, string,…)

• Структура массивов (structure of arrays, SOA)

• Массив структур (array of structures, AOS)

• Таблицы из таблиц

• Объединённые по столбцам

Page 14: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 14

Линейная регрессия в DAALШаг 1: Создание числовых таблиц

const size_t nFeatures = 10; // Number of features in the input data set

const size_t nDependentVariables = 2; // Number of responses in the input data set

/* Create Numeric Tables for training data and dependent variables */

services::SharedPtr<NumericTable> trainData(

new HomogenNumericTable<double>(nFeatures, 0, NumericTable::notAllocate));

services::SharedPtr<NumericTable> trainDependentVariables(

new HomogenNumericTable<double>(nDependentVariables, 0,

NumericTable::notAllocate)); services::SharedPtr<NumericTable> mergedData(

new MergedNumericTable(trainData, trainDependentVariables));

Page 15: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 15

Загрузка данных в числовую таблицу

Данные могут быть загружены из различных источников при помощи объектов класса DataSource:

• FileDataSource – для чтения данных из файла. Поддерживает CSV формат

• StringDataSource – для чтения данных из массива символов

• ODBCDataSource – для чтения данных при помощи Open Database Connectivity (ODBC) API. Поддерживает MySQL

Page 16: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 16

Линейная регрессия в DAALШаг 2: Загрузка данных из файлаstring trainDatasetFileName = "linear_regression_train.csv"; // Path to the input data set

/* Initialize FileDataSource to retrieve the input data from a .csv file */

FileDataSource<CSVFeatureManager> trainDataSource(trainDatasetFileName,

DataSource::notAllocateNumericTable,

DataSource::doDictionaryFromContext);

/* Retrieve the data from input file and loads it into numeric table */

trainDataSource.loadDataBlock(mergedData.get());

Page 17: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 17

Способы вычислений

• Batch

• Использует один набор данных. Применим, когда все данные доступны сразу и могут быть обработаны на одном вычислительном узле.

• Online

• Использует несколько наборов данных. Применим, когда наборы данных находятся в разных местах или когда данные поступают по одному блоку в единицу времени.

• Distributed

• Использует несколько наборов данных. Применим, когда наборы данных доступны на разных вычислительных узлах и могут быть обработаны в распределённом режиме с помощью MPI или Spark.

Page 18: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 18

Линейная регрессия в DAALШаг 2: Тренировка модели/* Create an algorithm object to train the model with the normal equations method */

training::Batch<> algorithm;

/* Pass a training data set and dependent values to the algorithm */

algorithm.input.set(training::data, trainData);

algorithm.input.set(training::dependentVariables, trainDependentVariables);

/* Build the multiple linear regression model */

algorithm.compute();

/* Retrieve the algorithm results */

services::SharedPtr<training::Result> trainingResult = algorithm.getResult();

/* Retrieve linear regression coefficients */

services::SharedPtr<NumericTable> beta = trainingResult->get(training::model)->getBeta();

Page 19: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 19

Проблема переобучения

0

1

2

3

4

20 40 60 80

Pri

ce (

Mil

lio

n r

ub

)

Size (m2)

Apartment Prices

0

1

2

3

4

20 40 60 80P

rice

(M

illi

on

ru

b)

Size (m2)

Apartment Prices

0

1

2

3

4

20 40 60 80

Pri

ce (

Mil

lio

n r

ub

)

Size (m2)

Apartment Prices

ℎ 𝑥 = 𝛽0 + 𝛽1𝑥 ℎ 𝑥 = 𝛽0 + 𝛽1𝑥 + 𝛽2𝑥2

“Недообучение” “Переобучение”

ℎ 𝑥 = 𝛽0 + 𝛽1𝑥 + 𝛽2𝑥2 + 𝛽3𝑥3

Page 20: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 20

Как преодолеть проблему переобучения?

• Уменьшить количество независимых переменных

• Вручную

• Использовать алгоритмы понижения размерности

• Использовать регуляризацию

• Сохраняет все независимые переменные, но уменьшает значимось коэффициентов модели

• Эффективно работает, когда все независимые переменные делают вклад в результат 𝑦

Page 21: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 21

Гребневая регрессия

Интуиция:

• Пусть: ℎ 𝑥 = 𝛽0 + 𝛽1𝑥 + 𝛽2𝑥2 + 𝛽3𝑥3

Рассмотрим изменённую функцию стоимости:

• 𝐽 𝛽0, 𝛽1, 𝛽2, 𝛽3 = 𝑖=1𝑛 ℎ 𝑥 𝑖 − 𝑦(𝑖) 2

+ 1000𝛽32

Единственный способ достичь min𝛽0,𝛽1,𝛽2,𝛽3

𝐽(𝛽) - уменьшить значение 𝛽3

Гребневая регрессия:

𝐽 𝛽 =

𝑖=1

𝑛

ℎ 𝑥 𝑖 − 𝑦(𝑖) 2+ 𝜆 𝛽2

Page 22: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Классификация

Page 23: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 23

Используется для предсказания бинарного отклика на основе одной или нескольких независимых переменных путём построения вероятностной модели

𝑃 𝑦 = 1 𝑥 = 𝑓 ℎ 𝑥 =1

1 + 𝑒−ℎ 𝑥;

ℎ 𝑥 = 𝑥1𝜃1 + ⋯ + 𝑥𝑝𝜃𝑝

𝑃 𝑦 𝑥 = 𝑓 ℎ 𝑥𝑦

1 − 𝑓 ℎ 𝑥1−𝑦

Логистическая регрессияВозраст Доход Класс

18 25 1

22 100 1

30 70 1

32 120 1

24 15 0

... ... ...

Независимые переменные

Чи

сло

на

бл

юд

ен

ий

(n)

Логистическаякривая

Page 24: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 24

Метод максимального правдоподобия

Идея: Выбрать коэффициенты Θ = (𝜃1, … , 𝜃𝑝) таким образом, чтобы

максимизировать вероятность совместного появления результатов

выборки 𝑦(1), 𝑦(2), … , 𝑦(𝑛).

Функция правдоподобия:

𝐿 𝑦(1), 𝑦(2), … , 𝑦(𝑛)|Θ = 𝑝 𝑦(1) Θ ⋅ … ⋅ 𝑝(𝑦(𝑛)|Θ)

Метод максимального правдоподобия:

maxΘ

𝑙𝑛(𝐿 𝑦(1), 𝑦(2), … , 𝑦(𝑛)|Θ )

Page 25: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 25

Градиентный спуск

Функция потерь:

𝐽 Θ = −1

𝑛ln 𝐿 𝛩 = −

1

𝑛

𝑖=1

𝑛

𝑦 𝑖 ln ℎ 𝑥(𝑖) + (1 − 𝑦(𝑖)) 1 − ln ℎ 𝑥(𝑖)

Метод градиентного спуска:

𝜃𝑗{𝑘+1}

= 𝜃𝑗{𝑘}

− 𝛼𝜕

𝜕𝜃𝑗𝐽(Θ)

Результат:

𝜃𝑗𝑘+1

= 𝜃𝑗𝑘

− 𝛼1

𝑛

𝑖=1

𝑛

ℎ 𝑥 𝑖 − 𝑦 𝑖 𝑥𝑗(𝑖)

Page 26: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 26

Анализ ошибок классификации

• Что если набор данных содержит 99% наблюдений, принадлежащих классу 1?

• У классификатора, который всегда предсказывает «1», корректность предсказаний будет равна 99%.

• Корректность = число корректных предсказаний

общее число предсказаний

• Что если корректность предсказаний увеличилась с 98.7% до 99.1%?

• Как понять, что это реальное улучшение алгоритма классификации?

Page 27: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 27

Фактические значения классов

Предсказанные значения классов

положительно отрицательно

положительно True positive (TP)

False positive (FP)

отрицательно False negative (FN)

True negative (TN)

Точность (precision): доля истинно положительных примеров среди примеров, предсказанных как положительные

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =TP

TP + 𝑭𝑷

Полнота (recall): доля истинно положительных примеров среди фактически положительных примеров

𝑅𝑒𝑐𝑎𝑙𝑙 =TP

TP + 𝑭𝑵

Метрики качества классификации:Матрица неточностей

• TP – истинно положительное решение• TN – истинно отрицательное решение• FN – ошибка I рода, ложно

отрицательное решение• FP – ошибка II рода, ложно

положительное решение

Page 28: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 28

Оценка качества классификатора

Precision Recall Среднее F1-мера

Алгоритм 1 0.5 0.4 0.45 0.444

Алгоритм 2 0.7 0.1 0.4 0.175

Алгоритм 3 0.02 1.0 0.51 0.0392

Среднее:𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙

2

• Может оказаться, что алгоритм 3 всегда предсказывает положительный результат

• Ненадёжная метрика

F1-мера = 2𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛⋅𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙

? ?

Page 29: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 29

Многоклассовая классификация на основе бинарного классификатораЦель: Классифицировать объекты из К классов при помощи бинарного классификатора.

Способы:

• Один против остальных

• K классификаторов: i-тый классификатор классифицирует объекты класса i как положительные; объекты всех остальных классов – как отрицательные.

• Один против одного

• Постороить K(K-1)/2 классификаторов: для каждой пары классов (i, j), i < j.

Page 30: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 30

Многоклассовая классификация в DAALПредсказаниеusing namespace daal;

using namespace daal::data_management;

using namespace daal::algorithms;

const size_t nClasses = 5; // Number of classes in the data set

/* Create training and prediction algorithms of the binary classifier */

services::SharedPtr<svm::training::Batch<> > training(new svm::training::Batch<>());

services::SharedPtr<svm::prediction::Batch<> > prediction(new svm::prediction::Batch<>());

/* Create an algorithm object to predict multi-class classification values */

multi_class_classifier::prediction::Batch<> algorithm;

algorithm.parameter.nClasses = nClasses;

algorithm.parameter.training = training; algorithm.parameter.prediction = prediction;

/* Pass a testing data set and the trained model to the algorithm */

algorithm.input.set(classifier::prediction::data, testData);

algorithm.input.set(classifier::prediction::model, trainingResult->get(classifier::training::model));

/* Predict multi-class classification values */

algorithm.compute();

services::SharedPtr<classifier::prediction::Result> predictionResult = algorithm.getResult();

Page 31: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 31

Матрица неточностей для многоклассового классификатора

Фактические значения классов

Предсказанные значения

Класс 1 Класс 2 … Класс К

Класс 1 с11 с12 … с1K

Класс 2 с21 с22 … с2K

… … … … …

Класс К сK1 сK2 … сKK

TPi – число корректно предсказанных элементов класса i

TNi – число элементов, не относящихся к классу i, предсказанных как не относящиеся к классу i

FNi – число элементов, которые были некорректно предсказаны как элементы класса i

FPi – число элементов класса i, которые были некорректно предсказаны как элементы других классов

Page 32: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 32

Многоклассовая классификация в DAALМетрики качества/* Retrieve predicted labels */

services::SharedPtr<NumericTable> predictedLabels =

predictionResult->get(classifier::prediction::prediction);

/* Create a quality metric set object to compute quality metrics of the multi-class

classifier algorithm */

multi_class_classifier::quality_metric_set::Batch qualityMetricSet(nClasses);

services::SharedPtr<multiclass_confusion_matrix::Input> input =

qualityMetricSet.getInputDataCollection()->

getInput(multi_class_classifier::quality_metric_set::confusionMatrix);

/* Pass predicted class labels and ground truth labels to the quality metric algorithm */

input->set(multiclass_confusion_matrix::predictedLabels, predictedLabels);

input->set(multiclass_confusion_matrix::groundTruthLabels, groundTruthLabels);

/* Compute and retrieve the quality metrics */

qualityMetricSet.compute();

qualityMetricSetResult = qualityMetricSet.getResultCollection();

Page 33: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Кластеризация

Page 34: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

К средних

34

Алгоритм стремится разбить данные на k кластеров таким образом, чтобы минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров.

min𝑆

𝐽 𝑆 = min𝑆

𝑖=1

𝑘

𝑥∈𝑆𝑖

𝑥 − 𝜇𝑖2

𝜇𝑖 - центроид 𝑖-того кластера: 𝜇𝑖 =1

𝑆𝑖 𝑥∈𝑆𝑖

𝑥

Page 35: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 35

Алгоритм k средних

• Выбрать начальные центроиды кластеров 𝜇1, 𝜇2, … , 𝜇𝑘

• Повторять в цикле:

• Перераспределить точки по кластерам в соответствии с ближайшими центроидами:

𝑆𝑖{𝑡}

= 𝑥𝑝: 𝑥𝑝 − 𝜇𝑖𝑡

2≤ 𝑥𝑝 − 𝜇𝑗

𝑡2

, ∀𝑗

• Пересчитать значение центроидов:

𝜇𝑖𝑡+1 =

1

𝑆𝑖(𝑡)

𝑥∈𝑆𝑖(𝑡)

𝑥

• Критерий остановки: центроиды перестали изменяться

Page 36: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 36

Выбор оптимального значения k

• Простая эвристика: 𝑘 ≈ 𝑛2

• Идея: Оценить изменение функции стоимости 𝐽 𝑆 = 𝑖=1𝑘 𝑥∈𝑆𝑖

𝑥 − 𝜇𝑖2

Изменение значения функции стоимости замедляется

Рекоммендация: выбирать такое значение k, после которого уменьшение функции стоимости замедляется.

Page 37: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Понижение Размерности

Page 38: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 38

• Подготовить данные для более эффективной работы алгоритмов обучения «с учителем»: уменьшить количество признаков, очистить данные от незначимых признаков.

• Получить компакное представление исходных данных без существенных потерь информации

• Визуализация: получить 2-х или 3-хмерную картину данных

Зачем нужно понижать размерность?

Page 39: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 39

Метод главных компонент (2D ⇒ 1D)

Дан набор точек в двумерном пространстве.

Нужно найти прямую, проходящую через начало координат, сумма квадратов расстояний до которой минимальна.

𝐿 = arg min𝐿

𝑖=1

𝑛

𝑑𝑖𝑠𝑡 𝑥 𝑖 , 𝐿2

𝑎 = arg min𝑎 =1

𝑖=1

𝑛

𝑥 𝑖 − 𝑎(𝑎, 𝑥(𝑖))2

𝒙 𝟏

𝒙 𝟐

𝑳

𝒂

Page 40: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 40

Метод главных компонент

Найти линейное многообразие размерности 𝑘 < 𝑝, сумма квадратов проекций данных на которое минимальна.

• Центрировать данные: 𝑥(𝑖) ← 𝑥(𝑖) − 𝜇, 𝜇 =1

𝑛 𝑖=1

𝑛 𝑥(𝑖)

• Для 𝑙 = 1, … , 𝑘 выполнить:

• Найти очередную главную компоненту 𝑎𝑙 как решение задачи:

𝑎𝑙 = arg min𝑎𝑙 =1

𝑖=1

𝑛

𝑥 𝑖 − 𝑎𝑙(𝑎𝑙, 𝑥(𝑖))

2

• Вычесть из данных проекцию на найденную компоненту:

𝑥 𝑖 ← 𝑥 𝑖 − 𝑎𝑙(𝑎𝑙, 𝑥(𝑖))

Page 41: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 41

Выбор числа главных компонент (k)

Обычно k выбирают, как наименьшее значение, при котором выполняется неравенство:

1𝑛

𝑖=1𝑛 𝑥 𝑖 − 𝑥𝑎𝑝𝑝𝑟𝑜𝑥

𝑖2

1𝑛

𝑖=1𝑛 𝑥 𝑖 2

< ε

Т.е. 1 − ε ⋅ 100% дисперсии исходных данных сохранено.

Page 42: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 42

Другой метод поиска главных компонент

Σ = 𝜎𝑖𝑗 , 𝜎𝑖𝑗 = 𝑐𝑜𝑣 𝑋𝑖 , 𝑋𝑗 =1

𝑛

𝑙=1

𝑛

(𝑥𝑖𝑙

− 𝜇𝑖)(𝑥𝑗(𝑙)

− 𝜇𝑖)

Для центрированных данных:

𝑐𝑜𝑣 𝑋𝑖 , 𝑋𝑗 =1

𝑛

𝑙=1

𝑛

𝑥𝑖(𝑙)

⋅ 𝑥𝑗(𝑙)

Собственные вектора матрицы Σ являются главными компонентами.

Выбор значения k:1𝑛

𝑖=1𝑛 𝑥 𝑖 − 𝑥𝑎𝑝𝑝𝑟𝑜𝑥

𝑖2

1𝑛

𝑖=1𝑛 𝑥 𝑖 2

= 1 − 𝑖=1

𝑘 𝜆𝑖

𝑖=1𝑝

𝜆𝑖

< ε

𝜆1 ≥ 𝜆2 ≥ ⋯ ≥ 𝜆𝑝 ≥ 0

Page 43: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Поиск ассоциативных правил

Page 44: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 44

Пример: Анализ рыночной корзины

Покупатель № Хлеб Молоко Подгузники Яйца Пиво

1 Х Х

2 Х Х Х Х

3 Х Х Х

4 Х Х Х

5 Х Х Х

Примеры наборов товаров:

• {хлеб, молоко} набор встречается в 40% транзакций (2 of 5);

• {молоко, подгузники, пиво} набор встречается в 20% транзакцийПримеры ассоциативных правил:

• {хлеб, подгузники} ⇒ {пиво} если покупает {хлеб, подгузники}, значит купит {пиво} с вероятностью 67%

• {хлеб} ⇒ {яйца} если покупает {хлеб}, значит купит {яйца} с вероятностью 20%

Page 45: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 45

Поддержка и достоверность

𝐼 = 𝑖1, 𝑖2, … , 𝑖𝑚 - набор элементов.

𝑇 ⊂ 𝐼 – транзакция.

Транзакция 𝑇 содержит 𝑋 – набор элементов из 𝐼, если 𝑋 ⊆ 𝑇.

Ассоциативное правило – импликация: 𝑋 ⇒ 𝑌, где 𝑋 ⊂ 𝐼, 𝑌 ⊂ 𝐼 и 𝑋 ∩ 𝑌 = Ø.

Пусть 𝐷 = 𝑇1, 𝑇2, … , 𝑇𝑛 - множество транзакций.

Поддержка (support) набора элементов 𝑋 ⊂ 𝐼 равна s, если s% транзакций из 𝐷содержат 𝑋.

Достоверность (confidence) правила 𝑋 ⇒ 𝑌 равна c, если c% транзакций из 𝐷, содержащих набор элементов 𝑋, также содержат набор элементов 𝑌.

𝒄𝒐𝒏𝒇𝒊𝒅𝒆𝒏𝒄𝒆 𝑿 ⇒ 𝒀 =𝒔𝒖𝒑𝒑𝒐𝒓𝒕(𝑿 ∪ 𝒀)

𝒔𝒖𝒑𝒑𝒐𝒓𝒕(𝑿)

Page 46: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 46

Поиск ассоциативных правил

Даны:

Набор транзакций: 𝐷 = 𝑇1, 𝑇2, … , 𝑇𝑛 ;

minS – минимальная поддержка;

minC – минимальная достоверность.

Найти:

1. Все наборы элементов X с поддержкой больше, чем minS.

2. Все ассоциативные правила 𝑋 ⇒ 𝑌 с достоверностью больше, чем minC.

Page 47: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

47

Алгоритм априориГлавные k-наборы – множества из k элементов, чья поддержка больше, чем минимальная поддержка s.

Свойство априори: Любое подмножество главного набора тоже является главным набором.Customer Items purchased (transactions)

Bread Milk Diaper Eggs Beer

1 X X

2 X X X X

3 X X X

4 X X X

5 Х Х Х

Be Br D M

Be, Br Be, D Br, D Br, M D, M

Be, Br, D Be, Br, M Be, D, M Br, D, M

Be, M

Задача: Найти все наборы данных с поддержкой не менее 40%

1. Найти главные 1-наборы2. Сгенерировать кандидатов: наборы размера 2 из

главных 1-наборов.3. Найти главные 2-наборы: просканировать транзакции

из D чтобы отфильтровать кандидатов, чья поддержка меньше minS (40%).

4. k = 3; Повторять шаги 5-7.5. Сгенерировать кандидатов: наборы размера k из

главных (k-1)-наборов.6. Удалить кандидатов, имеющих подмножества

размера (k-1), не являющиеся главными (свойство априори).

7. Найти главные 2-наборы: просканировать транзакции из D чтобы отфильтровать кандидатов, чья поддержка меньше minS (40%).

Если на шаге получается пустое множество, то конец.

Step 1Step 2Step 3Step 5Step 6Step 7

Page 48: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение

Коллаборативная фильтрация

Page 49: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 49

Пример из жизни

Рекомендация полезных услуг/товаров пользователям

Amazon, Netflix, Spotify,... пользуются этим постоянно

Page 50: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 50

Коллаборативная фильтрация

• Обрабатывает прошлое поведение пользователей, их активности или оценки

• Предсказывает, что пользователю может понравится на основе его схожести с другими пользователями

Page 51: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 51

Alternating least squares (ALS)

Дана матрица рейтингов: 𝑅 = 𝑟𝑖𝑗 ; 𝑖 = 1, … 𝑁𝑢; 𝑗 = 1, … , 𝑁p

Интуиция: использовать пространство более низкой размерности

𝑟𝑖𝑗 ≅

𝑘=1

𝐾

𝑥𝑖𝑘 ∗ 𝑦𝑗𝑘

Факторизовать матрицу R как Q = X x YT

• K << 𝑁𝑢, 𝑁𝑝

Np

Nu

Nu x K K x Np

X YT

Page 52: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 52

Нелинейная оптимизационная проблема

Метод наименьших квадратов (по всем известным значениям рейтингов):

Приближаются не исходные значения рейтингов, а значения «предпочтений»:

Парамеры cui характеризуют уровень уверенности:𝛼 > 0 – контролирует уровень уверенности

Page 53: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 53

Alternating least squares (ALS)

Метод градиентного спуска не подходит, т.к. на практике размерности задачи велики

ALS:

• Фиксировать значения матриц X и Y попеременно

• Метод нормальных уравнений

Page 54: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 54

Ссылки

• https://class.coursera.org/ml-005/lecture/preview - ML course by Andrew Ng

• https://en.wikipedia.org/wiki/Category:Machine_learning

• http://www.intuit.ru/studies/courses/13844/1241/info

• http://www.machinelearning.ru

• https://software.intel.com/en-us/daal-programming-guide

Page 55: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Введение в машинное обучение 55

Вопросы?

Page 56: Введение в машинное обучениеdelta-course.org/docs/delta4/day2/D4T1L7.pdf · Обучение «без учителя» • Кластеризация •

Placeholder Footer Copy / BU Logo or Name Goes Here