Spec-Zone.ru › scikit-learn

mutual_info_regression

sklearn.feature_selection.mutual_info_regression(X, y, *, discrete_features='auto', n_neighbors=3, copy=True, random_state=None, n_jobs=None)[source]

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

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

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

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

Параметры:
Xмассив-подобный или разреженный массив, форма (n_samples, n_features)

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

yмассив-подобный формы (n_samples,)

Вектор целевой переменной.

discrete_features{‘auto’, bool, массив-подобный}, по умолчанию=’auto’

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

n_neighborsцелое число, по умолчанию=3

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

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

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

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

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

n_jobsцелое число, по умолчанию=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_regression
>>> from sklearn.feature_selection import mutual_info_regression
>>> X, y = make_regression(
...     n_samples=50, n_features=3, n_informative=1, noise=1e-4, random_state=42
... )
>>> mutual_info_regression(X, y)
array([0.1..., 2.6...  , 0.0...])

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

Сравнение F-теста и взаимной информации

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

Spec-Zone.ru

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