使用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 基础学习教程
Feb 08 Python
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
JSON Web Tokens的实现原理
Apr 02 Python
Django的信号机制详解
May 05 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
python使用pandas抽样训练数据中某个类别实例
Feb 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
Laravel Eloquent ORM 实现查询表中指定的字段
2019/10/17 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2020/01/22 PHP
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
HTML中fieldset标签概述及使用方法
2013/02/01 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
快餐店的创业计划书范文
2014/01/29 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
贷款担保书范文
2014/05/13 职场文书
教师师德考核自我评价
2014/09/13 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书