使用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的Django框架中的项目进行单元测试的方法
Apr 11 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
利用Django模版生成树状结构实例代码
May 19 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
python Pillow图像处理方法汇总
Oct 16 Python
利用python实现AR教程
Nov 20 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
python实现按关键字筛选日志文件
Dec 24 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
python 实现简单的计算器(gui界面)
Nov 11 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
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
js form action动态修改方法
2008/11/04 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
Extjs表单常见验证小结
2014/03/07 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
js中常用的Math方法总结
2017/01/12 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
python实现中文分词FMM算法实例
2015/07/10 Python
分享Python文本生成二维码实例
2016/01/06 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
详解Python中类的定义与使用
2017/04/11 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
python3.5的包存放的具体路径
2020/08/16 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
教师评优事迹材料
2014/01/10 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android