使用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抓取Discuz!用户名脚本代码
Dec 30 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
详解Python的Django框架中的中间件
Jul 24 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
python dict 相同key 合并value的实例
Jan 21 Python
python logging模块的使用总结
Jul 09 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
python实现银行实战系统
Feb 26 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
Python urllib request模块发送请求实现过程解析
Dec 10 Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
php SQL Injection with MySQL
2011/02/27 PHP
php判断两个日期之间相差多少个月份的方法
2015/06/18 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
2015/12/31 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
办加油卡单位介绍信
2014/01/09 职场文书
中专自我鉴定
2014/02/05 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
小浪底导游词
2015/02/12 职场文书
地球一小时活动总结
2015/02/27 职场文书
老干部座谈会主持词
2015/07/03 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
k8s部署redis cluster集群的实现
2021/06/24 Redis