使用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实现将html表格转换成CSV文件的方法
Jun 28 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python中shutil模块的学习笔记教程
Apr 04 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
python中partial()基础用法说明
Dec 30 Python
Python用字典构建多级菜单功能
Jul 11 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
Django框架models使用group by详解
Mar 11 Python
Python基于yield遍历多个可迭代对象
Mar 12 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
python中pop()函数的语法与实例
Dec 01 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基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
PHP strripos函数用法总结
2019/02/11 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
神经网络理论基础及Python实现详解
2017/12/15 Python
利用Python如何生成便签图片详解
2018/07/09 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
python 并发下载器实现方法示例
2019/11/22 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
英国著名书店:Foyles
2018/12/01 全球购物
房地产项目策划书
2014/02/05 职场文书
安全教育感言
2014/03/04 职场文书
央视元宵晚会主持串词
2014/03/25 职场文书
硕士生找工作求职信
2014/07/05 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
烟台的海导游词
2015/02/02 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
搞笑结婚保证书
2015/05/08 职场文书
表彰大会新闻稿
2015/07/17 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书