-
Notifications
You must be signed in to change notification settings - Fork 0
机器学习笔记
Jinxin edited this page Sep 9, 2022
·
1 revision
b 站课程笔记
- 训练样本
- 特征抽取
- 学习函数
- 预测
库:
- 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 的样本,可能会避免掉异常数据)
- 特征选择随机性(筛选掉效果不好的特征)
深度学习
- 收集数据并给定标签
- 训练分类器
- 测试、评估
K-近邻:周围谁比较多,就属于谁。不需要训练,训练时间复杂度为 0