使用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实现把json格式转换成文本或sql文件
Jul 10 Python
django manage.py扩展自定义命令方法
May 27 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
python虚拟环境迁移方法
Jan 03 Python
解决python文件双击运行秒退的问题
Jun 24 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
python使用ctypes调用扩展模块的实例方法
Jan 28 Python
在python中使用nohup命令说明
Apr 16 Python
Django如何使用redis作为缓存
May 21 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
Python之Sklearn使用入门教程
Feb 19 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
BBS(php & mysql)完整版(五)
2006/10/09 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
php cli配置文件问题分析
2015/10/15 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
用js小类库获取浏览器的高度和宽度信息
2012/01/15 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
Python中的ceil()方法使用教程
2015/05/14 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
用Python写一个for循环的例子
2016/07/19 面试题
端午节活动策划方案
2014/03/09 职场文书
责任书格式范文
2014/07/28 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
义卖募捐活动总结
2015/05/09 职场文书
Go timer如何调度
2021/06/09 Golang
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android
详解Python中的for循环
2022/04/30 Python