Spec-Zone.ru › scikit-learn

mutual_info_classif

sklearn.feature_selection.mutual_info_classif(X, y, *, discrete_features='auto', n_neighbors=3, copy=True, random_state=None, n_jobs=None)[исходный код]

Оценка взаимной информации для дискретной целевой переменной.

Взаимная информация (ВИ) [1] между двумя случайными переменными — это неотрицательная величина, измеряющая зависимость между переменными. Она равна нулю тогда и только тогда, когда две случайные переменные независимы; более высокие значения означают более сильную зависимость.

Функция использует непараметрические методы, основанные на оценке энтропии по расстояниям до k ближайших соседей, описанные в [2] и [3]. Оба метода основаны на идее, впервые предложенной в [4].

Функцию можно использовать для отбора одномерных признаков. Подробнее см. в руководстве пользователя.

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Матрица признаков.

yмассивоподобный объект формы (n_samples,)

Целевой вектор.

discrete_features‘auto’, bool или массивоподобный объект, по умолчанию=’auto’

Если задано значение bool, определяет, считать ли все признаки дискретными или непрерывными. Если задан массив, он должен быть либо булевой маской формы (n_features,), либо массивом индексов дискретных признаков. Если задано значение ‘auto’, для плотного X устанавливается False, а для разреженного X — True.

n_neighborsint, по умолчанию=3

Количество соседей, используемых для оценки ВИ непрерывных переменных; см. [2] и [3]. Более высокие значения уменьшают дисперсию оценки, но могут внести смещение.

copybool, по умолчанию=True

Определяет, нужно ли создавать копию переданных данных. Если задано False, исходные данные будут перезаписаны.

random_stateint, экземпляр RandomState или None, по умолчанию=None

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

n_jobsint, по умолчанию=None

Количество заданий для вычисления взаимной информации. Параллельное выполнение распределяется по столбцам X. None означает 1, если только не используется контекст joblib.parallel_backend. -1 означает использование всех процессоров. Подробнее см. глоссарий.

Добавлено в версии 1.5.

Возвращает:
mindarray, форма (n_features,)

Оценка взаимной информации между каждым признаком и целевой переменной в натах.

Примечания

  1. Вместо термина «категориальные» используется термин «дискретные признаки», поскольку он точнее описывает их суть. Например, интенсивности пикселей изображения — это дискретные признаки (но едва ли категориальные), и результаты будут лучше, если обозначить их соответствующим образом. Учтите также, что трактовка непрерывной переменной как дискретной и наоборот обычно приводит к неверным результатам, поэтому будьте внимательны.
  2. Истинная взаимная информация не может быть отрицательной. Если оценка оказывается отрицательной, она заменяется нулём.

Список литературы

[1]

Взаимная информация в Википедии.

[2] (1,2)

A. Kraskov, H. Stogbauer и P. Grassberger, «Оценка взаимной информации». Phys. Rev. E 69, 2004.

[3] (1,2)

B. C. Ross, «Взаимная информация между дискретными и непрерывными наборами данных». PLoS ONE 9(2), 2014.

[4]

L. F. Kozachenko, N. N. Leonenko, «Выборочная оценка энтропии случайного вектора», Probl. Peredachi Inf., 23:2 (1987), 9-16

Примеры

>>> from sklearn.datasets import make_classification
>>> from sklearn.feature_selection import mutual_info_classif
>>> X, y = make_classification(
...     n_samples=100, n_features=10, n_informative=2, n_clusters_per_class=1,
...     shuffle=False, random_state=42
... )
>>> mutual_info_classif(X, y)
array([0.589, 0.107, 0.196, 0.0968 , 0.,
       0.   , 0.   , 0.   , 0.     , 0.])

Примеры из галереи

Выбор метода уменьшения размерности с помощью Pipeline и GridSearchCV

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.feature_selection.mutual_info_classif.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API