机器学习学习路线及知识汇总

机器学习基础知识

  • 前言
  • 思维导图
  • 相关问题剖析以及python实现代码
    • 分类
      • KNN算法
        • 原理
        • 步骤
        • 参数
          • 曼哈顿距离公式
          • 欧氏距离公式
      • 贝叶斯
        • 原理
        • 步骤
        • 贝叶斯分类算法的种类及作用
          • 高斯贝叶斯分类器(Gaussian)
          • 多项式贝叶斯分类器(Multinomial)
          • 伯努利贝叶斯分布(Bernoulli)
        • 代码及解析
      • 决策树
        • 与KNN和贝叶斯比较
        • 代码及解析
      • 支持向量机(SVM)
        • 线性支持向量机(二分类)的原理
        • 高斯核支持向量积参数及作用
      • 模型评估
        • 代码及解析
    • 回归
      • KNN实现回归
      • 代码及解析
    • 集成学习
      • 目的
      • 实现
        • 代码及解析
    • 聚类(聚类圆形数据)
      • k均值聚类
        • 代码及解析
      • 混合高斯聚类(聚类椭圆形数据)
      • DBSCAN聚类(聚类任何数据)
        • 代码及解析
    • 降维
      • 协方差与奇异值分解
        • 数学概念分析
      • 代码实现
  • 机器学习与传统技术的区别
    • 1)用数学方法解决物理问题(求解方程,分析系统状态)
    • 2)优化算法(配置系统)
    • 3)机器学习(数据的映射关系)
    • 4)深度学习
  • 交叉验证
  • 结尾

前言

写了一个机器学习基础知识思维导图以及学习路线及规划,每个知识点下都有相关的博客链接去讲解知识

思维导图

机器学习学习路线及知识汇总_第1张图片

相关问题剖析以及python实现代码

分类

KNN算法

原理

选取距离(有多种选择,可以选用欧氏距离)最近的k个点,其中占数量最多的类别就认为是新样本的类别(物以类聚,人以群分)

步骤
1)数据归一化
2)计算新样本与训练样本之间的距离
3)根据距离对类别进行排序
4)对前k个样本进行统计
5)选取前k个中数量最多的类别作为新样本的类别
参数
k:选取的最邻近的点数,k越小越容易过拟合,k越大越容易欠拟合
p:距离度量一般来讲当他为1时是曼哈顿距离,为2时是欧氏距离
如果p做距离加权,p会和k一起影响模型拟合程度
曼哈顿距离公式

∑ i = 1 n ∣ x i − y i ∣ \sum_{i=1}^n \mid x_i-y_i \mid i=1nxiyi

欧氏距离公式

∑ i = 1 n ( x i − y i ) 2 \sqrt {\sum_{i=1}^n (x_i-y_i)^2} i=1nxiyi2

贝叶斯

原理

根据先验概率求后验概率

步骤
1)先算正常邮件和正常邮件中词出现的概率(先验概率)
2)根据先验概率推后验概率
贝叶斯分类算法的种类及作用
高斯贝叶斯分类器(Gaussian)

适用于样本数据是高斯分布(正态分布)
特征数据大多数是连续值(主要特征)

多项式贝叶斯分类器(Multinomial)

样本数据分布是多项式分布(多个离散值)
特征数据大部分是离散值(主要特征)

伯努利贝叶斯分布(Bernoulli)

伯努利分布(二项分布)

代码及解析

结合垃圾邮件识别,详细介绍贝叶斯分类的流程

通俗易懂的机器学习——筛选垃圾邮件(贝叶斯分类)

决策树

与KNN和贝叶斯比较
KNN 贝叶斯 决策树
训练 快(不用训练) 适中(算概率) 较慢(算信息熵或基尼系数)
预测 慢(与每一个实例进行距离比较) 适中(计算概率) 快(相当于if-else语句)
调参 k,p 不用调 7~8个参数(容易过拟合)
归一化 × ×
代码及解析

通俗易懂的机器学习——简易决策树

上述的决策树可以很好表述决策树的工作原理,但是不能解决在连续取值区间内的问题,所以做了以下改进

通俗易懂的机器学习——根据CART算法使用python手写决策树

支持向量机(SVM)

线性支持向量机(二分类)的原理
1)分界线距离两个类别样本点尽可能远
2)距离分界线最近的两个类别的样本点构成的平行线直接的距离(Margin)最大
3)最近的点到分界线的距离d最大(支持向量)
4)找到分界线的参数使d尽可能地大,同时满足所有样本点不在平行线之间
高斯核支持向量积参数及作用
1)C:设置对误差的容忍度(惩罚度),C越小容忍度越强,C越大容忍度越弱(容易过拟合)
2)gamma(γ):设置高斯核的幅宽(幅度),gamma小意味着方差大,即幅度宽(影响范围大)

模型评估

代码及解析

多种分类以及模型评估

回归

KNN实现回归

1)归一化
2)算新样本与训练样本之间的距离
3)对距离排序,取前k个
4)对前k个y值加权计算
5)加权计算的值作为预测值

代码及解析

端到端的机器学习项目(求加州住房价格中位数)

集成学习

目的

1)综合不同的模型的学习能力,从而产生更好的模型
2)将原有模型中欠拟合或过拟合弱化对模型的影响

实现

bagging:用不同的样本或特征训练不同的模型(放回取样)
bosting:每次训练模型都强化训练上一次模型出错的样本,然后逐次递进训练集成(递进增强)

代码及解析

通俗易懂的机器学习——集成学习

聚类(聚类圆形数据)

k均值聚类

1)随机生成k个中心点(随机分类)
2)所有样本点分别计算与k个中心点的距离
3)样本距离哪个中心点近就属于哪一类
4)对新分好类的样本,重新计算中心点
5)重复2~4直到最大迭代次数或者中心点不再移动位置
代码及解析

无监督学习-kmeans聚类算法及手动实现

混合高斯聚类(聚类椭圆形数据)

1)随机分为k个类
2)算每个类的分布参数(均值和方差)
3)根据每个类的分布参数对每个样本重新分类
4)重复2~3直到到达最大迭代次数或分布参数不再变化

DBSCAN聚类(聚类任何数据)

1)遍历数据选取未被聚类的实例为核心实例
2)统计在核心实例邻域内的实例数
3)如果实例数大于要求的最下实例数则他们划分为同一类并选用其中每个实例作为核心实例执行2~3,否则该核心实例为异常值执行1~3
4)直到完全遍历所有实例结束
代码及解析

通俗易懂的机器学习——python手动实现DBSCAN聚类算法

降维

协方差与奇异值分解

数学概念分析

通俗易懂的机器学习——维度的诅咒(深入浅出表述机器学习降维的数学概念)

代码实现

通俗易懂的机器学习——协方差、奇异值分解、PCA降维代码实现
通俗易懂的机器学习——梯度上升主成分分析数学原理推导及解释

机器学习与传统技术的区别

1)用数学方法解决物理问题(求解方程,分析系统状态)

根据定理->列方程->物理问题数学模型->求解方程->得到结果

2)优化算法(配置系统)

配置参数使得系统运行最优

3)机器学习(数据的映射关系)

机器学习的核心在于总结数据规律,学习的对象是数据。针对数据(实验数据或用户数据)选择合适的机器学习模型,调节超参数,让机器学习模型从数据中找到某种规律,进行预测。实际上构建了一个函数,构建的函数可以帮助我们去发现定理

4)深度学习

基于神经网络的机器学习

交叉验证

多种分类以及模型评估
评价模型的策略:交叉验证
评价模型的指标:准确率,精准度,召回率

根据评价模型的策略和评价模型的指标通过调参控制模型的拟合程度(对分界线的拟合效果),即控制模型拟合程度。
机器学习学习路线及知识汇总_第2张图片
1)基本K折:训练数据与测试数据分开
2)标准k折:随机分成k份,其中k-1份为训练数据,1份为测试数据
3)分层k折:在k折的基础上每一份内各类分布与总体分布一致
4)留一法:每一次测试集只有一个样本,遍历所有样本
5)随机排列:随机划分多次

结尾

对于在之前阶段性复习以及提到的相关知识可以查看之前的阶段性复习博客
机器学习基础知识阶段性复习

你可能感兴趣的:(通俗易懂的机器学习,sklearn,python)