什么是监督学习?

545 阅读3分钟

监督学习是一种机器学习方法,模型通过带标签的数据进行学习。这意味着每个数据点都包括:

  • 输入(特征) :用于进行预测的信息(例如,电子邮件的文本)。
  • 输出(标签) :模型旨在预测的正确答案(例如,“垃圾邮件”或“非垃圾邮件”)。

真实生活中的例子

想象一下教孩子识别水果

  1. 给孩子看苹果和橙子的图片(输入),并告诉他们名字(标签)。
  2. 随着时间的推移,孩子学会识别他们以前没见过的水果。

这就是监督学习在起作用

监督学习的类型

1. 分类

预测类别(例如,“垃圾邮件”或“非垃圾邮件”)。

例子:一个电子邮件分类器,用于确定电子邮件是否是垃圾邮件。

2. 回归

预测连续值(例如,房价)。

例子:根据房屋的面积和位置预测房屋的价格

监督学习是如何工作的

监督学习涉及一个结构化的过程,帮助机器从数据中学习。让我们来分解一下:

第一步:数据收集

需要带标签的数据,其中每个示例都包含输入和正确的输出

例如,在垃圾邮件检测中,你会收集被标记为“垃圾邮件”或“非垃圾邮件”的电子邮件

你的数据越多样化和具有代表性,你的模型表现就会越好。

第二步:特征工程

对于垃圾邮件检测,特征可能包括:

  • 电子邮件中特定单词的频率
  • 电子邮件的长度
  • 发件人的域名

选择正确的特征是提高模型准确性的关键

第三步:模型训练

在训练过程中,算法使用带标签的数据学习将输入映射到输出

流行的监督学习算法包括:

  • 线性回归:用于预测连续值(例如,房价)。
  • 逻辑回归:用于分类任务(例如,垃圾邮件检测)。
  • 支持向量机(SVMs) :在高维空间中表现出色。

第四步:模型评估

使用测试数据评估模型,以检查其准确性。

用于评估的指标包括:

  • 精确度
  • 召回率
  • F1分数

评估方法取决于任务和数据集

第五步:预测

一旦训练和测试完成,模型就可以对新数据进行预测,例如识别垃圾邮件

示例代码

以下是一个使用Scikit-learnPython中的简单监督学习示例:

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris

# 加载数据集
data = load_iris()
X, y = data.data, data.target

# 分割为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练模型
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

# 进行预测
y_pred = model.predict(X_test)

# 评估准确性
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy * 100:.2f}%")

监督学习的实际应用

监督学习改变了各行各业。以下是它大放异彩的几个领域:

  • 医疗保健:通过分析医学扫描或血液检测来诊断疾病如癌症
  • 金融:标记欺诈交易,预测股票价格,优化信用评分
  • 零售:个性化客户体验,预测产品需求,优化库存
  • 自然语言处理(NLP) :为聊天机器人、情感分析和语言翻译提供支持。
  • 自动驾驶车辆:识别行人、交通标志和障碍物,以实现更安全的驾驶。

原文:dev.to/thenomadeve…