Skip to content

机器学习笔记

Jinxin edited this page Sep 9, 2022 · 1 revision

https://www.bilibili.com/video/BV15A4y1X7K1

b 站课程笔记

  1. 训练样本
  2. 特征抽取
  3. 学习函数
  4. 预测

库:

  • Numpy:科学计算库(矩阵……)
  • Pandas:数据分析处理库(数据分析处理)
  • Matplotlib:数据可视化库
  • Scikit-learn:机器学习库(算法)

线性回归:

  • 标签值:y
  • 误差值:符合高斯分布,
  • O = (xtx)-1xty(p4)

逻辑回归

  • Sigmoid 函数:1/(1+e-z), z=Otx

梯度下降

决策树(喜欢打篮球?)

  • 根结点
  • 非叶子结点
  • 叶子节点
  • 分支(branched)

训练阶段:训练集 -> 构造决策树

熵:一个物体内部的混乱程度,不确定性

熵值高,不确定性越高,熵值低,不确定性越低

熵 = - 求和(piln(pi))

Gini系数 = Gini(p) = 求和(pk(1-pk)) = 1-求和(pk^2)

构造树的基本思想:随着树深度的增加,节点的熵迅速的降低。越快越好,这样可以得到高度最矮的决策树。

ex. 14 行数据,每个数据 4 个特征。对每个特征的每个 group by 的属性值,计算总熵值

信息增益 Gain:原有数据熵值 - 每个特征的熵值

  • outlook 的熵: 5/14 * 0.971 + 4/14 * 0 + 5/14 * 0.971 = 0.693,Gain(outlook) = 0.94 - 0.693 = 0.247
  • gain(temperature) = 0.029
  • gain(humidity) = 0.152
  • gain(windy) = 0.048

gain(outlook) 最大,所以根结点选取 outlook

gain 会有一个问题,比如引入 id 这个列,计算出来的 熵 = 0,然后 gain(id) 最大,结果是按照 id 做根结点,但是这样并不科学

  • ID3: 信息增益
  • c4.5:信息增益率:信息增益 / 自身的熵值,解决 ID3 的问题

连续值 -> 离散值,选取区间

避免决策树很大:

  • 预剪枝:构建过程时,提前停止
    • 指定高度
    • 指定叶子节点最少样本数量
  • 后剪枝:构建好后,才开始裁剪
    • 让叶子结点样本数尽可能大

随机森林:多棵决策树

  • 样本选择随机性(随机 0.6 的样本,可能会避免掉异常数据
  • 特征选择随机性(筛选掉效果不好的特征)

深度学习

  1. 收集数据并给定标签
  2. 训练分类器
  3. 测试、评估

K-近邻:周围谁比较多,就属于谁。不需要训练,训练时间复杂度为 0

Clone this wiki locally