使用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数据结构树和二叉树简介
Apr 29 Python
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
python学习必备知识汇总
Sep 08 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
python爬虫之xpath的基本使用详解
Apr 18 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
python中format函数如何使用
Jun 22 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 Python
Python实现socket库网络通信套接字
Jun 04 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实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
JavaScript中this详解
2015/09/01 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
使用Python编写vim插件的简单示例
2015/04/17 Python
Python判断两个对象相等的原理
2017/12/12 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
出国签证在职证明范本
2014/11/24 职场文书
事业单位考察材料范文
2014/12/25 职场文书
2015年国税春训心得体会
2015/03/09 职场文书