本文主要是介绍标签的独热编码——LabelBinarizer(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
[这是一个简单的备忘录]
LabelBinarizer()是sklearn.preprocessing中的一个函数,通过这个函数可以实现机器学习中国对图像标签的独热编码。
独热编码是一种二进制编码,通俗的讲独热编码主要满足以下几个条件:
- 图像有n类,则编码长度为n
- 对第i类编码,只有第i位置1,其余为0 ( 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n)
在使用LabelBinarizer()时,首先要申明一个变量作为其载体
(具体名词我不知道) ,再分别调用fit与transform函数实现。
for example:
import glob
from sklearn.preprocessing import LabelBinarizer
DATA_DIR = 'D:/Data/'
# 总共三个类别,每个类别下有十张图片
images = glob.glob(DATA_DIR + 'fruits_photos/*/*.jpg')
images = [x.replace('\\', '/') for x in images]
labels = [x.split('/')[3] for x in images]unique_labels = set(labels)# 将标签转换二进制格式
encoder = LabelBinarizer()
print(encoder)
encoder.fit(labels)
y = encoder.transform(labels).astype(float)
print(y)
输出结果为:
LabelBinarizer()
[[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[1. 0. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]
[0. 0. 1.]]
这篇关于标签的独热编码——LabelBinarizer()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!