博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现one hot encode独热编码的两种方法
阅读量:5365 次
发布时间:2019-06-15

本文共 1919 字,大约阅读时间需要 6 分钟。

实现one hot encode的两种方法:

  • 利用pandas实现one hot encode:
#  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  B0  a  b1  b  a2  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  c0  a  0  1  01  b  1  0  02  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 of type '
' with 3 stored elements in Compressed Sparse Row format>>>> 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 laterdef 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://www.cnblogs.com/songdanzju/p/7497560.html

你可能感兴趣的文章
把特斯拉送上火星的程序员,马斯克!
查看>>
三测单
查看>>
MyBatis 缓存
查看>>
SQL中left outer join与inner join 混用时,SQL Server自动优化执行计划
查看>>
mac下python实现vmstat
查看>>
jxl.dll操作总结
查看>>
成员函数对象类的const和非const成员函数的重载
查看>>
机器学习实战-----八大分类器识别树叶带源码
查看>>
eclipse git 新的文件没有add index选项
查看>>
java 泛型
查看>>
VC NetShareAdd的用法
查看>>
java web项目中后台控制层对参数进行自定义验证 类 Pattern
查看>>
图论学习一之basic
查看>>
Java的Array和ArrayList
查看>>
记录Ubuntu 16.04 安装Docker CE
查看>>
安东尼奥·维瓦尔第——巴洛克音乐的奇葩
查看>>
pandas的增删改查
查看>>
HDU 5933/思维
查看>>
字节对齐
查看>>
Design Tic-Tac Toe
查看>>