• 机器学习入门算法


    回归算法

    线性回归:

    1.  找到一个线性变换,来预测数据点。类似于找到一直线、平面、超平面来拟合数据。
    2. 引入似然函数,根据最大化似然函数似然函数,得到参数的解。
    3. 巧合的是,通过最大化似然函数解出来的参数和最小二乘法一致。

    逻辑回归:经典的二分类算法

    1. 决策边界可以是非线性的
    2. 决策函数:Sigmoid Function
    3. 引入似然函数,并利用最大化似然函数,利用梯度上升迭代出理想参数。

    决策树+集成算法

    决策树:

    • 从根节点一步步走到叶子节点(决策)
    • 可做分类,也可做回归
    • 引入了熵来作为不确定性的度量,:H(X)=-Σ pi * log(pi),其中pi是第i个发生的概率。
    • 信息增益(有多种计算方式ID3、C4.5、CART)为熵(不确定性)减小的程度。
    • 优化原则,先选择信息增益最大的特征。

    • 其他:GINI系数、连续数值的特征分割、剪枝策略(预剪枝、后剪枝)

    贝叶斯算法:

    • 根据观测数据,推测模型参数。
    • 朴素贝叶斯假设特征之间是独立,互不影响。
      • P(d1|h+) * P(d2|d1, h+) * P(d3|d2,d1, h+) * .. == P(d1|h+) * P(d2|h+) * P(d3|h+) * ..
    • 可于文本分析:文本关键词提取、垃圾邮件识别、新闻文章分类。

    支持向量机Support Vector Machine:

    • 用直线、平面、超平面分割特征空间,已达到分类的目的。
    • 利用拉格朗日乘子法,求解出结果。
    • OpenCV中的Hog+SVM可以实现了目标检测、定位。
    • 利用其核函数,可以提高SVM的适用范围。

    Ensemble Learning:

    • Bagging:训练多个分类器取平均。并联模型,同时训练。

    • Boosting:从弱学习器开始加强,通过加权来进行训练。串联模型,先后依次训练,每增加一级,都比以前更强。
    • Stacking:分2个阶段,第一阶段得出每个模型各自结果,第二阶段用前一阶段结果得出最终结果,第二阶段本身也常用机器学习的方法来预测。

    降维算法

    线性判别分析Linear Discriminant Analysis(LDA):

    • 将N维特征空间映射到维度更小的K维空间。
    • 是降维、分类方法之一。
    • 是有监督学习,需要事先有类标签
    • 优化目标:max. {类间方差/类内方差},利用拉格朗日乘子法,可得(w就是矩阵的特征向量了)
      • 其中,
      • 其中,
    • w就是的特征向量表示映射方向,λ是特征值-指示特征向量的重要程度

    主成分分析Principal Component Analysis(PCA)

    • 无监督,无需事先知道标签,常用于预处理保密信息用于发布(避免泄露隐私)。
    • 降维中最常用的一种手段
    • 提取最有价值的信息(基于方差)
    • 降维后的数据,人类看着可能没有意义。
    • 步骤:
      • 求数据协方差矩阵
      • 求协方差矩阵特征值λ,特征向量c
      • 找出主特征值和特征向量(单位正交)。
      • 利用特征向量实现对原始特征降维。

    聚类算法

    可以这个网站上看效果:https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/

    K-Means:

    • 无监督问题,无需标签
    • 将相近的点分到一类,优化目标:
    • 优势
      • 简单,快速,适合常规数据集
    • 劣势
      • K值难确定
      • 复杂度与样本呈线性关系
      • 很难发现任意形状的簇

     DBSCAN算法:

    • 全名Density-Based Spatial Clustering of Applications with Noise
    • 输入参数:
      • D          - 输入数据集
      • R          - 指定半径,在P点半径R距离内的点数≥MinPts,认为P点属于某类,并具有发展"下线"的能力,其直接下线也属于该类。
      • MinPts  - 密度阈值,当P点半径R距离内的点数<MinPts,则这些新的点不具有发展下线的能力,也不属于该类。
    • 优势:

      • 不需要指定簇个数
      • 擅长找到离群点(检测任务)
      • 可以发现任意形状的簇
      • 两个参数就够了
    • 劣势:
      • 高维数据有些困难(可以做降维)
      • Sklearn中效率很慢(数据削减策略)
      • 参数难以选择(参数对结果的影响非常大)

     EM算法Expectation-Maximization:

    • 要解决的问题:
      • 求Nc个类的参数θ,Nc已知
      • 已知m个没有标记的样本。
      • 相比直接最大似然方法,少了参数标签。
    • EM算法流程
      • 初始化分布参数θ
      • E-step:根据参数θ计算每个样本属于某一类Zi的概率
      • M-Step:最大化 含有θ的似然函数(的下界),得到新的参数θ
      • 不断的迭代更新下去

    GMM(高斯混合模型)

    • 要解决的问题:
      • 对样本进行分类
      • 已知类别个数,样本没有类别标签
    • GMM 由K 个Gaussian 分布组成,每个Gaussian 称为一个“Component”
    • 类似k-means方法,求解方式跟EM一样,通过迭代更新求解

    用于:

    • 已知类别个数
    • 没有类别标签

    神经网络

    • 反向传播
    • Softmax
    • 激活函数Sigmoid,ReLU
    • 每一层中每个节点像逻辑回归,整个网络像 逻辑回归 的 逻辑回归。
    • 案例:http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html
    • 降低过拟合风险:
      • 正则化,+|W|
      • Drop-out(该方法还可以减少运算量)

    Xgboost & Adaboost

    将弱分类器组合成强分类器。 from xgboost import XGBClassifier

    AIRMA(Autoregressive Integrated Moving Average Model)

    自相关函数ACF(autocorrelation function)

    PACf vs ACF

    CNN

    RCNN(Regions with CNN features)

    Faster R-CNN

    深度残差网络(Deep residual network, ResNet)

    RNN (Recurrent Neural Net)

    LST(Long Short-Term Memory)= RNN的升级版,解决RNN遗忘曲线固定的问题,LSTM可学习信息 中的重要内容,舍弃不重要的内容。

    Faster R-CNN

    相比Fast R-CNN,增加了RPN

  • 相关阅读:
    ubuntu16.04上安装深度学习环境
    QQ音乐付费音乐下载的demo
    python列表按比例或长度拆分
    docker 使用gpu启动及tf限额
    python apscheduler was missed by
    k8s中使用gpu的部署方案
    从字符串中找出最大的数字串,字符串中可以带小数点。--python实现
    linux中批量删除带空格的文件
    tornado中使用python3原生事件循环asyncio
    mysql DATE_FORMAT FROM_UNIXTIME 的区别
  • 原文地址:https://www.cnblogs.com/xbit/p/9512565.html
Copyright © 2020-2023  润新知