Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
Введение в машинное обучение
Введение в машинное обучениеВиктория Федотова ([email protected])
Введение в машинное обучение 2
Содержание
• Задачи, решаемые при помощи машинного обучения
• Алгоритмы машинного обучения
• Описание
• Метрики качества
Введение в машинное обучение
Что такое машинное обучение?
“Машинное обучение – это процесс, в результате которого машина (компьютер) способна показывать поведение, которое в нее не было явно заложено (запрограммировано).”− Артур Самуэль, 1959
3
Введение в машинное обучение 4
Способы машинного обучения
• Обучение «с учителем»
• Для каждого наблюдения задаётся требуемое решение
• Цель: научиться предзказывать требуемое решение для новых наблюдений
• Обучение «без учителя»
• Данные содержат только наблюдения, без дополнительной информации
• Цель: выявить закономерности в исходных данных
• Обучение с подкреплением
• Обучение ведётся при взаимодействии с некоторой средой. При воздействии на среду система получает отклик
• Цель: максимизировать значение общей «прибыли»
Введение в машинное обучение 5
Обучение «с учителем»
• Регрессия
• Позволяет предсказаль значение вещественнозначной зависимой переменной, исходя из значений одной или нескольких независимых переменных
• Классификация
• Позволяет определить принадлежность наблюдения определённому классунаблюдений
• Коллаборативная фильтрация
• Позволяет предсказать неизвестные предпочтения пользователя по известным предпочтениям других пользователей
Введение в машинное обучение 6
Обучение «без учителя»
• Кластеризация
• Позволяет сгруппировать наблюдения в группы (кластера) таким образом, что наблюдения внутри одной группы будут в определённом смысле более схожи, чем наблюдения из разных групп
• Понижение размерности
• Feature selection: позволяет выбрать наиболее релевантное подмножество признаков для дальнейшего построения модели
• Feature extraction: позволяет по изначальным признакам построить производные, более информативные, менее избыточные, признаки
• Ассоциативные правила
• Позволяют найти интересные зависимости между признаками в большом наборе данных
Введение в машинное обучение
Регрессия
Введение в машинное обучение
Линейная регрессия
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)
Введение в машинное обучение
Функция стоимости
9
Одномерная линейная регрессия:ℎ 𝑥 = 𝛽0 + 𝛽1𝑥
Идея: Выбрать коэффициенты 𝛽0, 𝛽1таким образом, чтобы значение ℎ 𝑥 было близко к 𝑦 для наблюдений из тренировочной выборки.
Метод наименьших квадратов:
min𝛽0,𝛽1
𝑖=1
𝑛
ℎ 𝑥 𝑖 − 𝑦(𝑖) 2
𝐽(𝛽
0,𝛽
1)
𝛽0 𝛽1
Введение в машинное обучение
Градиентный спуск
10
Функция стоимости: 𝐽 𝛽0, 𝛽1 =1
2𝑛 𝑖=1
𝑛 𝛽0 + 𝛽1𝑥(𝑖) − 𝑦(𝑖) 2
Метод градиентного спуска:
𝛽𝑗{𝑘+1}
= 𝛽𝑗{𝑘}
− 𝛼𝜕
𝜕𝛽𝑗𝐽(𝛽0, 𝛽1)
Результат:
𝛽0𝑘+1
= 𝛽0𝑘
− 𝛼1
𝑛
𝑖=1
𝑛
ℎ 𝑥 𝑖 − 𝑦 𝑖
𝛽1𝑘+1
= 𝛽1𝑘
− 𝛼1
𝑛
𝑖=1
𝑛
ℎ 𝑥 𝑖 − 𝑦 𝑖 𝑥 𝑖
𝜷 𝟎
𝜷 𝟏
𝜷 𝟐
−𝜵𝑱(𝜷 𝟏 )
−𝜵𝑱(𝜷 𝟎 )
𝜷∗
Введение в машинное обучение 11
Метод нормальных уравнений
Для задачи min𝛽
𝑖=1𝑛 ℎ 𝑥 𝑖 − 𝑦(𝑖) 2
можно найти аналитическое решение
𝐽 𝛽 =
𝑖=1
𝑛
𝑥 𝑖 𝑇𝛽 − 𝑦(𝑖) 2
𝑑𝐽 𝛽
𝑑𝛽= 0 ⇒ 𝑿𝑇 𝒚 − 𝑿𝛽 = 0
Если 𝑿𝑇𝑿 – матрица полного ранга, тогда существует единственное решение:
𝛽 = 𝑿𝑇𝑿 −1𝑿𝑇𝒚
𝑿 =1 𝑥(1)
… …1 𝑥(𝑛)
, 𝒚 =𝑦(1)
…𝑦(𝑛)
Введение в машинное обучение 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;
Введение в машинное обучение 13
Управление данными в DAAL
• Для представления данных в памяти используются числовые таблицы:
• Гомогенные – когда набор данных содержит данные одного типа
• Плотные
• Разреженные
• Гетерогенные – когда в наборе данных есть данные разных типов (double, int, string,…)
• Структура массивов (structure of arrays, SOA)
• Массив структур (array of structures, AOS)
• Таблицы из таблиц
• Объединённые по столбцам
Введение в машинное обучение 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));
Введение в машинное обучение 15
Загрузка данных в числовую таблицу
Данные могут быть загружены из различных источников при помощи объектов класса DataSource:
• FileDataSource – для чтения данных из файла. Поддерживает CSV формат
• StringDataSource – для чтения данных из массива символов
• ODBCDataSource – для чтения данных при помощи Open Database Connectivity (ODBC) API. Поддерживает MySQL
Введение в машинное обучение 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());
Введение в машинное обучение 17
Способы вычислений
• Batch
• Использует один набор данных. Применим, когда все данные доступны сразу и могут быть обработаны на одном вычислительном узле.
• Online
• Использует несколько наборов данных. Применим, когда наборы данных находятся в разных местах или когда данные поступают по одному блоку в единицу времени.
• Distributed
• Использует несколько наборов данных. Применим, когда наборы данных доступны на разных вычислительных узлах и могут быть обработаны в распределённом режиме с помощью MPI или Spark.
Введение в машинное обучение 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();
Введение в машинное обучение 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
Введение в машинное обучение 20
Как преодолеть проблему переобучения?
• Уменьшить количество независимых переменных
• Вручную
• Использовать алгоритмы понижения размерности
• Использовать регуляризацию
• Сохраняет все независимые переменные, но уменьшает значимось коэффициентов модели
• Эффективно работает, когда все независимые переменные делают вклад в результат 𝑦
Введение в машинное обучение 21
Гребневая регрессия
Интуиция:
• Пусть: ℎ 𝑥 = 𝛽0 + 𝛽1𝑥 + 𝛽2𝑥2 + 𝛽3𝑥3
Рассмотрим изменённую функцию стоимости:
• 𝐽 𝛽0, 𝛽1, 𝛽2, 𝛽3 = 𝑖=1𝑛 ℎ 𝑥 𝑖 − 𝑦(𝑖) 2
+ 1000𝛽32
Единственный способ достичь min𝛽0,𝛽1,𝛽2,𝛽3
𝐽(𝛽) - уменьшить значение 𝛽3
Гребневая регрессия:
𝐽 𝛽 =
𝑖=1
𝑛
ℎ 𝑥 𝑖 − 𝑦(𝑖) 2+ 𝜆 𝛽2
Введение в машинное обучение
Классификация
Введение в машинное обучение 23
Используется для предсказания бинарного отклика на основе одной или нескольких независимых переменных путём построения вероятностной модели
𝑃 𝑦 = 1 𝑥 = 𝑓 ℎ 𝑥 =1
1 + 𝑒−ℎ 𝑥;
ℎ 𝑥 = 𝑥1𝜃1 + ⋯ + 𝑥𝑝𝜃𝑝
𝑃 𝑦 𝑥 = 𝑓 ℎ 𝑥𝑦
1 − 𝑓 ℎ 𝑥1−𝑦
Логистическая регрессияВозраст Доход Класс
18 25 1
22 100 1
30 70 1
32 120 1
24 15 0
... ... ...
Независимые переменные
Чи
сло
на
бл
юд
ен
ий
(n)
Логистическаякривая
Введение в машинное обучение 24
Метод максимального правдоподобия
Идея: Выбрать коэффициенты Θ = (𝜃1, … , 𝜃𝑝) таким образом, чтобы
максимизировать вероятность совместного появления результатов
выборки 𝑦(1), 𝑦(2), … , 𝑦(𝑛).
Функция правдоподобия:
𝐿 𝑦(1), 𝑦(2), … , 𝑦(𝑛)|Θ = 𝑝 𝑦(1) Θ ⋅ … ⋅ 𝑝(𝑦(𝑛)|Θ)
Метод максимального правдоподобия:
maxΘ
𝑙𝑛(𝐿 𝑦(1), 𝑦(2), … , 𝑦(𝑛)|Θ )
Введение в машинное обучение 25
Градиентный спуск
Функция потерь:
𝐽 Θ = −1
𝑛ln 𝐿 𝛩 = −
1
𝑛
𝑖=1
𝑛
𝑦 𝑖 ln ℎ 𝑥(𝑖) + (1 − 𝑦(𝑖)) 1 − ln ℎ 𝑥(𝑖)
Метод градиентного спуска:
𝜃𝑗{𝑘+1}
= 𝜃𝑗{𝑘}
− 𝛼𝜕
𝜕𝜃𝑗𝐽(Θ)
Результат:
𝜃𝑗𝑘+1
= 𝜃𝑗𝑘
− 𝛼1
𝑛
𝑖=1
𝑛
ℎ 𝑥 𝑖 − 𝑦 𝑖 𝑥𝑗(𝑖)
Введение в машинное обучение 26
Анализ ошибок классификации
• Что если набор данных содержит 99% наблюдений, принадлежащих классу 1?
• У классификатора, который всегда предсказывает «1», корректность предсказаний будет равна 99%.
• Корректность = число корректных предсказаний
общее число предсказаний
• Что если корректность предсказаний увеличилась с 98.7% до 99.1%?
• Как понять, что это реальное улучшение алгоритма классификации?
Введение в машинное обучение 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 рода, ложно
положительное решение
Введение в машинное обучение 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𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛⋅𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙
? ?
Введение в машинное обучение 29
Многоклассовая классификация на основе бинарного классификатораЦель: Классифицировать объекты из К классов при помощи бинарного классификатора.
Способы:
• Один против остальных
• K классификаторов: i-тый классификатор классифицирует объекты класса i как положительные; объекты всех остальных классов – как отрицательные.
• Один против одного
• Постороить K(K-1)/2 классификаторов: для каждой пары классов (i, j), i < j.
Введение в машинное обучение 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();
Введение в машинное обучение 31
Матрица неточностей для многоклассового классификатора
Фактические значения классов
Предсказанные значения
Класс 1 Класс 2 … Класс К
Класс 1 с11 с12 … с1K
Класс 2 с21 с22 … с2K
… … … … …
Класс К сK1 сK2 … сKK
TPi – число корректно предсказанных элементов класса i
TNi – число элементов, не относящихся к классу i, предсказанных как не относящиеся к классу i
FNi – число элементов, которые были некорректно предсказаны как элементы класса i
FPi – число элементов класса i, которые были некорректно предсказаны как элементы других классов
Введение в машинное обучение 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();
Введение в машинное обучение
Кластеризация
Введение в машинное обучение
К средних
34
Алгоритм стремится разбить данные на k кластеров таким образом, чтобы минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров.
min𝑆
𝐽 𝑆 = min𝑆
𝑖=1
𝑘
𝑥∈𝑆𝑖
𝑥 − 𝜇𝑖2
𝜇𝑖 - центроид 𝑖-того кластера: 𝜇𝑖 =1
𝑆𝑖 𝑥∈𝑆𝑖
𝑥
Введение в машинное обучение 35
Алгоритм k средних
• Выбрать начальные центроиды кластеров 𝜇1, 𝜇2, … , 𝜇𝑘
• Повторять в цикле:
• Перераспределить точки по кластерам в соответствии с ближайшими центроидами:
𝑆𝑖{𝑡}
= 𝑥𝑝: 𝑥𝑝 − 𝜇𝑖𝑡
2≤ 𝑥𝑝 − 𝜇𝑗
𝑡2
, ∀𝑗
• Пересчитать значение центроидов:
𝜇𝑖𝑡+1 =
1
𝑆𝑖(𝑡)
𝑥∈𝑆𝑖(𝑡)
𝑥
• Критерий остановки: центроиды перестали изменяться
Введение в машинное обучение 36
Выбор оптимального значения k
• Простая эвристика: 𝑘 ≈ 𝑛2
• Идея: Оценить изменение функции стоимости 𝐽 𝑆 = 𝑖=1𝑘 𝑥∈𝑆𝑖
𝑥 − 𝜇𝑖2
Изменение значения функции стоимости замедляется
Рекоммендация: выбирать такое значение k, после которого уменьшение функции стоимости замедляется.
Введение в машинное обучение
Понижение Размерности
Введение в машинное обучение 38
• Подготовить данные для более эффективной работы алгоритмов обучения «с учителем»: уменьшить количество признаков, очистить данные от незначимых признаков.
• Получить компакное представление исходных данных без существенных потерь информации
• Визуализация: получить 2-х или 3-хмерную картину данных
Зачем нужно понижать размерность?
Введение в машинное обучение 39
Метод главных компонент (2D ⇒ 1D)
Дан набор точек в двумерном пространстве.
Нужно найти прямую, проходящую через начало координат, сумма квадратов расстояний до которой минимальна.
𝐿 = arg min𝐿
𝑖=1
𝑛
𝑑𝑖𝑠𝑡 𝑥 𝑖 , 𝐿2
𝑎 = arg min𝑎 =1
𝑖=1
𝑛
𝑥 𝑖 − 𝑎(𝑎, 𝑥(𝑖))2
𝒙 𝟏
𝒙 𝟐
𝑳
𝒂
Введение в машинное обучение 40
Метод главных компонент
Найти линейное многообразие размерности 𝑘 < 𝑝, сумма квадратов проекций данных на которое минимальна.
• Центрировать данные: 𝑥(𝑖) ← 𝑥(𝑖) − 𝜇, 𝜇 =1
𝑛 𝑖=1
𝑛 𝑥(𝑖)
• Для 𝑙 = 1, … , 𝑘 выполнить:
• Найти очередную главную компоненту 𝑎𝑙 как решение задачи:
𝑎𝑙 = arg min𝑎𝑙 =1
𝑖=1
𝑛
𝑥 𝑖 − 𝑎𝑙(𝑎𝑙, 𝑥(𝑖))
2
• Вычесть из данных проекцию на найденную компоненту:
𝑥 𝑖 ← 𝑥 𝑖 − 𝑎𝑙(𝑎𝑙, 𝑥(𝑖))
Введение в машинное обучение 41
Выбор числа главных компонент (k)
Обычно k выбирают, как наименьшее значение, при котором выполняется неравенство:
1𝑛
𝑖=1𝑛 𝑥 𝑖 − 𝑥𝑎𝑝𝑝𝑟𝑜𝑥
𝑖2
1𝑛
𝑖=1𝑛 𝑥 𝑖 2
< ε
Т.е. 1 − ε ⋅ 100% дисперсии исходных данных сохранено.
Введение в машинное обучение 42
Другой метод поиска главных компонент
Σ = 𝜎𝑖𝑗 , 𝜎𝑖𝑗 = 𝑐𝑜𝑣 𝑋𝑖 , 𝑋𝑗 =1
𝑛
𝑙=1
𝑛
(𝑥𝑖𝑙
− 𝜇𝑖)(𝑥𝑗(𝑙)
− 𝜇𝑖)
Для центрированных данных:
𝑐𝑜𝑣 𝑋𝑖 , 𝑋𝑗 =1
𝑛
𝑙=1
𝑛
𝑥𝑖(𝑙)
⋅ 𝑥𝑗(𝑙)
Собственные вектора матрицы Σ являются главными компонентами.
Выбор значения k:1𝑛
𝑖=1𝑛 𝑥 𝑖 − 𝑥𝑎𝑝𝑝𝑟𝑜𝑥
𝑖2
1𝑛
𝑖=1𝑛 𝑥 𝑖 2
= 1 − 𝑖=1
𝑘 𝜆𝑖
𝑖=1𝑝
𝜆𝑖
< ε
𝜆1 ≥ 𝜆2 ≥ ⋯ ≥ 𝜆𝑝 ≥ 0
Введение в машинное обучение
Поиск ассоциативных правил
Введение в машинное обучение 44
Пример: Анализ рыночной корзины
Покупатель № Хлеб Молоко Подгузники Яйца Пиво
1 Х Х
2 Х Х Х Х
3 Х Х Х
4 Х Х Х
5 Х Х Х
Примеры наборов товаров:
• {хлеб, молоко} набор встречается в 40% транзакций (2 of 5);
• {молоко, подгузники, пиво} набор встречается в 20% транзакцийПримеры ассоциативных правил:
• {хлеб, подгузники} ⇒ {пиво} если покупает {хлеб, подгузники}, значит купит {пиво} с вероятностью 67%
• {хлеб} ⇒ {яйца} если покупает {хлеб}, значит купит {яйца} с вероятностью 20%
Введение в машинное обучение 45
Поддержка и достоверность
𝐼 = 𝑖1, 𝑖2, … , 𝑖𝑚 - набор элементов.
𝑇 ⊂ 𝐼 – транзакция.
Транзакция 𝑇 содержит 𝑋 – набор элементов из 𝐼, если 𝑋 ⊆ 𝑇.
Ассоциативное правило – импликация: 𝑋 ⇒ 𝑌, где 𝑋 ⊂ 𝐼, 𝑌 ⊂ 𝐼 и 𝑋 ∩ 𝑌 = Ø.
Пусть 𝐷 = 𝑇1, 𝑇2, … , 𝑇𝑛 - множество транзакций.
Поддержка (support) набора элементов 𝑋 ⊂ 𝐼 равна s, если s% транзакций из 𝐷содержат 𝑋.
Достоверность (confidence) правила 𝑋 ⇒ 𝑌 равна c, если c% транзакций из 𝐷, содержащих набор элементов 𝑋, также содержат набор элементов 𝑌.
𝒄𝒐𝒏𝒇𝒊𝒅𝒆𝒏𝒄𝒆 𝑿 ⇒ 𝒀 =𝒔𝒖𝒑𝒑𝒐𝒓𝒕(𝑿 ∪ 𝒀)
𝒔𝒖𝒑𝒑𝒐𝒓𝒕(𝑿)
Введение в машинное обучение 46
Поиск ассоциативных правил
Даны:
Набор транзакций: 𝐷 = 𝑇1, 𝑇2, … , 𝑇𝑛 ;
minS – минимальная поддержка;
minC – минимальная достоверность.
Найти:
1. Все наборы элементов X с поддержкой больше, чем minS.
2. Все ассоциативные правила 𝑋 ⇒ 𝑌 с достоверностью больше, чем minC.
Введение в машинное обучение
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
Введение в машинное обучение
Коллаборативная фильтрация
Введение в машинное обучение 49
Пример из жизни
Рекомендация полезных услуг/товаров пользователям
Amazon, Netflix, Spotify,... пользуются этим постоянно
Введение в машинное обучение 50
Коллаборативная фильтрация
• Обрабатывает прошлое поведение пользователей, их активности или оценки
• Предсказывает, что пользователю может понравится на основе его схожести с другими пользователями
Введение в машинное обучение 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
Введение в машинное обучение 52
Нелинейная оптимизационная проблема
Метод наименьших квадратов (по всем известным значениям рейтингов):
Приближаются не исходные значения рейтингов, а значения «предпочтений»:
Парамеры cui характеризуют уровень уверенности:𝛼 > 0 – контролирует уровень уверенности
Введение в машинное обучение 53
Alternating least squares (ALS)
Метод градиентного спуска не подходит, т.к. на практике размерности задачи велики
ALS:
• Фиксировать значения матриц X и Y попеременно
• Метод нормальных уравнений
Введение в машинное обучение 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
Введение в машинное обучение 55
Вопросы?
Placeholder Footer Copy / BU Logo or Name Goes Here