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
-
MetadataRequestencapsulating 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)
-
Матрица признаков, для использования с оценщиками или другими преобразователями.
Примеры из галереи
© 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