【机器学习】机器学习的基本分类-监督学习(Supervised Learning)

监督学习是一种通过已有的输入数据(特征)和目标输出(标签)对模型进行训练的机器学习方法,旨在学到一个函数,将输入映射到正确的输出。


1. 监督学习概述

监督学习需要:

  • 输入数据 (特征):X,如图片、文本、数值等。
  • 输出标签y,即目标值,如图片的分类标签、房价等。
  • 目标:通过训练模型,使其能够预测新数据的标签。

公式表示

从训练数据 (X, y) 中学到一个函数 f(x),使得对于新输入 x',预测值 f(x') 与真实值 y' 尽可能接近。


2. 常见任务类型

分类任务

目标:预测离散类别标签。

  • 示例:垃圾邮件检测(垃圾邮件/非垃圾邮件)、图片分类(猫/狗/鸟)。
  • 常见评价指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 分数等。
回归任务

目标:预测连续值。


3. 数据准备与预处理

3.1 数据收集
  • 数据来源:数据库、日志文件、公开数据集(如 Kaggle)。
  • 注意:确保数据多样性和质量。
3.2 数据清洗
  • 处理缺失值:均值填充、中位数填充或删除缺失数据。
  • 处理异常值:通过箱线图、标准差等方法检测并处理。
3.3 特征工程
  • 标准化/归一化:对数值型特征进行标准化,使其均值为 0,标准差为 1。
  • 编码:对类别型特征用独热编码(One-Hot Encoding)或标签编码(Label Encoding)。
  • 特征选择:删除低相关性或多余的特征,提高模型性能。
3.4 数据划分
  • 划分为训练集、验证集和测试集(例如 60%/20%/20%)。

4. 模型训练与评估

4.1 模型选择

根据任务选择合适的算法,如:

  • 分类:逻辑回归、支持向量机(SVM)、决策树、随机森林等。
  • 回归:线性回归、岭回归、Lasso 回归、梯度提升树(GBDT)等。
4.2 训练模型

通过优化损失函数(如均方误差、交叉熵)调整模型参数。

4.3 模型评估
  • 在验证集上评估性能,通过超参数调优(如学习率、正则化强度)优化模型。
  • 避免过拟合:使用正则化(L1/L2)、Dropout 或限制树深度等手段。

5. 常见算法及实现

以下是分类与回归常用算法的 Python 实现:

5.1 分类算法
  • 逻辑回归(Logistic Regression)
python 复制代码
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
  • 支持向量机(SVM)
python 复制代码
from sklearn.svm import SVC
model = SVC(kernel='linear')
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
5.2 回归算法
  • 线性回归
python 复制代码
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
  • 梯度提升树(GBDT)
python 复制代码
from sklearn.ensemble import GradientBoostingRegressor
model = GradientBoostingRegressor()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

6. 案例分析

案例 1:分类问题(垃圾邮件检测)
  1. 数据:下载带有邮件内容及是否垃圾的标注数据集。
  2. 特征提取:对文本数据进行向量化(如 TF-IDF)。
  3. 模型训练:使用逻辑回归模型。
  4. 评估:计算准确率、F1 分数。
案例 2:回归问题(房价预测)
  1. 数据:房屋面积、卧室数量、地理位置等特征。
  2. 预处理:标准化数值型特征,编码类别型特征。
  3. 模型训练:使用随机森林回归模型。
  4. 评估:计算 MSE 和 R²。

7. 监督学习的挑战与改进

  1. 过拟合与欠拟合

    • 解决过拟合:增加数据量、使用正则化、减少模型复杂度。
    • 解决欠拟合:增加特征、使用更复杂模型。
  2. 数据不平衡

    • 分类问题中类别分布不均。
    • 解决方法:采样技术(过采样/下采样)、使用 F1 分数评估。
  3. 噪声数据与异常值

    • 影响模型性能。
    • 解决方法:清洗数据、使用稳健算法。
  4. 模型解释性

    • 如深度学习模型不易解释。
    • 解决方法:使用可解释性工具(如 SHAP、LIME)。

8. 工具与框架

  1. 数据预处理:pandas, numpy
  2. 机器学习:scikit-learn, xgboost, lightgbm
  3. 可视化:matplotlib, seaborn

通过动手实践小项目(如图片分类或简单预测任务),可以快速理解和掌握监督学习的基本原理和应用技巧!如果有具体需求,我可以进一步提供代码和案例指导。

相关推荐
时光追逐者14 分钟前
MongoDB从入门到实战之MongoDB快速入门(附带学习路线图)
数据库·学习·mongodb
一弓虽19 分钟前
SpringBoot 学习
java·spring boot·后端·学习
青松@FasterAI24 分钟前
【程序员 NLP 入门】词嵌入 - 上下文中的窗口大小是什么意思? (★小白必会版★)
人工智能·自然语言处理
AIGC大时代39 分钟前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
硅谷秋水40 分钟前
GAIA-2:用于自动驾驶的可控多视图生成世界模型
人工智能·机器学习·自动驾驶
偶尔微微一笑1 小时前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器
深度之眼1 小时前
2025时间序列都有哪些创新点可做——总结篇
人工智能·深度学习·机器学习·时间序列
晓数1 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
jndingxin1 小时前
OpenCV 图形API(60)颜色空间转换-----将图像从 YUV 色彩空间转换为 RGB 色彩空间函数YUV2RGB()
人工智能·opencv·计算机视觉
genggeng不会代码2 小时前
用于协同显著目标检测的小组协作学习 2021 GCoNet(总结)
学习