Отбор признаков для снижения размерности

Существует три широкие категории методов отбора признаков.

  1. Методы фильтрации
  2. Встроенные методы
  3. Оберточные методы

Методы фильтрации.

Эти методы основаны на внутренних (естественных) свойствах самих признаков. На данном этапе мы не используем какой-либо классификатор или модель.

Одномерная статистика

Если дисперсия признака велика и точки данных сильно разбросаны, это говорит о том, что точки данных этого признака очень полезны для различения разных обучающих примеров. При наличии дисперсии будет легко придумать границы для различения разных точек данных. Чем больше дисперсия, тем лучше, поэтому мы можем просто удалить признаки с низкой дисперсией. Это также известно как UNIVARIATE Statistic. Поскольку задействован только один признак. Другой модный термин, который мы часто используем, — это Information Gain (информационный выигрыш), который показывает, насколько большой вклад вносит признак в различение различных точек данных.

1. Использование простого порога

Преимущество вычисления дисперсии в том, что это очень быстро. Но главный недостаток в том, что он не учитывает взаимосвязь между признаками.

# Seperating fetures from Target Variable
features = dataset.loc[:, dataset.columns != 'Label'].astype('float64')
labels = dataset['Label']
Вход в полноэкранный режим Выход из полноэкранного режима
from sklearn.feature_selection import VarianceThreshold
# We want to see column here 95% of the value in a feature/column is same 
# Selecting features with less than 5% variance
var_constant = 0.05
var_thr = VarianceThreshold(threshold = var_constant)  
var_thr.fit(features)
variance_stat = var_thr.get_support()
print(f"The {len(variance_stat[variance_stat==False])} have low variance than {var_constant*100}% out of {len(features.columns)} features.")
print(f'Following are the features with low variance')
print(features.columns[np.invert(variance_stat)])
Войти в полноэкранный режим Выход из полноэкранного режима

Двумерная статистика

Если для вычислений задействовано более одного признака, то это не что иное, как двумерная статистика.

1. Попарная корреляция

Если два признака сильно коррелируют между собой, то мы знаем, что один из них избыточен и, вероятно, его можно удалить из набора данных без потери большого количества информации.

feature_corr_matrix = features.corr()
plt.figure(figsize=(100,100)) # (width, height)
sns.heatmap(feature_corr_matrix, annot=True,cmap="RdYlGn")
Войти в полноэкранный режим Выйти из полноэкранного режима

2. Корреляция с целевой переменной

Если у нас есть признаки, которые сильно коррелируют с целевой переменной, то это хорошие признаки для использования. Особенно в случае линейной регрессии.

def corelationHeatMap(col_name):
  corr_matrix = dataset.corr() 
  corr_matrix_cols = corr_matrix.columns
  plt.figure(figsize=(20,60)) # (width, height)
  index = [i for (i,each) in enumerate(corr_matrix.columns) if each == col_name][0]
  sns.heatmap(corr_matrix.iloc[:, [index]], annot=True,cmap="RdYlGn")
Войти в полноэкранный режим Выйдите из полноэкранного режима

Передайте имя целевой переменной в вышеуказанную функцию.

corelationHeatMap("Label")
Войти в полноэкранный режим Выйти из полноэкранного режима

3. Использование Anova

Мы знаем, что стандартное отклонение говорит нам о том, насколько разбросаны данные, другими словами, насколько сильно точки наших данных отклоняются от среднего значения в среднем. В то время как дисперсия — это не что иное, как квадрат стандартного отклонения, она также помогает нам понять корреляцию между переменными.

Anova также помогает нам найти корреляцию между переменными.

При использовании Anova мы получаем значение, известное как F Ratio или F Statistic. Это говорит нам о том, насколько уверенно мы можем утверждать, что между переменными существует корреляция. Существует нулевая гипотеза, которая говорит об отсутствии корреляции между переменными, и альтернативная гипотеза, которая говорит о наличии корреляции между переменными. Точно так же, как p-значение меньше уровня значимости, если отношение F меньше уровня значимости, мы отвергаем нулевую гипотезу и принимаем альтернативную гипотезу.

Когда мы можем использовать тест Anova, если ваши признаки являются числовыми, а целевая переменная — категориальной или числовой, тогда мы можем использовать тест Anova.

Как использовать Anova для отбора признаков?

Дело в том, что коэффициент F рассчитывается для каждого признака и целевой переменной. Мы выбираем признаки с самым высоким коэффициентом F/коэффициентом, поскольку они являются наиболее важными.

Встроенные методы

Эти методы фактически включают в себя модель. Модель используется с целью оптимизации путем выбора лучших характеристик. Например: Дерево решений Каждый раз, когда мы разделяем узел, мы сравниваем все различные признаки, чтобы выбрать признак с максимальным информационным выигрышем. Таким образом, наша цель — найти признаки, которые максимизируют выигрыш в информации, когда мы используем их для разбиения. Можно сказать, что дерево решений фактически выбирает признаки при росте дерева. Мы выбираем признаки, которые дают наибольший выигрыш в информативности. Обычно те признаки, которые используются выше, являются наиболее важными, так как они имеют максимальный прирост информации в дереве решений.

Это лишь один из множества примеров. Мы рассмотрим каждый из них более подробно в следующих блогах.

Методы-обертки

Они основаны на наших основных целях. Например, если мы заинтересованы в улучшении эффективности предсказания, времени предсказания или, может быть, времени обучения. Таким образом, мы можем иметь различные лучшие характеристики в зависимости от нашей цели.

Что мы делаем, так это подгоняем наши модели на основе различных подмножеств признаков. И смотрим, каковы значения/эффективность модели при использовании различных подмножеств в соответствии с нашей основной целью. Это помогает нам выбрать лучшие признаки.

Метод Wrapper действительно дорогой, так как он требует много времени для вычисления результата для каждого подмножества признаков по сравнению с одномерной статистикой, такой как дисперсия. Таким образом, этот метод требует больших вычислительных затрат, но он также очень хорош, поскольку имеет дело непосредственно с предполагаемыми результатами.

Оцените статью
Procodings.ru
Добавить комментарий