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

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 1: Строка 1:
 +
= Преобразование числа =
 +
Обычно с числами довольно удобно работать и преобразовывают их достаточно редко.
 +
 +
'''Дискретизация'''
 +
* Преобразование в порядковый признак. (берём в числах диапазоны и диапазонам сопоставляем категории)
 +
* Преобразование в категориальный признак. ('''НО''' теряется информация о порядке)
 +
 +
= Преобразование порядкового типа =
 +
[[File:Преобразование_порядкового_типа_в_k_категорий.png|250px|thumb|рис1. (A<B<C)]]
 +
* Преобразование в число(берём его порядковый номер)
 +
* Преобразование в k бинарных категорий(если число значений конечно и равно k):
 +
 +
<tex>c_i(ord) := (ord < ord_i), где </tex>{<tex>ord_1, ..., ord_k</tex>} - множество значений порядкового признака.(см. рис1)
 +
 +
= Преобразование категории =
 +
[[File:Преобразование_небинарной_категории_в_бинарную.png|250px|thumb|рис2. (A<B<C)]]
 +
 +
* Бинарную категорию можно преобразовать в число: <tex>c_1 \Rightarrow 0, c_2 \Rightarrow 1</tex> или <tex>c_1 \Rightarrow -1, c_2 \Rightarrow +1</tex>
 +
* Категорию из k значений {<tex>c_1, ..., c_k</tex>} можно '''бинаризовать''' получив k бинарных категорий:<tex>b_i(c) := (c = c_i)</tex>(см. рис2)('''НО''' обратное преобразование иногда невозможно(получим много true и не понятно, к какой категории относить))
 +
* One-hot encoding - преобразование категорий в числа (0, 1): one-hot<tex>_i(c) = [c = c_i]</tex>
 +
 
= Базовые методы нормализации данных =
 
= Базовые методы нормализации данных =
 
Применяются независимо к столбцу X
 
Применяются независимо к столбцу X
Строка 18: Строка 39:
  
 
= Декорреляция =
 
= Декорреляция =
[[File:Декорреляция.png|300px|thumb|рис1]]
+
[[File:Декорреляция.png|300px|thumb|рис3]]
 
1. Есть матрица X.
 
1. Есть матрица X.
  

Версия 18:49, 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]