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

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 1: Строка 1:
= Преобразование числа =
+
= Типизация признаков =
 +
== Преобразование числа ==
 
Обычно с числами довольно удобно работать и преобразовывают их достаточно редко.
 
Обычно с числами довольно удобно работать и преобразовывают их достаточно редко.
  
Строка 6: Строка 7:
 
* Преобразование в категориальный признак. ('''НО''' теряется информация о порядке)
 
* Преобразование в категориальный признак. ('''НО''' теряется информация о порядке)
  
= Преобразование порядкового типа =
+
== Преобразование порядкового типа ==
 
[[File:Преобразование_порядкового_типа_в_k_категорий.png|250px|thumb|рис1. (A<B<C)]]
 
[[File:Преобразование_порядкового_типа_в_k_категорий.png|250px|thumb|рис1. (A<B<C)]]
 
* Преобразование в число(берём его порядковый номер)
 
* Преобразование в число(берём его порядковый номер)
Строка 13: Строка 14:
 
<tex>c_i(ord) := (ord < ord_i), где </tex>{<tex>ord_1, ..., ord_k</tex>} - множество значений порядкового признака.(см. рис1)
 
<tex>c_i(ord) := (ord < ord_i), где </tex>{<tex>ord_1, ..., ord_k</tex>} - множество значений порядкового признака.(см. рис1)
  
= Преобразование категории =
+
== Преобразование категории ==
 
[[File:Преобразование_небинарной_категории_в_бинарную.png|250px|thumb|рис2. (A<B<C)]]
 
[[File:Преобразование_небинарной_категории_в_бинарную.png|250px|thumb|рис2. (A<B<C)]]
  
Строка 20: Строка 21:
 
* One-hot encoding - преобразование категорий в числа (0, 1): one-hot<tex>_i(c) = [c = c_i]</tex>
 
* One-hot encoding - преобразование категорий в числа (0, 1): one-hot<tex>_i(c) = [c = c_i]</tex>
  
= Базовые методы нормализации данных =
+
= Нормализация данных =
 
Применяются независимо к столбцу X
 
Применяются независимо к столбцу X
  

Версия 18:51, 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 * \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[/math].
[math]\triangleleft[/math]