Изменения

Перейти к: навигация, поиск

Предварительная обработка данных

7759 байт убрано, 16:56, 29 июня 2022
Нет описания правки
Процесс подготовки данных для дальнейшего анализа называется '''предобработка'''
 
= Нормализация =
Набор данных на самом деле содержит в себе единицы измерения, которые возможно будут указаны в формальном описании. Эти единицы измерения отбрасываются, чтобы набор данных имел только число.
Чтобы это сделать необходимо, чтобы все объекты были приведены к единому формату (всё в килограммах или всё в метрах)
//Пример про разницу машин == Базовые методы нормализации данных ==
Применяются независимо к столбцу X
После нормализации: <math>\mathbb{E}[X_{new}] = 0</math> и <math>\mathbb{D}[X_{new}] = 1</math>
// =Декорреляция = декорреляция == пока не нашёл = Задача заполнения пропусков. = == Откуда берутся пропуски? ==*Решаем задачу поиска аномалий для столбцов. Когда находим аномальное значение в столбце. Можно сказать, что это не аномалия, а ошибка и его можно пометить как пропуск*Объединяем 2 набора данных (см. рис1). Из-за того, что эти наборы данных немного разные(в разных наборах данных были разные признаки) после объединения получатся пропуски.*Подали разреженный набор данных. Недостающие значения - пропуски. == Как кодируются пропуски? ==*В CSV не стандартизировано, могут быть: “?”, “ “(пробел), “_”, любой другой символ, будь то две запятых подряд или пустая строка*В ARFF файле: “?”*В программе(Строка / объект): Null, None, пустая строка*В категории(кодирующейся от 0 до k-1): -1 или k*Число: NaN == Базовые решения: ==*Удалить*Заменить*Добавить Если алгоритм делает что-то быстрее или умнее чем базовое решение, то утверждается, что '''алгоритм умеет работать с пропусками''' === Удаление ===Если в столбце есть пропуск - берём и удаляем его из рассмотрения. Можно удалять строки(объекты), '''НО''' могут возникнуть проблемы: если в столбце были пропуски в тренировочном наборе данных, то скорее всего в этом столбце пропуски будут и в тестовом наборе. === Замена ===Выделяют 2 подхода:==== Общий подход: ====Обучить модель, которая умеет учитывать пропуски, предсказывать значения текущего столбца. На примере с рис2. Предполагаем, что второй объект ближе всего к четвёртому, поэтому скорость заполняем 160, а первый ближе к пятому, поэтому цвет заполняем "красный" ==== Частный случай: ==== Заполнение средним арифметическим / модой //про zero-rule classification На примере с рис3. Среднее арифметическое(230, 160, 80, 250) = 180, а Мода(красный, синий, зелёный, синий) = синий ==== Константная замена ====Применяется в случае, когда мы знаем, что кодирует пропуск. (Пример) разреженная таблица состоит из слов и количества вхождений этого слова в текст. Если слово в тексте не встречалось, то на месте количества может стоять пропуск, что эквивалентно 0, если же храним: встречалось или нет, то на месте пропуска может быть false. === Добавление ===*Если признак категориальный - добавляем к нему новое значение "пропуск"(увеличиваем количество категорий на 1)*Если признак числовой - добавляем новый бинарный признак, было ли данное значение пропущено, а само значение заменять методами описанными выше.(рис4) == Отказ алгоритмов == Алгоритм может не только принимать на вход пропуски, но и возвращать. Если алгоритм возвращает проспуск, значит он отказывается от работы.*Отказ от классификации: используется в ансамблях(когда несколько алгоритмов классификации работают, то какой-то из них может отказаться, понадеясь, что другой сможет классифицировать объект)*Отказ от кластеризации: используется для поиска аномалий(объект не попал ни в один кластер => аномальный) '''Важно''' Алгоритм не будет просто так возвращать отказ от классификации / кластеризации(не будет возвращать значение пропуск, а вернёт что-то).Нужно смотреть отдельные реализации алгоритмов. == Задача предсказания и заполнения пропусков ==Задачу заполнения пропусков можно свести к задаче предсказания. (рис5) Есть набор данных, который условно разбит на train и test. Можно сказать, что значения test в столбце Y пропущены и вместо задачи обучения с учителем решать задачу заполнения пропусков.
В случае задачи обучения без учителя можно сказать, что все значения в столбце пропущены1. (смЕсть матрица X. рис6)
2. Матрицу центрировали (<math>\mathbb{E}[X_j] == Рекомендательные системы =='''Коллаборативная(совместная0</math>) фильтрация'''.
Есть множество пользователей и множество предметов, которые эти пользователи оценивают3. Нужно понять, как определённый пользователь оценит предмет, который до этого не оценивал. (см. рис7)Ковариация вычисляется по следующей формуле:
Эта задача не решается методами заполнения пропуска. Но методами рекомендательных систем можно решить задачу заполнения пропусков.<tex>\Sigma(X) = \dfrac{1}{N}X^TX</tex>
4. Если же матрица нормализована так, что <math>\mathbb{D}[X_j] == Обучение на привилегированных данных ==Задача обучения с учителем1</math>, но к X даётся некоторый X'то из произведения мы получим не ковариационную, про который известно, что в тестовом множестве X' будет пропущен. (см. рис8)а корреляционную матрицу
Базовое решение:*Не использовать X'*Обучить модель <math>a_1</math> предсказывать X' по X5. Затем обучить модель <math>a_2</math> предсказывать Y Декорреляция вычисляется по X и <math> a_1</math>(X)*Обучать предсказывать X' и Y.формуле:
<tex>\hat{X} = X \times \sum^{-1/2}(Пример) Предсказать результат футбольного матча(победа/поражениеX). Где привелигированные данные: число голов, число красных</ жёлтых карточек.tex>
== Обучение на частично размеченных данных ==В тренировачном множестве только часть объектов имеют значение целевой переменной Y, у остальных объектов тренировочного и тестового множества значение Y пропущено. (см. рис9)где <tex>\Sigma^{1/2}</tex> находится из разложения Холецкого
Базовое решение{{Утверждение|statement=После декорреляции:*Не использовать объекты у которых пропущен целевой признак*Не использовать целевой признак для обучения. Размеченные объекты<tex>\sum(с заданным Y) можно использовать для тестирования(как внешнюю меру\hat{X})= I</tex>|proof=<tex>\Sigma = \dfrac{X^TX}{n}</tex>
<tex>\hat{X} = X \times \Sigma^{-1/2}</Активное обучениеtex>
<tex>\dfrac{\hat{X}^T\hat{X}}{n} = \dfrac{(X * \Sigma^{-1/2})^T * (X * \Sigma^{-1/Обучение с подкреплением2})}{n} = \dfrac{\Sigma^{-T/2} * X^T * X * \Sigma^{-1/2}}{n} = = (\Sigma^{-T/2} * \Sigma^{T/2})*(\Sigma^{1/2}*\Sigma^{-1/2}) = I * I = I</tex>.}}
42
правки

Навигация