使用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脚本来实现最简单的FTP下载的教程
May 04 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
使用rst2pdf实现将sphinx生成PDF
Jun 07 Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
Python3.6实现连接mysql或mariadb的方法分析
May 18 Python
python经典趣味24点游戏程序设计
Jul 26 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
May 18 Python
Pycharm导入anaconda环境的教程图解
Jul 31 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
如何用python开发Zeroc Ice应用
Jan 29 Python
python 中[0]*2与0*2的区别说明
May 10 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执行sql语句的写法
2009/03/10 PHP
PHP 单引号与双引号的区别
2009/11/24 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
详解Python中的join()函数的用法
2015/04/07 Python
python lxml中etree的简单应用
2019/05/10 Python
python中的句柄操作的方法示例
2019/06/20 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
夜大毕业生自我评价分享
2013/11/10 职场文书
美德好少年主要事迹
2014/01/29 职场文书
部门2014年度工作总结
2014/11/12 职场文书
实习生个人总结范文
2015/02/28 职场文书
会计试用期自我评价
2015/03/10 职场文书
爱护环境建议书
2015/09/14 职场文书