加载数据

星博讯 AI基础认知 1

监督学习基础知识

监督学习是机器学习中最核心、应用最广泛的范式之一,以下是关键概念的系统梳理:

加载数据-第1张图片-星博讯网络科技知识-SEO优化技巧|AI知识科普|互联网行业干货大全

核心定义

监督学习:从已标注的训练数据(输入-输出对)中学习一个映射函数,用于预测新数据的输出。

  • 输入:特征(feature)
  • 输出:标签/目标值(label/target)
  • 目标:最小化预测值与真实值之间的误差

两大主要任务

任务类型 输出形式 经典问题 常用指标
分类 离散类别 垃圾邮件检测、图像识别、疾病诊断 准确率、精确率、召回率、F1-score、ROC-AUC
回归 连续数值 房价预测、销量预测、温度预测 均方误差(MSE)、平均绝对误差(MAE)、R²分数

基本流程

  1. 数据准备:收集带标签的数据集
  2. 数据预处理:清洗、特征工程、归一化/标准化
  3. 划分数据集:训练集(训练模型)、验证集(调参)、测试集(最终评估)
  4. 选择模型:根据问题选择算法
  5. 训练模型:用训练集优化模型参数
  6. 模型评估:用测试集评估泛化性能
  7. 超参数调优:使用验证集调整模型配置
  8. 预测部署:对新数据进行预测

常用算法概览

线性模型

  • 线性回归:连续值预测,最小化平方误差
  • 逻辑回归:二元分类,输出概率(实际是分类算法)
  • 正则化变体:Ridge(L2)、Lasso(L1)回归防止过拟合

树模型

  • 决策树:基于特征阈值递归划分
  • 随机森林:多棵决策树的集成,减少过拟合
  • 梯度提升树:GBDT、XGBoost、LightGBM,逐步修正误差

支持向量机(SVM)

  • 寻找最大化间隔的超平面
  • 可使用核函数处理非线性问题

神经网络

  • 多层感知机:基础神经网络
  • 深度学习:CNN(图像)、RNN/LSTM(序列)、Transformer(NLP)

其他重要方法

  • k近邻:基于距离的惰性学习
  • 朴素贝叶斯:基于贝叶斯定理,假设特征独立

关键概念详解

损失函数

衡量模型预测误差的函数:

  • 回归:均方误差(MSE)、平均绝对误差(MAE)
  • 分类:交叉熵损失(Cross-Entropy)、Hinge损失(SVM)

过拟合与欠拟合

  • 欠拟合:模型过于简单,无法捕捉数据规律(训练和测试误差都高)
  • 过拟合:模型过于复杂,过度拟合训练数据(训练误差低,测试误差高)

偏差-方差权衡

  • 偏差:模型预测值与真实值的平均差异(欠拟合程度)
  • 方差:模型对训练数据变化的敏感度(过拟合程度)
  • 总误差 = 偏差² + 方差 + 不可约误差

正则化

防止过拟合的技术:

  • L1正则化(Lasso):产生稀疏特征权重
  • L2正则化(Ridge):缩小所有权重
  • Dropout:神经网络中随机丢弃神经元

交叉验证

评估模型泛化能力的可靠方法:

  • k折交叉验证:将数据分为k份,轮流用k-1份训练,1份验证
  • 留一法:k等于样本数
  • 分层k折:保持每折中类别比例一致

模型评估指标

分类任务

  • 混淆矩阵:TP、TN、FP、FN
  • 准确率:(TP+TN)/(TP+TN+FP+FN) - 样本均衡时适用
  • 精确率:TP/(TP+FP) - 关注假阳性
  • 召回率:TP/(TP+FN) - 关注假阴性
  • F1-score:精确率和召回率的调和平均
  • ROC曲线与AUC:评估分类器在不同阈值下的性能

回归任务

  • 均方误差:MSE = Σ(y_i - ŷ_i)²/n
  • 均方根误差:RMSE = √MSE
  • 平均绝对误差:MAE = Σ|y_i - ŷ_i|/n
  • R²决定系数:1 - (残差平方和)/(总平方和)

实用建议

  1. 数据质量优先:高质量数据比复杂算法更重要
  2. 从简单模型开始:先尝试线性模型等简单方法作为基准
  3. 理解业务需求:选择与业务目标匹配的评估指标
  4. 关注特征工程:特征选择、构造、变换常带来最大提升
  5. 考虑集成方法:结合多个模型往往能提升性能
  6. 持续验证:使用交叉验证确保模型稳定性

代码示例(逻辑回归)

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.datasets import load_iris
data = load_iris()
X, y = data.data, data.target
# 划分数据集(仅使用两类简化示例)
X = X[y != 2]
y = y[y != 2]
# 划分训练测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建并训练模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测与评估
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))

监督学习为现实世界的预测问题提供了系统解决方案,掌握这些基础知识是深入机器学习和人工智能领域的必备前提,建议通过实际项目实践,结合理论理解,逐步建立完整的知识体系。

标签: 加载数据 数据导入

抱歉,评论功能暂时关闭!

微信咨询Xboxun188
QQ:1320815949
在线时间
10:00 ~ 2:00