当前位置: 首页 > news >正文

没有做网站地图影响大吗吗东莞疫情最新消息今天

没有做网站地图影响大吗吗,东莞疫情最新消息今天,河北建设厅网站首页,门户网站简介]MultiLabelBinarizer: 从one-hot 到multi-hot 背景知识One hot encoderLabelEncoderMultiLabelBinarizer总结 背景知识 多类别分类: label space至少有3个label, 且默认每个sample有一个label, 与之相对应的是二元分类Binary classification, 多标签分类: 每个sample有1至多…

]MultiLabelBinarizer: 从one-hot 到multi-hot

  • 背景知识
  • One hot encoder
  • LabelEncoder
  • MultiLabelBinarizer
  • 总结


背景知识

多类别分类: label space至少有3个label, 且默认每个sample有一个label, 与之相对应的是二元分类Binary classification,

多标签分类: 每个sample有1至多个labels, 一般多标签分类都是多类别, 有时又称之为多标签多类别分类.

One hot encoder

Scikit-learn中实现了该功能,

from sklearn.preprocessing import  OneHotEncoder

如下展示了使用OneHotEncoder对label进行度热编码的过程,

encoder = OneHotEncoder()
labels = ['red', 'green', 'blue', 'blue', 'red']
data = np.array(labels).reshape(-1, 1) # shape: (n, 1)
encoder.fit(data)
print(f'encoder.categories_: {encoder.categories_}')
ans = encoder.transform(data).toarray()
ans_rev = encoder.inverse_transform(ans)
print(f'ans: {ans}')
print(f'ans_rev: {ans_rev}')

实际上除了标签列以外,还可以对属性列进行独热编码, 如下对三个属性列进行独热编码:

enc = OneHotEncoder()
enc.fit([[0, 0, 3],[1, 1, 0],[0, 2, 1],[1, 0, 2]]) # shape: (4, 3)
print(f'enc.categories_: {enc.categories_}')
ans = enc.transform([[0, 1, 3]]).toarray() # shape: (1,3)
ans_rev = enc.inverse_transform(ans)
print(f'ans: {ans}') # [[ 1.  0.  0.  1.  0.  0.  0.  0.  1.]]
print(f'ans_rev: {ans_rev}') # ans_rev: [[0 1 3]]

LabelEncoder

这个函数与OneHotEncoder不同,主要用于建立标签与其索引之间的映射关系, 并不能产生独热编码

from sklearn.preprocessing import LabelEncoder

标签可以是数值,

le = LabelEncoder()
le.fit([1, 2, 2, 6])
print(f'label space: {le.classes_}') # array([1, 2, 6])
print(le.transform([1, 1, 2, 6])) # array([0, 0, 1, 2]...)
print(le.inverse_transform([0, 0, 1, 2])) # array([1, 1, 2, 6])

标签也可以是字符串,

le = LabelEncoder()
le.fit(["paris", "paris", "tokyo", "amsterdam"])
print(f'label space: {le.classes_}') # ['amsterdam', 'paris', 'tokyo']
print(le.transform(["tokyo", "tokyo", "paris"])) # array([2, 2, 1]...)
print(le.inverse_transform([2, 2, 1])) # ['tokyo', 'tokyo', 'paris']

MultiLabelBinarizer

用于对多标签进行multi-hot编码,

from sklearn.preprocessing import MultiLabelBinarizer

下面是一个例子展示

y = [[2,3,4],[2],[0,1,3],[0,1,2,3,4],[0,1,2]]
print(f'#samples: {len(y)}')
mbr = MultiLabelBinarizer()
mbr.fit(y)
print(f'label space: {mbr.classes_}') # array([1, 2, 6])
ans = mbr.transform(y)
ans_rev = mbr.inverse_transform(ans)
print(f'ans: {ans}')
print(f'ans_rev: {ans_rev}')

总结

上面几种函数的API类似,使用方式也一样, 总结如下:

1.fit函数用于从输入数据学习一个编码器, 输入一般为[n,d], 表示n个samples, d维,
特别的, 对于MultiLabelBinarizer, d是不定的, 一维每个sample的标签数量不等.
2.执行fit以后得到的编码器有一个classes_属性, 这个属性实际上就是编码空间(有序的), 后面的编码表示实际上 就是基于编码空间来的.
3.执行transform()可以得到输入的编码表示
4.inverse_transform()的作用与transform()相反,主要用于从编码表示得到原始的输入标签.

http://www.dt0577.cn/news/27999.html

相关文章:

  • 广告平面设计教程成都最好的seo外包
  • wordpress+cms+中文版seo关键词排名点击工具
  • 如何制作橡皮泥 简单搜索引擎关键词优化有哪些技巧
  • 有哪些专做旅游定制的网站各种手艺培训班
  • 手机做网站多少钱地推app接任务平台
  • 做淘宝网站要安全保障么软文广告代理平台
  • flash网站免费源码带后台百度推广产品有哪些
  • 网站建设相关关键词推广品牌的方法
  • 文网站建设费用计入什么科目澳门seo关键词排名
  • 网站建设实施方案鸿科经纬教网店运营推广
  • 付公司网站建设费用会计分录免费公司网址怎么注册
  • seo优化排名方法seo网站优化推广
  • 百度联盟怎么做自己的网站搜索引擎营销的主要方式有哪些?
  • 网站备案工作站长统计app软件下载2021
  • 做素材网站如何赚钱深圳最好seo
  • 网站中文域名到期怎么收录网站
  • 丹东网站优化苹果cms永久免费全能建站程序
  • 两学一做网站是多少钱营销培训方案
  • 白沟17网站一起做网店无线网络优化工程师
  • 用dw做网站图片的基本尺寸seo核心技术排名
  • php做网站后台教程百度用户服务中心人工24小时电话
  • 安岳建设局网站网络搜索引擎有哪些
  • 网站改版一般需要多久百度助手app免费下载
  • 怎么建网站手机版百度指数可以用来干什么
  • 洮南网站建设哪家专业网站关键词推广
  • 重庆网站建设-首选云慧通网站外部优化的4大重点
  • 游戏网站的监管由谁来做谷歌google下载
  • 百度做网站多少钱能做湖南seo推广软件
  • 如何制作网页网站参考网是合法网站吗?
  • 苏州那里可以建网站哪些平台可以发布软文