实现one hot encode的两种方法:

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

  • 利用pandas实现one hot encode:
  1. # transform a given column into one hot. Use prefix to have multiple dummies
  2. >>> import pandas as pd
  3. >>> df = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': ['b', 'a', 'c']})
  4. >>> # Get one hot encoding of columns B
  5. ...
  6. >>> df
  7. A B
  8. 0 a b
  9. 1 b a
  10. 2 c c
  11. >>> one_hot = pd.get_dummies(df['B'])
  12. >>> # Drop columns B as it is now encoded
  13. ...
  14. >>> df = df.drop('B', axis=1)
  15. >>> # Join the encoded df
  16. ...
  17. >>> df = df.join(one_hot)
  18. >>> df
  19. A a b c
  20. 0 a 0 1 0
  21. 1 b 1 0 0
  22. 2 c 0 0 1
  • 一个定性特征哑编码的demo:
  1. def one_hot(df, cols):
  2. """
  3. @param df pandas DataFrame
  4. @param cols a list of columns to encode
  5. @return a DataFrame with one-hot encoding
  6. """
  7. for each in cols:
  8. dummies = pd.get_dummies(df[each], prefix=each, drop_first=False)
  9. df = pd.concat([df, dummies], axis=1)
  10. return df
  • 使用 sklearn进行特征变量哑编码:
  1. >>> from sklearn.preprocessing import OneHotEncoder
  2. >>> enc = OneHotEncoder()
  3. >>> enc.fit([[0, 0, 3], [1,1,0], [0,2,1], [1,0,2]])
  4. OneHotEncoder(categorical_features='all', dtype=<class 'numpy.float64'>,
  5. handle_unknown='error', n_values='auto', sparse=True)
  6. >>> enc.n_values_
  7. array([2, 3, 4])
  8. >>> enc.feature_indices_
  9. array([0, 2, 5, 9])
  10. >>> enc.transform([[0,1,1]])
  11. <1x9 sparse matrix of type '<class 'numpy.float64'>'
  12. with 3 stored elements in Compressed Sparse Row format>
  13. >>> enc.transform([[0,1,1]]).toarray()
  14. array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
  • 一个保存在全局的Label_Binarizer的demo:
  1. from sklearn.preprocessing import LabelBinarizer
  2. label_binarizer = LabelBinarizer()
  3. label_binarizer.fit(all_your_labels_list) # need to be global or remembered to use it later
  4. def one_hot_encode(x):
  5. """
  6. One hot encode a list of sample labels. Return a one-hot encoded vector for each label.
  7. : x: List of sample Labels
  8. : return: Numpy array of one-hot encoded labels
  9. """
  10. return label_binarizer.transform(x)

实现one hot encode独热编码的两种方法的更多相关文章

  1. 【转】数据预处理之独热编码(One-Hot Encoding)

    原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. ...

  2. 机器学习实战:数据预处理之独热编码(One-Hot Encoding)

    问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...

  3. 独热编码OneHotEncoder简介

    在分类和聚类运算中我们经常计算两个个体之间的距离,对于连续的数字(Numric)这一点不成问题,但是对于名词性(Norminal)的类别,计算距离很难.即使将类别与数字对应,例如{'A','B','C ...

  4. OneHotEncoder独热编码和 LabelEncoder标签编码

    学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别. 首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到 ...

  5. 数据预处理:独热编码(One-Hot Encoding)

    python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...

  6. 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码

    一.问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one- ...

  7. 数据预处理之独热编码(One-Hot Encoding)(转载)

    问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...

  8. 机器学习 数据预处理之独热编码(One-Hot Encoding)

    问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...

  9. 机器学习:数据预处理之独热编码(One-Hot)

    前言 ———————————————————————————————————————— 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等.这些特征值并不是连续的 ...

随机推荐

  1. python第八篇:十分钟学会Flask

    什么是Flask Flask是一个基于Python并且依赖于Jinja2模板引擎和Werkzeug WSGI服务的一个微型框架 Flask中包含一个轻量级的web 服务器主要用于在开发阶段测试使用 F ...

  2. 在javascript中使用replace

    javascript中使用replace功能很强大,不仅可以替换为字符串,还可以利用正则表达式,对匹配到的字符串为所欲为的进行操作,首先我们来了解一下replace的基本语法 定义和用法 replac ...

  3. Linux课程---10、权限管理(权限有哪几种)

    Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x---  2 root root  4096 Jan 20 19:39 mnt ...

  4. kvm初体验之九:vm创建快照

    1. 准备一个磁盘格式为qcow2的vm(raw格式的磁盘无法创建快照) 方法一:从头安装一个磁盘格式为qcow2的vm [root@tanghuimin vm]# qemu-img create - ...

  5. Django-01

    知识预览 Django基本命令 二 路由配置系统(URLconf) 三 编写视图 四 Template 五 数据库与ORM admin的配置 一 什么是web框架? 框架,即framework,特指为 ...

  6. Selenium-webdriver基本操作1

    #! /usr/bin/env python #coding=utf-8 from selenium import webdriver import time print("====浏览器最 ...

  7. Nginx+ffmpeg的HLS开源服务器搭建配置及开发详

    本文概述: 至目前为止,HLS 是移动平台上非常重要并十分流行的流媒体传输协议.做移动平台的流媒体开发,不知道它不掌握它 ,真是一大遗憾.而HLS的平台搭建有一定的难度,本文针对对该方向有一定了解的朋 ...

  8. UVA12163 游戏

    题目大意 现在有两个人在一个n个结点的有向图上玩一个双人游戏,保证图中无环和自圈.游戏的规则如下:1.初始的时候$i$号点有一个正权值$value_i$2.两名玩家依次操作,每个玩家在当前回合可以选择 ...

  9. 洛谷 P2149 [SDOI2009]Elaxia的路线

    题目描述 最近,Elaxia和w的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间.Elaxia和w每天都要奔波于宿舍和实验室之间,他们 希望在节约时间的 ...

  10. Parallel Programming-使用CancellationTokenSource调度并行运行的Task

    本文主要介绍使用CancellationTokenSource调度并行运行的Task. 一.使用场景 有多个Task并行运行时,如果其中一个Task所运行的程序出现异常,我们想马上终止所有待执行的Ta ...