跳至主要内容

监督式机器学习

了解什么是监督式机器学习,它与无监督式机器学习的比较,以及一些关键的监督式机器学习算法如何工作
Moez Ali
Moez Ali

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续继续即表示您接受我们的 使用条款,我们的 隐私政策 ,并且您的数据存储在美国。

Introduction

监督式机器学习是一种机器学习方法,用于学习输入与输出之间的关系。输入被称为特征或“X 变量”,输出通常被称为目标或“y 变量”。同时包含特征与目标的数据称为有标签数据。这是两种主要机器学习类型——监督式与无监督式——之间的关键区别。在本教程中,您将学习:

  • 什么是监督式机器学习
  • 监督式 vs. 无监督式机器学习
  • 半监督式机器学习
  • 监督式机器学习算法:
    • 线性回归
    • 决策树
    • K 近邻
    • 随机森林
    • 朴素贝叶斯
  • 监督式机器学习 Python 代码示例

What is Supervised Machine Learning?

监督式机器学习通过学习输入与输出数据之间的模式和关系来进行预测。它以使用有标签数据为特征。有标签数据是指包含大量“特征”和“目标”示例的数据集。监督学习使用算法从数据集中学习“特征”与“目标”的关系。这个过程称为训练或拟合。

监督学习算法有两种类型:

  1. 分类
  2. 回归

Supervised machine learning

图片来源:https://www.mathworks.com/help/stats/machine-learning-in-matlab.html

Classification

分类是一种监督式机器学习,算法从数据中学习,以预测未来的结果或事件。例如:

某银行可能拥有包含客户信用历史、贷款、投资细节等的数据集,他们可能希望知道某位客户是否会违约。在历史数据中,我们会有特征和目标。

  • 特征是客户的属性,如信用历史、贷款、投资等。
  • 目标表示某位客户过去是否发生过违约(通常用 1 或 0 / True 或 False / Yes 或 No 表示)。

分类算法用于预测离散结果。如果结果只有两种可能取值,如 True 或 False、违约或不违约、是或否,则称为二分类。当结果包含两种以上可能取值时,称为多分类。许多机器学习算法可用于分类任务,其中一些包括:

  • 逻辑回归
  • 决策树分类器
  • K 近邻分类器
  • 随机森林分类器
  • 神经网络

Regression

Regression

回归是一种监督式机器学习,算法从数据中学习,以预测连续值,如销售额、薪资、体重或温度。例如:

对于一个包含房屋特征(如地块大小、卧室数量、浴室数量、社区等)以及房价的数据集,可以训练回归算法来学习这些特征与房价之间的关系。

许多机器学习算法可用于回归任务,其中一些包括:

  • 线性回归
  • 决策树回归器
  • K 近邻回归器
  • 随机森林回归器
  • 神经网络

图片来源:https://static.javatpoint.com/tutorial/machine-learning/images/regression-vs-classification-in-machine-learning.png

Supervised vs. Unsupervised Learning

Type of Data

监督式与无监督式机器学习的主要区别在于,监督学习使用有标签数据。有标签数据同时包含特征(X 变量)和目标(y 变量)。

在使用监督学习时,算法会反复学习在给定特征的情况下预测目标变量,并不断调整以获得合适的响应,从而从训练数据集中“学习”。这个过程称为训练或拟合。与无监督学习相比,监督学习模型通常能产生更准确的结果,但它们在前期需要人工参与以正确标注数据。如果数据集中的标签标注不正确,监督算法就会学到错误的模式。

另一方面,无监督学习模型会自主地从未标注的数据中识别其内在结构。需要注意的是,验证输出变量仍然需要一定程度的人工参与。例如,无监督学习模型可以发现网购客户往往会在同一时间购买同一类别的多件商品。然而,仍需要人工分析师来判断,让推荐系统将商品 X 与商品 Y 配对是否合理。

Use-cases

监督学习的两个主要用例是分类与回归。在这两类任务中,监督算法都从训练数据中学习以进行预测。如果预测变量是离散的,如“是”或“否”、1 或 0、“欺诈”或“非欺诈”,则需要使用分类算法。如果预测变量是连续的,如销售额、成本、薪资、温度等,则需要使用回归算法。

聚类与异常检测是无监督学习中的两个重要用例。想进一步了解聚类,请查看相关文章。如果您希望更深入地学习无监督式机器学习,可以看看 DataCamp 提供的这门有趣的课程。您将学习如何使用 scikit-learn 和 scipy 对未标注数据集进行聚类、变换、可视化并提取洞见。

Goals

监督学习的目标是基于从有标签训练数据集中学习到的模型,对新数据进行结果预测。可预期的结果类型在一开始就以有标签数据的形式已知。无监督学习算法的目标则是在没有显式标签的情况下,从海量数据中提炼洞见。无监督算法同样从训练数据集中学习,但训练数据不包含任何标签。

Complexity

相较于无监督学习,监督式机器学习更为直观。无监督学习模型通常需要更大的训练集才能达到预期效果,因此在计算上更为复杂。

Supervised vs Unsupervised

图片来源:https://www.sharpsightlabs.com/blog/supervised-vs-unsupervised-learning/

Semi-Supervised Machine Learning

半监督学习是一种相对较新且不那么普及的机器学习类型,在训练过程中将少量有标签数据与大量无标签数据相结合。半监督学习介于监督学习(有标签训练数据)与无监督学习(无标签训练数据)之间。

半监督学习在现实世界中有很多应用。在许多领域,缺乏有标签数据。由于获得标签(目标变量)需要人工标注、专业设备或昂贵且耗时的研究,标签往往难以获取。

半监督学习有两种类型:

  1. 传导学习(transductive learning)
  2. 归纳学习(inductive learning)

Semi-supervised

图片来源:https://www.enjoyalgorithms.com/blogs/supervised-unsupervised-and-semisupervised-learning

Supervised Machine Learning Algorithms

本节将介绍一些常见的监督式机器学习算法:

Linear Regression

线性回归是最简单的机器学习算法之一,用于学习在训练数据集中根据特征(自变量)来预测连续值(因变量)。表示效应的因变量的取值会受自变量取值变化的影响。

如果您还记得学校里学过的“最佳拟合直线”,这正是线性回归的本质。根据身高预测一个人的体重就是这一概念的直观例子。

Linear regression

图片来源:http://primo.ai/index.php?title=Linear_Regression

优点

缺点

简单、易于理解和解释

容易过拟合

对线性可分数据表现出色

假设特征与目标变量之间是线性关系。

Logistic Regression

逻辑回归是线性回归的一个特例,其中目标变量(y)是离散/分类型的,如 1 或 0、True 或 False、Yes 或 No、违约或不违约。以对数几率作为因变量。通过 logit 函数,逻辑回归对二元事件发生的概率进行预测。

Logistic Regression

想进一步了解该主题,请查看 DataCamp 上这篇优秀的《理解 Python 中的逻辑回归》教程文章。

优点

缺点

简单、易于理解和解释

易过拟合

输出概率的校准良好

难以捕捉复杂关系

Decision Tree

决策树算法是一种基于概率的树状结构模型,通过不断划分数据,根据前一轮问题的结果来进行分类或做出预测。模型分析数据并对问题给出回答,帮助您做出更明智的选择。

例如,您可以使用一个以“是/否”为答案的决策树,基于诸如鸟类的羽毛、是否会飞或会游、喙的类型等数据要素,来选择某一种鸟类。

Decision Tree

图片来源:https://aigraduate.com/decision-tree-visualisation---quick-ml-tutorial-for-beginners/

优点

缺点

非常直观,易于解释

不稳定——训练数据的微小变化可能导致预测结果差异巨大。

与某些线性模型不同,决策树对数据预处理要求不高。

易过拟合

想进一步学习如何在 Python 中使用基于树的模型进行机器学习,请查看 DataCamp 的这门有趣课程。在课程中,您将学习如何使用 scikit-learn 将树模型和集成方法用于回归与分类。

K Nearest Neighbors

K 近邻是一种统计方法,通过评估一个数据点与另一个数据点的接近程度,来判断它们是否可以被归为一组。数据点之间的接近程度代表它们之间的相似度。

例如,假设我们在图上有两组彼此相对接近的数据点,分别命名为 A 组和 B 组。每组数据点在图上由若干点表示。当我们加入一个新的数据点时,该样本所属的分组将取决于它更接近哪一组。

K-Nearest Neighbors

来源:https://towardsdatascience.com/getting-acquainted-with-k-nearest-neighbors-ba0a9ecf354f

优点

缺点

不对数据作分布假设

训练耗时较长

直观、简单

KNN 在特征数量较少时效果较好,但随着特征数增多,预测准确性会下降。

Random Forest

随机森林与决策树一样,也是建立在树结构之上的算法。不同于只有一棵树的决策树,随机森林使用多棵决策树来进行判断,本质上构成了一片“森林”。

它通过组合多个模型来生成预测,可同时用于分类与回归。

Random Forest

来源:https://blog.tensorflow.org/2021/05/introducing-tensorflow-decision-forests.html

优点

缺点

能够轻松处理数据中的非线性关系。

由于包含多棵树,解释性较差。

随机森林会隐式进行特征选择

对于大型数据集,计算开销较大。

Naive Bayes

贝叶斯定理是一种用于计算条件概率的数学公式,朴素贝叶斯则是该公式的应用。给定另一事件已经发生,某一结果发生的概率称为条件概率。

它通过计算每个类别的概率来进行预测,并认为概率最高的类别就是最有可能发生的类别。

Naive Bayes

图片来源:https://www.kdnuggets.com/2019/10/introduction-artificial-neural-networks.html

优点

缺点

算法非常快速。

假设所有特征彼此独立。

简单、易于实现

会遇到“零频问题”:如果某一分类型变量在训练集中未出现,该类别会被赋予零概率。

Supervised Machine Learning Python Code Example

本部分我们将在 Python 中使用scikit-learn在一个虚构数据集上训练逻辑回归(分类)模型。点击此处查看完整Notebook。

```

# create fake binary classification dataset with 1000 rows and 10 features

from sklearn.datasets import make_classification

X, y = make_classification(n_samples = 1000, n_features = 10, n_classes = 2)




# check shape of X and y

X.shape, y.shape




# train test split

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)




# import and initialize logistic regression model

from sklearn.linear_model import LogisticRegression

lr = LogisticRegression()




# fit logistic regression model

lr.fit(X_train, y_train)




# generate hard predictions on test set

y_pred = lr.predict(X_test)

y_pred




# evaluate accuracy score of the model

from sklearn.metrics import accuracy_score

accuracy_score(y_test, y_pred)

```

如果您希望用 R 学习监督式机器学习,请查看 DataCamp 的这门《R 语言中的监督学习》课程。在本课程中,您将学习使用 R 编程语言完成分类任务的机器学习基础。

Conclusion

近年来,机器学习彻底改变了我们的商业运作方式。区别于其他自动化策略的重大创新在于,它摆脱了基于规则的编程。借助监督式机器学习技术,工程师无需明确编写机器以特定方式解决问题的规则,就能利用数据完成任务。

在监督式机器学习中,某个问题对未来数据的期望解可能未知,但在历史数据集中可能已存在并被记录。监督学习算法的任务就是从历史数据中学习这种关系,从而在未来预测某个结果、事件或数值。

本文帮助您建立了对监督学习的基础认识,并了解了它与无监督学习的不同之处。我们还回顾了监督学习中的几种常见算法。不过,仍有许多内容未涉及,例如模型评估、交叉验证或超参数调优。如果您希望深入学习这些主题并进一步提升技能,请查看以下有趣课程:

Frequently Asked Questions

What are two common types of supervised machine learning?

分类与回归是两种常见的监督学习类型。分类用于预测离散结果,例如“通过”或“未通过”、“True”或“False”、“违约”或“不违约”。而回归用于预测数量或连续值,例如销售额、薪资、成本等。

What is the primary difference between supervised and unsupervised learning?

监督与无监督学习的主要区别在于数据。监督学习必须有有标签数据,而无监督学习不需要有标签数据。

Is time series forecasting supervised learning?

是的,时间序列预测属于监督学习,我们在给定一串数值的情况下预测下一个值。这是一个监督学习任务。

Is Natural Language Processing (NLP) supervised or unsupervised learning?

两者都可能,取决于问题的设定方式。例如,预测文本文档的类型很可能是监督任务;而如果用例是根据文档所含文本将相似文档分组,则该用例称为主题建模(Topic Modeling),这完全是无监督的。

Is Clustering supervised or unsupervised learning?

聚类任务不需要有标签数据,因此属于无监督学习。

Are there different algorithms for supervised and unsupervised learning?

是的,二者的算法完全不同。

What are some common algorithms for supervised learning?

线性回归、决策树、神经网络、支持向量机是一些常见的监督学习算法。

主题