使用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找出序列中出现最多的元素示例代码
Dec 08 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
python dict 相同key 合并value的实例
Jan 21 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
Python中遍历列表的方法总结
Jun 27 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
基于 Python 实践感知器分类算法
Jan 07 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
桌面中心(一)创建数据库
2006/10/09 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
Javascript 面向对象 重载
2010/05/13 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
银行会计财务工作个人的自我评价
2013/10/29 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
初中教师业务学习材料
2014/05/12 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
解析CSS 提取图片主题色功能(小技巧)
2021/05/12 HTML / CSS
Python源码解析之List
2021/05/21 Python
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技