Что такое хеширование функций (хеширование)?

Я знаю, что хеширование функций (хеширование) используется для уменьшения размерности и обработки разреженности битовых векторов, но я не понимаю, как это работает. Может ли кто-нибудь объяснить это мне. Есть ли какая-либо библиотека python для хэширования функций?

Спасибо.

One Solution collect form web for “Что такое хеширование функций (хеширование)?”

В Pandas вы можете использовать что-то вроде этого:

import pandas as pd import numpy as np data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002], 'pop': [1.5, 1.7, 3.6, 2.4, 2.9]} data = pd.DataFrame(data) def hash_col(df, col, N): cols = [col + "_" + str(i) for i in range(N)] def xform(x): tmp = [0 for i in range(N)]; tmp[hash(x) % N] = 1; return pd.Series(tmp,index=cols) df[cols] = df[col].apply(xform) return df.drop(col,axis=1) print hash_col(data, 'state',4) 

Выход был бы

  pop year state_0 state_1 state_2 state_3 0 1.5 2000 0 1 0 0 1 1.7 2001 0 1 0 0 2 3.6 2002 0 1 0 0 3 2.4 2001 0 0 0 1 4 2.9 2002 0 0 0 1 

Также на уровне серии вы могли бы

import numpy как np, os import sys, pandas as pd

 def hash_col(df, col, N): df = df.replace('',np.nan) cols = [col + "_" + str(i) for i in range(N)] tmp = [0 for i in range(N)] tmp[hash(df.ix[col]) % N] = 1 res = df.append(pd.Series(tmp,index=cols)) return res.drop(col) a = pd.Series(['new york',30,''],index=['city','age','test']) b = pd.Series(['boston',30,''],index=['city','age','test']) print hash_col(a,'city',10) print hash_col(b,'city',10) 

Это будет работать на одну серию, название столбца будет считаться индексом Pandas. Он также заменяет пустые строки наном и плавает все.

 age 30 test NaN city_0 0 city_1 0 city_2 0 city_3 0 city_4 0 city_5 0 city_6 0 city_7 1 city_8 0 city_9 0 dtype: object age 30 test NaN city_0 0 city_1 0 city_2 0 city_3 0 city_4 0 city_5 1 city_6 0 city_7 0 city_8 0 city_9 0 dtype: object 

Если, однако, есть словарь, и вы просто хотите использовать один-горячий код, вы можете использовать

 import numpy as np import pandas as pd, os import scipy.sparse as sps def hash_col(df, col, vocab): cols = [col + "=" + str(v) for v in vocab] def xform(x): tmp = [0 for i in range(len(vocab))]; tmp[vocab.index(x)] = 1; return pd.Series(tmp,index=cols) df[cols] = df[col].apply(xform) return df.drop(col,axis=1) data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'], 'year': [2000, 2001, 2002, 2001, 2002], 'pop': [1.5, 1.7, 3.6, 2.4, 2.9]} df = pd.DataFrame(data) df2 = hash_col(df, 'state', ['Ohio','Nevada']) print sps.csr_matrix(df2) 

который даст

  pop year state=Ohio state=Nevada 0 1.5 2000 1 0 1 1.7 2001 1 0 2 3.6 2002 1 0 3 2.4 2001 0 1 4 2.9 2002 0 1 

Я также добавил также разделение окончательного блока данных. В инкрементной настройке, где мы могли бы не встречаться со всеми значениями заранее (но мы каким-то образом каким-то образом получили список всех возможных значений), можно использовать описанный выше подход. Инкрементальные методы ML нуждались бы в том же количестве функций при каждом приращении, поэтому одноразовое кодирование должно приводить к одинаковому количеству строк в каждой партии.

  • Поддерживает ли SVM в sklearn инкрементное (онлайн) обучение?
  • Python Pandas: как заменить значения в Dataframe на основе другого массива в условной базе
  • Scikit-learn: как получить True Positive, True Negative, False Positive и False Negative
  • Внедрение классификатора наивного байеса в НЛТК
  • Как рассчитать AUC для одного класса SVM в python?
  • Сохранить классификатор на диск в scikit-learn
  • классификаторы в scikit-learn, которые обрабатывают nan / null
  • как извлечь правила принятия решения из дерева принятия решений scikit-learn?
  • Библиотека в python для нейронных сетей для построения ROC, AUC, DET
  • Насколько большой размер партии и количество эпох при установке модели в Keras?
  • Что делать сначала: выбор параметра или настройка параметров модели?
  •  
    Interesting Posts for Van-Lav

    Шкала журнала на радиальном контурном графике с matplotlib

    Совместное использование базы данных между Twisted и Django

    Удаление html-тегов при обходе wikipedia с помощью urllib2 и Beautifulsoup на python

    nginx фляга gunicorn python … с чего начать?

    Восстановление соединения с мертвой базой данных в Django

    Разделение целого числа на Python?

    Отключить вывод консоли из подпроцесса. Открыть в Python

    Используйте .corr, чтобы получить корреляцию между двумя столбцами

    Python ValueError: объект JSON не может быть декодирован

    Django, импортировать таблицы в качестве моделей

    Как перемещать файлы между двумя ведрами Amazon S3 с помощью boto?

    Как компаратор работает для объектов, которые не сопоставимы в python?

    C / C ++ эквиваленты стандартной библиотеки Python

    Предоставление экземпляра класса C ++ встроенному интерпретатору на основе python

    Измените цвет текста в pythas dataframe html table python, используя стили и css

    Python - лучший язык программирования в мире.