美文网首页
实现one-hot编码的两种方法

实现one-hot编码的两种方法

作者: Yespon | 来源:发表于2019-12-05 16:43 被阅读0次

实现one hot encode的两种方法

Approach 1: You can use get_dummies on pandas dataframe.

#  transform a given column into one hot. Use prefix to have multiple dummies
>>> import pandas as pd
>>> df = pd.DataFrame({'A': ['a','b','c'],'B': ['b','a','c']})
>>># Get one hot encoding of columns B...
>>> df
  A  B
0 a  b
1 b  a
2 c  c
>>> one_hot = pd.get_dummies(df['B'])
>>># Drop columns B as it is now encoded...
>>> df = df.drop('B', axis=1)
>>># Join the encoded df...
>>> df = df.join(one_hot)
>>> df
  A  a  b  c
0 a  0  1  0
1 b  1  0  0
2 c  0  0  1

一个定性特征哑编码的demo:

def one_hot(df, cols):
"""
    @param df pandas DataFrame

    @param cols a list of columns to encode

    @return a DataFrame with one-hot encoding
"""
for each in cols:
        dummies = pd.get_dummies(df[each], prefix=each, drop_first=False)
        df = pd.concat([df, dummies], axis=1)
return df

使用 sklearn进行特征变量哑编码:

>>> from sklearn.preprocessing import OneHotEncoder
>>> enc = OneHotEncoder()
>>> enc.fit([[0, 0, 3], [1,1,0], [0,2,1], [1,0,2]])
OneHotEncoder(categorical_features='all', dtype=,  handle_unknown='error', n_values='auto', sparse=True)
>>> enc.n_values_array([2,3,4])
>>> enc.feature_indices_array([0,2,5,9])
>>> enc.transform([[0,1,1]])<1x9 sparse matrix oftype'<class 'numpy.float64'>'with3stored elementsinCompressed Sparse Rowformat
>>> enc.transform([[0,1,1]]).toarray()
array([[ 1.,  0.,  0.,  1.,  0.,  0.,  1.,  0.,  0.]])

一个保存在全局的Label_Binarizer的demo:

from sklearn.preprocessing import LabelBinarizer
label_binarizer =LabelBinarizer()
label_binarizer.fit(all_your_labels_list)# need to be global or remembered to use it later
def one_hot_encode(x):
"""
One hot encode a list of sample labels. Return a one-hot encoded vector for each label.

    : x: List of sample Labels

    : return: Numpy array of one-hot encoded labels

    """
return label_binarizer.transform(x)

https://stackoverflow.com/questions/37292872/how-can-i-one-hot-encode-in-python

相关文章

  • 多类分割One-hot 编码实现方式(转)

    原链接:数据预处理 One-hot 编码的两种实现方式 1. 什么是 One-hot 编码 最直观的理解就是,比如...

  • One-hot与Word2Vec

    one-hot是文本向量化最常用的方法之一。 1.1 one-hot编码 什么是one-hot编码?one-hot...

  • 实现one-hot编码的两种方法

    实现one hot encode的两种方法 Approach 1: You can use get_dummies...

  • 准备数据、构建网络、编译模型

    准备数据 标签向量化 标签向量化有两种方法:1、将标签列表转换为整数张量;2、one-hot 编码。上述例子即为 ...

  • One-Hot编码

    对离散型特征进行one-hot编码是为了让距离的计算显得更加合理。 离散特征进行one-hot编码后,编码后的特征...

  • 通俗理解word2vec

    独热编码 独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个...

  • one hot编码

    一、什么是one-hot编码? One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编...

  • one-hot encoding

    我是搬运工 One-Hot Encoding One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对...

  • 特征提取之pd.get_dummies()

    跳转链接 pandas提供对one-hot编码的函数是:pd.get_dummies() one-hot的基本思想...

  • 词嵌入(word embedding)简记

    句子的常用表示方法有:独热编码(One-Hot)和词嵌入。独热编码存在的问题有:1、词矩阵稀疏,每个向量只有一个值...

网友评论

      本文标题:实现one-hot编码的两种方法

      本文链接:https://www.haomeiwen.com/subject/oyharqtx.html