我们已经知道,某种格式的数据对于机器学习算法是必需的。 另一个重要的要求是,在将数据作为机器学习算法的输入发送之前,必须正确标记数据。 例如,如果所说的分类,那么数据上会有很多标记。 这些标记以文字,数字等形式存在。与 sklearn 中的机器学习相关的功能期望数据必须具有数字标记。 因此,如果数据是其他形式,那么它必须转换为数字。 这个将单词标签转换为数字形式的过程称为标记编码。
标记编码步骤
按照以下步骤在 Python 中对数据标记进行编码 -
第1步 - 导入有用的软件包
如果使用 Python,那么这将是将数据转换为特定格式(即预处理)的第一步。 它可以做到如下 -
import numpy as np
from sklearn import preprocessing
第2步 - 定义样本标签
导入包后,我们需要定义一些样本标签,以便可以创建和训练标签编码器。 现在将定义以下样本标签 -
## Sample input labels
input_labels = ['red','black','red','green','black','yellow','white']
第3步 - 创建和训练标签编码器对象
在这一步中,我们需要创建标签编码器并对其进行训练。 以下是 Python 代码的实现 -
## Creating the label encoder
encoder = preprocessing.LabelEncoder()
encoder.fit(input_labels)
以下是运行上面的 Python 代码后的输出 -
LabelEncoder()
第4步 - 通过编码随机排序列表来检查性能
此步骤可用于通过编码随机排序列表来检查性能。 下面的 Python 代码可以做同样的事情 -
## encoding a set of labels
test_labels = ['green','red','black']
encoded_values = encoder.transform(test_labels)
print("\nLabels =", test_labels)
标签将如下打印 -
Labels = ['green', 'red', 'black']
现在,可以得到编码值列表,即将文字标签转换为数字,如下所示 -
print("Encoded values =", list(encoded_values))
输出结果打印如下 -
Encoded values = [1, 2, 0]
Shell
第5步 - 通过解码一组随机数来检查性能 -
通过对随机数字集进行解码,可以使用此步骤来检查性能。 下面的 Python 代码也可以做同样的事情 -
## decoding a set of values
encoded_values = [3,0,4,1]
decoded_list = encoder.inverse_transform(encoded_values)
print("\nEncoded values =", encoded_values)
现在,将被打印如下 -
Encoded values = [3, 0, 4, 1]
print("\nDecoded labels =", list(decoded_list))
现在,解码值将被打印如下 -
Decoded labels = ['white', 'black', 'yellow', 'green']
标记与未标记数据
未标记的数据主要由自然或人造物体的样本组成,这些样本可以很容易从现实世界中获得。 它们包括音频,视频,照片,新闻文章等。
另一方面,带标签的数据采用一组未标记的数据,并用一些有意义的标签或标签或类来扩充每片未标记的数据。 例如,如果有照片,那么标签可以基于照片的内容放置,即它是男孩或女孩或动物或其他任何照片。 标记数据需要人类专业知识或判断一个给定的未标记数据。
有很多情况下,无标签数据丰富且容易获得,但标注数据通常需要人工/专家进行注释。 半监督学习尝试将标记数据和未标记数据组合起来,以建立更好的模型。