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

Я знаю, что хеширование функций (хеширование) используется для уменьшения размерности и обработки разреженности битовых векторов, но я не понимаю, как это работает. Может ли кто-нибудь объяснить это мне. Есть ли какая-либо библиотека 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 нуждались бы в том же количестве функций при каждом приращении, поэтому одноразовое кодирование должно приводить к одинаковому количеству строк в каждой партии.

  • Уравнение аппроксимации свободной энергии в реляционных системах Больцмана
  • Ошибка функции float типа tensorflow softmax_cross ... ()
  • Как увеличить матричные факторы в рекомендациях Spark ALS?
  • Как получить предсказанные метки классов в примере MNIST от TensorFlow?
  • Как получить наиболее информативные функции для scikit-learn classifier для разных классов?
  • Как найти важность функций для модели логистической регрессии?
  • iloc, дающий 'IndexError: единственный позиционный индексатор вне границ'
  • Любая библиотека поддержки векторной машины python, которая позволяет онлайн-обучение?
  •  
    Interesting Posts for Van-Lav

    Django: создание формы для каждого пользователя на одной странице

    Как я могу установить модуль YAML для Python без ROOT ACCESS («easy_install» и «pip» недоступны)?

    Разница между scipy.leastsq и scipy.least_squares

    Python, импортировать строку кода Python в качестве модуля

    Google App Engine и Cloud SQL: потерянное соединение с сервером MySQL при «считывании исходного пакета связи»

    Я хочу использовать NumPy / SciPy. Должен ли я использовать Python 2 или 3?

    python nltk.sent_tokenize ошибка ascii codec не может декодировать

    можно определить, сколько строк существует в файле без каждой итерации в строке?

    ImportError: ни один модуль с именем bottle

    Alex-Net для извлечения функций

    Элементы в объекте JSON не работают, используя «json.dumps»?

    не может установить pip mysql-python

    Установка Psycopg2 с помощью pip работает, но не может импортировать модуль на OS X 10.9

    Что такое композиция питонской функции, лямбда или что-то еще?

    Как я могу работать с яйцами python для нескольких платформ в одном месте?

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