Spec-Zone.ru › scikit-learn

FeatureHasher

classsklearn.feature_extraction.FeatureHasher(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)[исходный код]

Реализует хеширование признаков, также известное как трюк хеширования.

Этот класс преобразует последовательности символьных имён признаков (строк) в разреженные матрицы scipy.sparse, используя хеш-функцию для вычисления столбца матрицы, соответствующего имени. Используется знаковая 32-битная версия Murmurhash3.

Имена признаков типа байтовой строки используются без изменений. Строки Unicode сначала преобразуются в UTF-8, но нормализация Unicode не выполняется. Значения признаков должны быть конечными числами.

Этот класс является альтернативой DictVectorizer и CountVectorizer с низким потреблением памяти и предназначен для крупномасштабного (онлайн-)обучения и ситуаций, когда объём памяти ограничен, например при выполнении кода прогнозирования на встроенных устройствах.

Сравнение эффективности различных средств извлечения признаков см. в разделе Сравнение FeatureHasher и DictVectorizer.

Подробнее см. в руководстве пользователя.

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

Параметры:
n_featuresint, по умолчанию=2**20

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

input_typestr, по умолчанию=’dict’

Выберите строку из {‘dict’, ‘pair’, ‘string’}. Значение “dict” (по умолчанию) позволяет использовать словари пар (feature_name, value); “pair” — пары (feature_name, value); “string” — одиночные строки. feature_name должно быть строкой, а value — числом. Для типа “string” предполагается значение 1. По хешу feature_name определяется соответствующий столбец для признака. Знак value может быть изменён на противоположный в выходных данных (см. параметр non_negative ниже).

dtypenumpy dtype, по умолчанию=np.float64

Тип значений признаков. Передаётся конструкторам разреженных матриц scipy.sparse как аргумент dtype. Не устанавливайте bool, np.boolean или тип беззнакового целого числа.

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

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

Изменено в версии 0.19: alternate_sign заменяет устаревший параметр non_negative.

См. также

DictVectorizer

Векторизует признаки со строковыми значениями с помощью хеш-таблицы.

sklearn.preprocessing.OneHotEncoder

Обрабатывает номинальные/категориальные признаки.

Примечания

Этот оцениватель является не имеющим состояния, и его не нужно обучать. Однако мы рекомендуем вызывать fit_transform вместо transform, поскольку проверка параметров выполняется только в fit.

Примеры

>>> from sklearn.feature_extraction import FeatureHasher
>>> h = FeatureHasher(n_features=10)
>>> D = [{'dog': 1, 'cat':2, 'elephant':4},{'dog': 2, 'run': 5}]
>>> f = h.transform(D)
>>> f.toarray()
array([[ 0.,  0., -4., -1.,  0.,  0.,  0.,  0.,  0.,  2.],
       [ 0.,  0.,  0., -2., -5.,  0.,  0.,  0.,  0.,  0.]])

Для input_type="string" входные данные должны быть итерируемым объектом, содержащим итерируемые объекты строк:

>>> h = FeatureHasher(n_features=8, input_type="string")
>>> raw_X = [["dog", "cat", "snake"], ["snake", "dog"], ["cat", "bird"]]
>>> f = h.transform(raw_X)
>>> f.toarray()
array([[ 0.,  0.,  0., -1.,  0., -1.,  0.,  1.],
       [ 0.,  0.,  0., -1.,  0., -1.,  0.,  0.],
       [ 0., -1.,  0.,  0.,  0.,  0.,  0.,  1.]])
fit(X=None, y=None)[исходный код]

Только проверяет параметры оценивателя.

Этот метод позволяет: (i) проверять параметры оценивателя и (ii) обеспечивать соответствие API преобразователей scikit-learn.

Параметры:
XИгнорируется

Не используется; присутствует здесь для соответствия API.

yИгнорируется

Не используется; присутствует здесь для соответствия API.

Возвращает:
selfobject

Экземпляр класса FeatureHasher.

fit_transform(X, y=None, **fit_params)[исходный код]

Обучает преобразователь на данных, а затем преобразует их.

Обучает преобразователь на X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

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

Входные образцы.

yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевые значения (None для преобразований без учителя).

**fit_paramsdict

Дополнительные параметры обучения. Передавайте их, только если оцениватель принимает дополнительные параметры в методе fit.

Возвращает:
X_newмассив ndarray формы (n_samples, n_features_new)

Преобразованный массив.

get_metadata_routing()[исходный код]

Получает маршрутизацию метаданных этого объекта.

Описание работы механизма маршрутизации см. в руководстве пользователя.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[исходный код]

Получает параметры этого оценивателя.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценивателя и содержащихся в нём объектов, которые являются оценивателями.

Возвращает:
paramsdict

Имена параметров, сопоставленные с их значениями.

set_output(*, transform=None)[исходный код]

Задаёт контейнер для вывода.

Дополнительные сведения см. в руководстве пользователя, а пример использования API — в разделе Знакомство с API set_output.

Параметры:
transform{“default”, “pandas”, “polars”}, по умолчанию=None

Настраивает вывод transform и fit_transform.

  • "default": формат вывода преобразователя по умолчанию
  • "pandas": вывод в формате DataFrame
  • "polars": вывод в формате Polars
  • None: конфигурация преобразования остаётся без изменений

Добавлено в версии 1.4: добавлен параметр "polars".

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

set_params(**params)[исходный код]

Задаёт параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). Параметры последних имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

transform(raw_X)[исходный код]

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

Параметры:
raw_Xитерируемый объект итерируемых объектов исходных признаков, длина = n_samples

Образцы. Каждый образец должен быть итерируемым объектом (например, списком или кортежем), содержащим или генерирующим имена признаков (и, при необходимости, значения; см. аргумент конструктора input_type), которые будут хешированы. Для raw_X не обязательно поддерживать функцию len, поэтому он может быть результатом генератора; значение n_samples определяется по мере обработки данных.

Возвращает:
Xразреженная матрица формы (n_samples, n_features)

Матрица признаков для использования с оценивателями или последующими преобразователями.

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

Сравнение FeatureHasher и DictVectorizer

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

Spec-Zone.ru

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