转换预测目标

Machine LearningMachine LearningBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在机器学习中,在训练模型之前通常需要对预测目标进行转换。这可能包括将多类标签转换为二元指示矩阵,或将非数字标签编码为数字标签等任务。

在本实验中,我们将探索 scikit-learn 中 sklearn.preprocessing 模块提供的各种用于转换预测目标的技术。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到 笔记本 标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/DataPreprocessingandFeatureEngineeringGroup(["Data Preprocessing and Feature Engineering"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/DataPreprocessingandFeatureEngineeringGroup -.-> sklearn/preprocessing("Preprocessing and Normalization") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/preprocessing -.-> lab-71136{{"转换预测目标"}} ml/sklearn -.-> lab-71136{{"转换预测目标"}} end

标签二值化

标签二值化是将多类标签转换为二元指示矩阵的过程。可以使用 LabelBinarizer 类来实现。

from sklearn import preprocessing

## 创建一个 LabelBinarizer 实例
lb = preprocessing.LabelBinarizer()

## 在多类标签列表上拟合 LabelBinarizer
lb.fit([1, 2, 6, 4, 2])

## 获取 LabelBinarizer 学习到的类别
lb.classes_

## 将多类标签列表转换为二元指示矩阵
lb.transform([1, 6])

多标签二值化

多标签二值化是将标签集合的集合转换为指示格式的过程。这可以使用 MultiLabelBinarizer 类来实现。

from sklearn.preprocessing import MultiLabelBinarizer

## 定义一个标签集合的列表
y = [[2, 3, 4], [2], [0, 1, 3], [0, 1, 2, 3, 4], [0, 1, 2]]

## 创建一个 MultiLabelBinarizer 实例并对标签集合列表进行拟合和转换
MultiLabelBinarizer().fit_transform(y)

标签编码

标签编码是将非数字标签转换为数字标签的过程。这可以使用 LabelEncoder 类来实现。

from sklearn import preprocessing

## 创建一个 LabelEncoder 实例
le = preprocessing.LabelEncoder()

## 在非数字标签列表上拟合 LabelEncoder
le.fit(["paris", "paris", "tokyo", "amsterdam"])

## 获取 LabelEncoder 学习到的类别
list(le.classes_)

## 将非数字标签列表转换为数字标签
le.transform(["tokyo", "tokyo", "paris"])

## 将数字标签反向转换回非数字标签
list(le.inverse_transform([2, 2, 1]))

总结

在本实验中,我们学习了如何使用 scikit-learn 中 sklearn.preprocessing 模块提供的各种技术来转换预测目标。这些技术包括标签二值化、多标签二值化和标签编码。