FeatureHasher#

класс sklearn.feature_extraction.FeatureHasher(n_features=1048576, *, input_type='dict', dtype= 'numpy.float64'>, alternate_sign=True)[источник]#

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

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

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

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

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

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

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

Параметры:
n_featuresint, default=2**20

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

input_typestr, default='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)[источник]#

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

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

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

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

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

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

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

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

fit_transform(X, y=None, **fit_params)[источник]#

Обучение на данных с последующим преобразованием.

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

Параметры:
Xarray-like формы (n_samples, n_features)

Входные выборки.

yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None

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

**fit_paramsdict

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

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

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

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

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

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

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

set_output(*, преобразовать=None)[источник]#

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

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

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

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

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

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

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

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

set_params(**params)[источник]#

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

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

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

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

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

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

преобразовать(raw_X)[источник]#

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

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

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

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

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