使用sklearn之LabelEncoder将Label标准化的方法


Posted in Python onJuly 11, 2018

LabelEncoder可以将标签分配一个0—n_classes-1之间的编码

将各种标签分配一个可数的连续编号:

>>> from sklearn import preprocessing
>>> le = preprocessing.LabelEncoder()
>>> le.fit([1, 2, 2, 6])
LabelEncoder()
>>> le.classes_
array([1, 2, 6])
>>> le.transform([1, 1, 2, 6]) # Transform Categories Into Integers
array([0, 0, 1, 2], dtype=int64)
>>> le.inverse_transform([0, 0, 1, 2]) # Transform Integers Into Categories
array([1, 1, 2, 6])
>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo']
>>> le.transform(["tokyo", "tokyo", "paris"]) # Transform Categories Into Integers
array([2, 2, 1], dtype=int64)
>>> list(le.inverse_transform([2, 2, 1])) #Transform Integers Into Categories
['tokyo', 'tokyo', 'paris']

将DataFrame中的所有ID标签转换成连续编号:

from sklearn.preprocessing import LabelEncoder
import numpy as np
import pandas as pd
df=pd.read_csv('testdata.csv',sep='|',header=None)
0 1 2 3 4 5
0 37 52 55 50 38 54
1 17 32 20 9 6 48
2 28 10 56 51 45 16
3 27 49 41 30 53 19
4 44 29 8 1 46 13
5 11 26 21 14 7 33
6 0 39 22 33 35 43
7 18 15 47 5 25 34
8 23 2 4 9 3 31
9 12 57 36 40 42 24
le = LabelEncoder()
le.fit(np.unique(df.values))
df.apply(le.transform)
0 1 2 3 4 5
0 37 52 55 50 38 54
1 17 32 20 9 6 48
2 28 10 56 51 45 16
3 27 49 41 30 53 19
4 44 29 8 1 46 13
5 11 26 21 14 7 33
6 0 39 22 33 35 43
7 18 15 47 5 25 34
8 23 2 4 9 3 31
9 12 57 36 40 42 24

将DataFrame中的每一行ID标签分别转换成连续编号:

import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.pipeline import Pipeline
class MultiColumnLabelEncoder:
 def __init__(self,columns = None):
 self.columns = columns # array of column names to encode
 def fit(self,X,y=None):
 return self # not relevant here
 def transform(self,X):
 '''
 Transforms columns of X specified in self.columns using
 LabelEncoder(). If no columns specified, transforms all
 columns in X.
 '''
 output = X.copy()
 if self.columns is not None:
  for col in self.columns:
  output[col] = LabelEncoder().fit_transform(output[col])
 else:
  for colname,col in output.iteritems():
  output[colname] = LabelEncoder().fit_transform(col)
 return output
 def fit_transform(self,X,y=None):
 return self.fit(X,y).transform(X)
MultiColumnLabelEncoder(columns = [0, 1, 2, 3, 4, 5]).fit_transform(df)

或者

df.apply(LabelEncoder().fit_transform)
0 1 2 3 4 5
0 8 8 8 7 5 9
1 3 5 2 2 1 8
2 7 1 9 8 7 1
3 6 7 6 4 9 2
4 9 4 1 0 8 0
5 1 3 3 3 2 5
6 0 6 4 5 4 7
7 4 2 7 1 3 6
8 5 0 0 2 0 4
9 2 9 5 6 6 3
# Create some toy data in a Pandas dataframe
fruit_data = pd.DataFrame({
 'fruit': ['apple','orange','pear','orange'],
 'color': ['red','orange','green','green'],
 'weight': [5,6,3,4]
})
color fruit weight
0 red apple 5
1 orange orange 6
2 green pear 3
3 green orange 4
MultiColumnLabelEncoder(columns = ['fruit','color']).fit_transform(fruit_data)

或者

fruit_data[['fruit','color']]=fruit_data[['fruit','color']].apply(LabelEncoder().fit_transform)
color fruit weight
0 2 0 5
1 1 1 6
2 0 2 3
3 0 1 4

以上这篇使用sklearn之LabelEncoder将Label标准化的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python程序与服务器连接的WSGI接口
Apr 29 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
pycharm修改界面主题颜色的方法
Jan 17 Python
python中bytes和str类型的区别
Oct 21 Python
django中media媒体路径设置的步骤
Nov 15 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
Python3 shelve对象持久存储原理详解
Mar 23 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
Python实现识别图片内容的方法分析
Jul 11 #Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 #Python
python对离散变量的one-hot编码方法
Jul 11 #Python
Python基于多线程操作数据库相关问题分析
Jul 11 #Python
pandas 按照特定顺序输出的实现代码
Jul 10 #Python
Python OpenCV处理图像之图像直方图和反向投影
Jul 10 #Python
Python中 map()函数的用法详解
Jul 10 #Python
You might like
第二节--PHP5 的对象模型
2006/11/16 PHP
php采集速度探究总结(原创)
2008/04/18 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
十分钟打造AutoComplete自动完成效果代码
2009/12/26 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
JS实现的自动打字效果示例
2017/03/10 Javascript
javascript中的event loop事件循环详解
2018/12/14 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
python中zip和unzip数据的方法
2015/05/27 Python
详解python 注释、变量、类型
2018/08/10 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python类的动态绑定实现原理
2020/03/21 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
python GUI计算器的实现
2020/10/09 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
德国购买门票网站:ADticket.de
2019/10/31 全球购物
应聘教师推荐信
2013/10/31 职场文书
创业计划书如何编写
2014/02/06 职场文书
写景作文评语集锦
2014/12/25 职场文书
唐山大地震的观后感
2015/06/05 职场文书
改造DE1103三步曲
2022/04/07 无线电