Предварительная обработка данных — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Декорреляция)
Строка 66: Строка 66:
 
<tex>\hat{X} = X \times \Sigma^{-1/2}</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} =
+
<tex>\dfrac{\hat{X}^T\hat{X}}{n} = \dfrac{(X \times \Sigma^{-1/2})^T \times (X \times \Sigma^{-1/2})}{n} = \dfrac{\Sigma^{-T/2} \times X^T \times X \times \Sigma^{-1/2}}{n} = (\Sigma^{-T/2} \times \Sigma^{T/2})\times(\Sigma^{1/2}\times\Sigma^{-1/2}) = I \times I = I</tex>.
= (\Sigma^{-T/2} * \Sigma^{T/2})*(\Sigma^{1/2}*\Sigma^{-1/2}) = I * I = I</tex>.
 
 
}}
 
}}
  

Версия 20:11, 29 июня 2022

Типизация признаков

Преобразование числа

Обычно с числами довольно удобно работать и преобразовывают их достаточно редко.

Дискретизация

  • Преобразование в порядковый признак. (берём в числах диапазоны и диапазонам сопоставляем категории)
  • Преобразование в категориальный признак. (НО теряется информация о порядке)

Преобразование порядкового типа

рис1. (A<B<C)
  • Преобразование в число(берём его порядковый номер)
  • Преобразование в k бинарных категорий(если число значений конечно и равно k):

[math]c_i(ord) := (ord \lt ord_i), где [/math]{[math]ord_1, ..., ord_k[/math]} - множество значений порядкового признака.(см. рис1)

Преобразование категории

рис2. (A<B<C)
  • Бинарную категорию можно преобразовать в число: [math]c_1 \Rightarrow 0, c_2 \Rightarrow 1[/math] или [math]c_1 \Rightarrow -1, c_2 \Rightarrow +1[/math]
  • Категорию из k значений {[math]c_1, ..., c_k[/math]} можно бинаризовать получив k бинарных категорий:[math]b_i(c) := (c = c_i)[/math](см. рис2)(НО обратное преобразование иногда невозможно(получим много true и не понятно, к какой категории относить))
  • One-hot encoding - преобразование категорий в числа (0, 1): one-hot[math]_i(c) = [c = c_i][/math]

Нормализация данных

Применяются независимо к столбцу X

Важно в sklearn.preprocessing есть метод normalize, но это не то, что нам нужно, он рассматривает нормализацию с геометрической точки зрения (представляет объект в виде вектора), а не по столбцам


Минмакс, [0;1] масштабирование [math] x_{new} = \dfrac{x_{old} - \min[X]}{\max[X] - \min[X]}[/math]

После нормализации: [math]\min[X_{new}] = 0[/math] и [math]\max[X_{new}] = 1[/math]


Стандартизация, Z-масштабирование [math] x_{new} = \dfrac{x_{old} - \mathbb{E}[X]}{\mathbb{D}[X]}[/math]

После нормализации: [math]\mathbb{E}[X_{new}] = 0[/math] и [math]\mathbb{D}[X_{new}] = 1[/math]

Декорреляция

рис3

1. Есть матрица X.

2. Матрицу центрировали ([math]\mathbb{E}[X_j] = 0[/math]).

3. Ковариация вычисляется по следующей формуле:

[math]\Sigma(X) = \dfrac{1}{N}X^TX[/math]

4. Если же матрица нормализована так, что [math]\mathbb{D}[X_j] = 1[/math], то из произведения мы получим не ковариационную, а корреляционную матрицу

5. Декорреляция вычисляется по формуле:

[math]\hat{X} = X \times \sum^{-1/2}(X)[/math]

где [math]\Sigma^{1/2}[/math] находится из разложения Холецкого

Утверждение:
После декорреляции: [math]\sum(\hat{X}) = I[/math]
[math]\triangleright[/math]

[math]\Sigma = \dfrac{X^TX}{n}[/math]

[math]\hat{X} = X \times \Sigma^{-1/2}[/math]

[math]\dfrac{\hat{X}^T\hat{X}}{n} = \dfrac{(X \times \Sigma^{-1/2})^T \times (X \times \Sigma^{-1/2})}{n} = \dfrac{\Sigma^{-T/2} \times X^T \times X \times \Sigma^{-1/2}}{n} = (\Sigma^{-T/2} \times \Sigma^{T/2})\times(\Sigma^{1/2}\times\Sigma^{-1/2}) = I \times I = I[/math].
[math]\triangleleft[/math]

Аномалии в наборе данных

Аномалии - плохие объекты для построения нашей модели

Задача поиска аномалий является отдельной задачей машинного обучения, про которую можно почитать здесь

Пропуски в наборе данных

Иногда в таблице с данными существую пустоты(они же пропуски), про работу с пропусками можно почитать тут