Введение:
Здравствуйте, ребята, в этой статье я продолжаю оставшиеся методы вменения отсутствующих значений.
Ссылка на часть 1: https://medium.com/@banarajay/missing-value-imputation-basics-to-advance-595c92e35e94
ссылка на часть 2: https://medium.com/@banarajay/missing-value-imputation-basics-to-advance-part-2-3eefededa19
Пожалуйста, прочитайте две статьи выше, чтобы лучше понять.
Вменение:
Вменение — это метод, используемый для замены отсутствующих данных некоторым замещающим значением, чтобы сохранить большую часть данных/информации набора данных.
Через мы можем уменьшить недостатки методов удаления, что означает
1. Чтобы избежать уменьшения размера набора данных.
2. Также избегайте потери информации.
Два типа методов вменения:
1. Однократное вменение
2. множественное вменение
1.Одиночное вменение:
При одиночном вменении генерируется одно вмененное значение для каждого пропущенного наблюдения.
Различные типы одиночного вменения в зависимости от типов переменных:
1.Для вменения числовой переменной:
Существующие методы, основанные на ценности:
1.Минимальное вменение
2.Максимальное вменение
Методы, основанные на статистических значениях:
1. Среднее вменение
2. Среднее вменение
3. Конец распределения хвоста
4.Интерполяция
Методы на основе моделей:
1. Вменение регрессии
2. Для вменения категориальной переменной:
1. Используйте алгоритм классификации для определения категориальных значений.
3. Для вменения как категории, так и числового значения одновременно:
Существующие методы, основанные на ценности:
1.предыдущее вменение
2.Следующее вменение
3. Вменение фиксированного значения или вменение произвольного значения или вменение постоянного значения
Методы, основанные на статистических значениях:
1. Вменение методом случайной выборки
2. Наиболее частое вменение стоимости
Методы на основе моделей:
1. Алгоритмы регрессии и классификации используются для вменения
2.КНН
4. Другие методы:
1.Добавление индикатора «Отсутствует»
1.Для вменения числовой переменной:
1.Существующие методы, основанные на ценности:
Как следует из названия, он использует существующее значение в переменной, чтобы заполнить отсутствующее место.
1.Минимальное вменение:
Как следует из названия, для вменения используется минимальное значение переменной.
2. Максимальное вменение:
Как следует из названия, для вменения используется максимальное значение переменной.
Преимущества как для максимума, так и для минимума:
1. Простота реализации.
2.Быстрый способ получения полного набора данных.
Недостатки как максимального, так и минимального:
1. Это искажает или изменяет исходное распределение переменных и приводит к изменению дисперсии.
2. Из-за изменения дисперсии искажается ковариация с остальными переменными.
3.so Чем выше процент пропущенных значений, тем выше искажение.
4. Это может быть шанс сформировать выбросы.
2. Методы, основанные на статистических значениях:
1. Среднее вменение:
Как следует из названия, для вменения используется среднее значение переменной.
Предположение:
1. Данные - это MAR (моя интуиция - это MCAR и NMAR).
2. Данные должны следовать нормальному распределению, поскольку среднее значение допустимо для нормального распределения, предположим, если у нас есть асимметричное распределение,
в то время среднее значение недействительно.
Преимущества:
1. Простота реализации.
2.Быстрый способ получения полного набора данных.
3. Предотвратите потерю информации.
Недостатки:
1. Это искажает или изменяет исходное распределение переменных и приводит к изменению дисперсии.
2. Из-за изменения дисперсии искажается ковариация с остальными переменными.
3.so Чем выше процент пропущенных значений, тем выше искажение.
2. Среднее вменение:
Как следует из названия, для вменения используется среднее значение переменной.
Предположение:
1. Данные - это MAR (моя интуиция - это MCAR и NMAR).
2. Если данные следуют асимметричному распределению в то время, когда мы можем их использовать, поскольку среднее значение действительно для нормального распределения, предположим, что если у нас есть асимметричное распределение, в то время мы можем использовать средний.
Преимущества:
1. Простота реализации.
2.Быстрый способ получения полного набора данных.
3. Предотвратите потерю информации.
Недостатки:
1. Это искажает или изменяет исходное распределение переменных и приводит к изменению дисперсии.
2. Из-за изменения дисперсии искажается ковариация с остальными переменными.
3.so Чем выше процент пропущенных значений, тем выше искажение.
3.Конец распространения хвоста:
Как следует из названия, в методе распределения хвостов отсутствующие значения заменяются значениями, которые существуют в конце распределения.
Это эквивалентно вменению произвольного значения, разница только в том, что в вменении произвольного значения мы должны указать значение для вменения
, но в конце распределения хвоста автоматически выбирается произвольное значение в конце распределения переменной.
Как получить хвостовое значение?
Для получения хвостового значения переменной есть два типа:
1.Если переменная следует нормальному распределению, то использует
хвостовое значение = верхний предел = среднее значение переменной + 3 (стандартное значение переменной)
2. Если переменная следует асимметричному распределению, используется правило близости IQR.
хвостовое значение = верхний предел = 75-й квантили + IQR * 1,5
тогда как
IQR - это межквантильный диапазон (IQR) = 25-й квантиль — 75-й квантиль
so ,
Для нормального распределения
Нижний предел = среднее значение переменной — 3 (стандартное значение переменной)
За неравномерное распределение.
Нижний предел = 25-й квантили + IQR — 1,5
поэтому они называются нижним хвостовым значением для соответствующего распределения.
Но в хвосте распределения нас интересуют более высокие хвостовые значения, поэтому только мы берем верхние предельные значения.
Предположение:
1. Данные - это NMAR (моя интуиция - это MCAR и NMAR)..
Преимущества:
1. Простота реализации.
2.Быстрый способ получения полного набора данных.
3. Предотвратите потерю информации.
Недостатки:
1. Это искажает или изменяет исходное распределение переменных и приводит к изменению дисперсии.
2. Из-за изменения дисперсии искажается ковариация с остальными переменными.
3.so Чем выше процент пропущенных значений, тем выше искажение.
4.Интерполяция:
Есть много типов интерполяции, некоторые из них
1.линейная интерполяция.
2.полиномиальная интерполяция.
Линейная интерполяция рисует линию между предыдущей и следующей точкой данных, чтобы найти пропущенное значение.
3. Методы на основе моделей:
1. Импутация регрессии:
Как следует из названия, он использует модель регрессии для вменения пропущенных значений.
Шаги:
1. Сначала мы берем первую отсутствующую переменную в качестве зависимой переменной.
2. Остальные переменные как независимые переменные, предположим, если в независимой переменной есть какое-либо отсутствующее значение, мы временно заполняем
отсутствующие значения в независимой переменной, используя среднее, среднее (любой метод вменения, который мы можем использовать, но это временно )и т. д….
3. Затем удалите строку/точки данных независимой переменной на основе отсутствующего значения в зависимой переменной, и результирующий кадр данных без строки пропущенных значений считается «данными обучения».
4. Удаленные строки/точки данных независимой переменной на основе отсутствующего значения в зависимой переменной формируются как «тестовые данные».
5. Затем мы строим модель регрессии (любая модель регрессии, такая как LinearRegression, DecisiontreeRegressor и т. д.), используя данные Train.
6. Затем, используя обученную модель, предсказать/вменить зависимую переменную/отсутствующее значение тестовых данных, предоставив тестовые данные обученной модели.
7. Наконец, сбросить временное заполненное значение до отсутствующих значений в независимой переменной.
8. Снова возьмите следующую отсутствующую переменную, повторите описанный выше процесс.
Предположение:
1.Данные MAR.
2.Затем предположим используемую вами модель.
Преимущества:
1. Он меньше искажает или изменяет исходное распределение переменных и приводит к меньшему изменению дисперсии.
2. Из-за меньшего изменения дисперсии ковариация с остальными переменными также меньше искажается.
3. Чем выше процент пропущенных значений, тем меньше искажение.
Недостатки:
- Это занимает больше времени.
2.Для вменения категориальной переменной:
1. Используйте алгоритм классификации для вменения категориальных значений.
таким образом, мы также можем использовать любой алгоритм классификации для вменения пропущенного значения в категориальную переменную.
Та же самая процедура вменения регрессии также следует за классификацией для выполнения вменения.
3. Для вменения как категории, так и числового значения одновременно:
1.Существующие методы, основанные на ценности:
1.предыдущее вменение значения:
Как следует из названия, отсутствующее значение вменяется с использованием предыдущего значения отсутствующего значения в переменной.
Он в основном используется для «проблемы временных рядов».
2.Следующее вменение значения:
Как следует из названия, отсутствующее значение вменяется с использованием следующего значения отсутствующего значения в переменной.
Он также в основном используется для «проблемы временных рядов».
3. Вменение фиксированного значения или вменение произвольного значения:
Как следует из названия, вменение произвольного значения состоит в замене отсутствующих значений в переменной с использованием заданного произвольного значения.
Здесь произвольное значение — это любое значение, но необязательное в значениях переменной. Но мы также можем выбрать значение из значений
переменной.
Eg:
мы можем выбрать любое значение, например -11, -99,999,0,56,678 или существующее значение в этой переменной.
Предположение:
Данные представляют собой NMAR и MCAR.
Преимущества:
1.легко реализовать.
2. Это быстрый способ получить полный набор данных.
3. предотвратить потерю данных.
4. хорошо работает с небольшим набором данных и прост в реализации.
Недостатки:
1.Добавление новой категории\значения в модель, что приводит к снижению производительности.
2. Это искажает или изменяет исходное распределение переменных и приводит к изменению дисперсии.
3. Из-за изменения дисперсии искажается ковариация с остальными переменными.
4.so Чем выше процент пропущенных значений, тем выше искажение.
5. Это может привести к выбросу.
2. Методы, основанные на статистических значениях:
1. Импутация методом случайной выборки:
Как следует из названия, для каждого отсутствующего значения в переменной мы получаем случайное наблюдение от этой переменной, а затем, используя это, мы вменяем
отсутствующее значение.
Обратите внимание, что здесь не используется одно и то же значение для вменения отсутствующего значения в переменной, что приводит к меньшему искажению, поэтому каждый раз для вменения этой переменной требуется случайное значение в этой конкретной переменной.
Предположение:
1.Данные MCAR.
2. Данные нормально распределены (чтобы избежать выбора выбросов).
Преимущества:
1.легко реализовать.
2. Это быстрый способ получить полный набор данных.
3. Он меньше искажает или изменяет исходное распределение переменных и приводит к меньшему изменению дисперсии.
4. Из-за меньшего изменения дисперсии ковариация с остальными переменными также меньше искажается.
5.so Чем выше процент пропущенных значений, тем меньше искажение.
Недостатки:
1. Но когда у нас есть высокое недостающее значение, искажение времени выше.
2. Из-за случайного выбора значения может быть шанс случайного выбора выбросов, если данные содержат выбросы, что приводит к низкой производительности.
2.Наиболее частое вменение значения или режима вменения:
Как следует из названия, он состоит в замене всех отсутствующих значений в переменной с использованием режима или наиболее часто встречающегося значения (категория/число).
Предположение:
1.Данные MCAR.
2. Не более 5% отсутствующего значения в переменной.
Преимущества:
1.легко реализовать.
2. Это быстрый способ получить полный набор данных.
Недостатки:
- Может привести к «избыточному представлению» наиболее часто встречающегося ярлыка, если много пропущенных наблюдений.
Проблема в режиме:
В большинстве случаев мода отсутствует в числовых данных, т.к. вхождение числового значения не более одного.
Но режим в категориальных данных возможен, поэтому в большинстве случаев режим используется для категориальных переменных и редко в числовых переменных.
3. Вменение на основе модели:
1.КНН:
Как следует из названия, мы используем ближайшего соседа для заполнения пропущенных значений другим способом.
Алгоритм:
1. Выберите/выберите любое отсутствующее значение, а также обратите внимание на эту строку и переменную выбранного отсутствующего значения и назовите его как R (отсутствует), Var (отсутствует).
2. Затем получите другие значения в R (отсутствует) выбранного отсутствующего значения, назовите его как S (другие значения), это означает, что если i-я ячейка выбрана без значения
, то другие ячейки в этом выбранном отсутствующем значении считаются С.
3. А также выберите No ближайших соседей (n).
4. Затем вычислите расстояние blw S (другие значения) и все остальные строки, используя матрицы расстояний nan_euclidian.
Почему мы не можем использовать euclidean_distance?
Проблема в евклидовом_расстоянии:
Когда у нас есть пропущенные значения, мы не можем использовать евклидово расстояние для вычисления расстояния.
Евклидово расстояние не поддерживает отсутствующие значения в расчете.
Решение:
Чтобы исправить вышеуказанную проблему, мы используем «матрицы наноевклидовых расстояний».
нан_евклидово расстояние:
Матрица nan_euclidean используется для вычисления расстояния между строками при наличии пропущенных значений.
nan_euclidean matrix = sqrt (вес * сумма квадратов разностей с использованием координат, отличных от nan)
здесь,
вес = Общее количество координат/Количество существующих координат
Какова цель веса?
когда мы вычисляем расстояние между S (другие значения) и другой строкой, мы берем только координаты, отличные от nan.
поэтому в некоторых расчетах расстояний есть все координаты S (другие значения) и другой строки в расчете расстояний, а в некоторых не все координаты, что приводит к смещению при расчете расстояний.
Чтобы устранить проблему смещения при расчете расстояния, мы используем веса.
5. Затем выберите n точек данных, которые ближе к отсутствующему значению на основе расстояний, рассчитанных с использованием матрицы nan_euclidean.
6. Затем получите n выбранное значение точки данных в Var (отсутствует)
7. Затем введите отсутствующее значение, вычислив среднее значение, используя n выбранное значение в Var (отсутствует).
Здесь они представляют собой два типа вменения пропущенного значения с использованием среднего значения:
1.униформа
2.расстояние
1.униформа:
Это похоже на обычный расчет среднего значения, то есть просто взять выбранные значения в var(missing) и вычислить среднее значение, используя выбранные значения.
uniform_imputation = (x1 + x2 + ……+ xn)/n
2.расстояние:
Как следует из названия, мы берем расстояние от выбранной точки данных в расчете среднего значения.
Distance_imputation = ((1/d1) x1 + (1/d2) x2 + ……+ (1/dn) xn)/n
поэтому мы будем придавать большее значение или вес, чтобы заполнить пропущенное значение ближайшей точкой данных.
8.Повторяйте описанные выше шаги, пока не будут введены все недостающие значения.
Предположение:
1.Данные MAR.
Пример. Возьмем набор данных ниже.
var(1) var(2) var(3) var(4)
1. nan nan 5 8
2. нан 3 нан 2
3. 5 2 7 нано
шаг 1: выберите отсутствующее значение, а также соберите информацию о строках и столбцах отсутствующего значения.
В этом случае я выберу отсутствующее значение var (1), а строка выбранного отсутствующего значения равна 2, а столбец - var (1).
Шаг 2: Затем получите другие значения этих пропущенных значений.
в этом случае другие значения этого отсутствующего значения
переменная(2) переменная(3) переменная(4)
3 нан 2
Шаг 3: А также выберите номер ближайших соседей (n).
В этом случае я беру n = 1.
Шаг 4: Затем вычислите расстояние между другими значениями и всеми остальными строками, используя матрицы расстояний nan_euclidian.
вар(2) вар(3) вар(4)
1. нан 5 8
2. 3 нан 2
3. 2 7 5
1.nan_euclidean_distance (2-я строка, 1-я строка):
вар(2) вар(3) вар(4)
1. нан 5 8
2. 3 нан 2
Здесь,
общее количество координат: 3 [(3,нан),(нан,5),(2,8)]
текущие координаты (не нан координаты): 1 [(2,8)]
вес = 3 / 1 = 3
nan_euclidean_distance (2-я строка, 1-я строка) = sqrt (3 * ( 2–8 )²)
= 10.39
2.nan_euclidean_distance (2-я строка, 3-я строка):
вар(2) вар(3) вар(4)
2. 3 нан 2
3. 2 7 5
Здесь,
общее количество координат: 3 [(3,2),(nan,7),(2,5)]
текущие координаты (не нан координаты): 2 [(3,2),(2,5)]
вес = 3 / 2 = 1,5
nan_euclidean_distance(2-я строка, 3-я строка) = (0,33 * (3–2)² + (2–5)²)
= 3.87
Шаг 5: выберите n ближайших соседей.
В этом случае n = 1, поэтому я выбираю 1 ближайшую точку данных из отсутствующего значения на основе расстояния.
В этом случае точка данных 3-й строки находится ближе всего к отсутствующим данным, потому что расстояние между 2-й и 3-й меньше по сравнению с другими.
Шаг 6: Затем получите значения выбранной точки данных в var (отсутствует):
В этом случае Var(отсутствует) равно Var(1), поэтому из Var(1) я выберу значение выбранного ближайшего соседа.
поэтому значение выбранного соседа в var(1) равно 5.
Шаг 7: Используя выбранное значение, вычислите среднее значение и выполните вменение.
В этом случае я использую «дистанционный метод».
Но в этом случае у нас есть только одна точка, поэтому мы напрямую используем это значение для вменения.
выбранное значение = (1/3,87) * 5
= 19.35
После вменения:
var(1) var(2) var(3) var(4)
1. nan nan 5 8
2. 19.35 3 нано 2
3. 5 2 7 нано
Шаг 8: Затем снова выполните шаги, выбрав другие значения nan. Поэтому выполняйте этот процесс, пока все значения nan не будут вменены.
ПРИМЕЧАНИЕ. В Var (1) мы берем 2 пропущенных значения, и только для этого мы находим вмененное значение, а не 1-е пропущенное значение в Var (1), нам нужно выполнить вменение для 1-го пропущенного значения отдельно.
Преимущества:
1. Это может быть более точным, чем простое вменение в несколько раз.
Недостатки:
1. Вычислительно обширный, потому что KNN работает, сохраняя весь набор обучающих данных в памяти.
2.KNN довольно чувствителен к выбросам в данных (в отличие от svm).
4. Другие методы:
1. Добавление индикатора «Отсутствует»:
Индикатор отсутствия — это дополнительная бинарная переменная, указывающая, были ли данные пропущены или нет.
Отсутствующий показатель используется вместе с другим вменением.
поэтому, используя их, вы можете указать модели, какие значения отсутствуют, потому что иногда может быть связь между причиной
для отсутствующих значений и целевой переменной (вы пытаетесь предсказать).
Предположение:
1.Данные NMAR.
Преимущества:
1.легко реализовать.
2. Это быстрый способ получить полный набор данных.
Недостатки:
1. Расширяет возможности.
Это все, ребята, мы увидим множественное вменение в следующей статье, если что-то не так, пожалуйста, исправьте меня, а также оставьте отзыв. Спасибо, хорошего дня.