机器学习导论-机器学习基础

一、人工智能概念

  • 人工智能

    • 分类
      • 机器学习
        • 深度学习
      • 数据挖掘
      • 模式识别
    • 落地
      依靠机器学习
  • 数据
    即观测值

  • 信息
    可信的数据

  • 数据分析
    从数据到信息的整理、筛选和加工过程

  • 数据挖掘
    对信息进行价值化的分析

  • 用机器学习的方法进行数据挖掘

    • 机器学习为方法
    • 数据挖掘为任务
    • 模式识别也是任务
  • 机器学习

    • 机器学习=CPU+GPU+数据+算法
    • 研究如何通过计算的手段利用经验改善系统自身的性能的学科
    • 人工智能核心
    • 数据+算法=机器学习模型
    • 判断问题是否为机器学习问题
      • 非机器学习问题
        • 确定性问题
        • 基础统计问题
      • 机器学习问题
        • 有预测的过程
    • 机器学习学习的是什么?
      • 模型及其参数
  • 基于规则的学习

    • 硬编码(人工)
  • 基于模型的学习

    • 拟合模型(智能)

二、机器学习基础(一)

数据集

  • 对比
    • 关系型数据库
      • 行:记录
      • 列:字段
    • 机器学习
      • 行:样本或实例
      • 列:
        • 特征属性
        • 类别标签
  • 先统计样本、属性、类别数量
  • 特征或属性空间
    • 定义
      • 由特征张成的空间
    • 特征或属性向量
      • 组成特征或属性空间中的样本点(行)
    • 特征或属性值
      • 组成特征向量中的值
  • 包含
    • 样本X
    • 标签Y
  • 训练/测试集划分比例
    • 6:4
    • 7:3
    • 8:2
  • 非数值特征
    • 标签编码(label encoder)
      0、1、2……
    • 独热码(onehot encoder)
      如001、010、100

基本训练流程

  • 训练集训练模型
  • 测试集通过模型得到预测结构y_pred

误差(error)/损失函数/误差函数/目标函数

  • 简单误差:y-y_pred
  • 绝对误差:|y-y_pred|
  • 平方误差:(y-y_pred)**2
  • 训练误差:训练集
  • 测试误差:测试集
  • 泛化误差:新的数据集

性能矩阵/混淆矩阵/分类预测结果判断矩阵(真实值-预测值关系)

  • True Positive(TP): Positive - Positive
  • False Negative(FN): Positive - Negative
  • False Positive(FP): Negative - Positive
  • True Negative(TN): Negative - Negative

性能评价标准

  • 准确率 Accuracy = (TP + TN) / ALL
  • 精确率 Precision = TP / (TP + FP)
  • 召回率 Recall = 真正率 (true positive rate) = TP / (TP + FN)
  • 假正率 FPR(false positive rate) = FP / (FP + TN)
  • F1-Score(F1值)
    • 精确率和召回率的调和平均
    • F1_score = 2/(1/precision + 1/ recall) = 2 * pre * recall / (recall + precision)
  • ROC(受试者工作)曲线
    • 二分类
    • x轴:FPR
    • y轴:TPR
    • 标准:AUC(area under curve)\in [0, 1](一般认为大于随机分类的0.5,效果比较好)

概念学习

  • 关于布尔函数的学习方式
  • f:X(特征集)->Y(类标签)

问题分类

  • 按结果类型分
    • 分类:离散型
    • 回归:连续型
  • 按有无标签分
    • 监督学习(supervised learning):训练集有标记
    • 半监督学习(semi-supervised learning):部分样本有标记
    • 无监督学习(unsupervised learning):训练集无标记
    • 监督学习
  • 任务驱动
  • 回归算法
    • 简单线性回归
    • 多元线性回归
    • Lasso回归
    • Ridge回归
    • ElasticNet
  • 分类算法
    • 决策树
    • KNN
    • SVM
    • Perception & NeuralNetwork
    • Bayes
    • LogisticRegression

无监督学习

  • 数据驱动
  • 聚类
    • 在没有类标签的情况下,根据特征相似性或相异性进行分类
  • 特征降维
    • 根据算法将高维特征降为低维特征
    • 区别于特征选择,降维得到的低维特征不具有可解释性

半监督学习

  • 廉价
  • 区别于主动学习:依赖于人工标记标签
  • 聚类假设
    将有标记数据和无标记数据混合在一起,通过特征之间的相似性将样本分成若干个组或若干个簇,使得组内相似性较大,组间相异性较大。将样本点都进行分组,此时分组的样本点即包含了有标签的和无标签的。根据有标签的样本,按少数服从多数的投票原则对没有标记的样本添加标记,从而全部转化为标记数据
  • 分类
    • 纯半监督学习
    • 直推学习

强化学习

  • 对环境做出反应
  • 主要解决连续决策的问题

迁移学习

  • 对于两相关联领域,一个领域数据集小,一个领域数据集大,用大数据集训练的模型迁移到数据小的领域做预测
  • 模型适应性问题

三、机器学习基础(二)

  • 机器学习三要素

    • 机器学习模型 = 数据 + 算法 + 策略
      • 算法
        • 提供求解参数的方法
        • 解析解:平常方法
        • 最优解:梯度下降法(最优法)、牛顿法
      • 策略
        • 损失函数
    • 模型学习模型 = 模型 + 算法 + 策略
      • 模型
        • 决策函数
          • 输出0或1
        • 条件概率函数
          • 按概率输出
  • 如何设计机器学习系统

    • 首先确定问题
      • 是否为机器学习问题
      • 监督还是无监督?
    • 拿到数据从以下两个角度思考
      • 从数据角度
        • 监督
        • 无监督
        • 半监督
      • 从业务角度
        • 根据业务部门指定的业务方向整理数据进行建模
    • 特征工程
      • 对特征处理
      • 对数据处理
    • 模型 = 数据 + 选择的算法
    • 通过测试集测试模型,给定最终模型
    • 若有新数据,通过模型给出预测结果
  • 模型泛化

    • 好的泛化能力
      • 指模型不但在训练数据集上表现效果很好,对于新数据的适应能力也有很好的效果
    • 过拟合
      • 模型在训练数据上表现良好,在未知数据或测试集上表现差
      • 出现原因
        • 模型过于复杂、数据不纯、训练数据太少
      • 出现场景
        • 模型训练中后期
      • 解决办法
        • 增加正则罚项
        • 重新清理数据
        • 增加训练数据量
        • 对样本或特征进行抽样
        • dropout(深度学习、随机丢弃)
    • 欠拟合
      • 在训练数据和测试数据甚至未知数据上表现都很差
      • 出现原因
        • 模型过于简单
      • 出现场景
        • 模型训练初期
      • 解决办法
        • 增加模型的多项式的项
        • 增加模型多项式项的次数
        • 减少正则罚项
    • 奥卡姆剃刀原则
      • 如果具有相同泛化误差的模型,选择较为简单的模型(防止过拟合)
  • 损失的数学思考

    • 损失函数越小越好
      -》损失函数的期望越小越好,p(x,y)越不易求解
      -》经验风险最小化,平均损失
      -》结构风险最小化,在经验风险的基础上增加正则罚项

    • 随着模型复杂度的增加,模型在训练集上的误差越小,但模型在测试集上的误差先减小再增加。这就需要找到一个合适的点,该点使模型具有很好的泛化误差能力,因此得到结构风险最小化的点即为最佳点,该点对应的参数即所求参数

  • 正则化

    • 目的:降低模型复杂度
    • l1正则: + λ∣w∣
    • l2正则:+ λ|w|^2
  • 交叉验证

    • 简单交叉验证
      • 按比例分割数据集
    • k折交叉验证
      • 将数据集平均切成k等分,每次取一份作为测试集,其余为训练集,训练k个模型,得到平均准确率
    • 留一验证
      • 有多少样本就分成多少份的特殊k折交叉验证
posted @ 2020-05-12 22:00  败家小林  阅读(307)  评论(0编辑  收藏  举报