Spec-Zone.ru › scikit-learn

FeatureHasher

classsklearn.feature_extraction.FeatureHasher(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)[source]

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

Этот класс преобразует последовательности символьных имён признаков (строки) в матрицы 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” (по умолчанию) для принятия словарей над (название_признака, значение); “pair” для принятия пар (название_признака, значение); или “string” для принятия отдельных строк. название_признака должно быть строкой, а значение — числом. В случае “string” подразумевается значение 1. Имя признака хэшируется для определения соответствующего столбца для признака. Знак значения может быть изменён в выходе (но см. 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)[source]

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

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

Параметры:
XПропускается

Не используется, присутствует здесь для согласованности API по соглашению.

yПропускается

Не используется, присутствует здесь для согласованности API по соглашению.

Возвращает:
selfобъект

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

fit_transform(X, y=None, **fit_params)[source]

Производит подгонку к данным, затем преобразует их.

Производит подгонку трансформера к X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

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

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

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

Значения целевых переменных (None для безконтрольных преобразований).

**fit_paramsсловарь

Дополнительные параметры подгонки.

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

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

get_metadata_routing()[source]

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

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

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

MetadataRequest encapsulating routing information.

get_params(deep=True)[source]

Получить параметры этого оценщика.

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

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

Возвращает:
paramsсловарь

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

set_output(*, transform=None)[source]

Установить контейнер вывода.

См. Введение в API set_output для примера использования API.

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

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

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

Добавлена в версии 1.4: "polars" опция была добавлена.

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

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

set_params(**params)[source]

Установить параметры этого оценщика.

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

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

Параметры оценщика.

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

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

transform(raw_X)[source]

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

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

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

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

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

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

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

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

Spec-Zone.ru

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