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