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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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)
Матрица признаков для использования с оценщиками или дальнейшими преобразователями.