zoukankan      html  css  js  c++  java
  • 机器学习算法

    1. 简介

    1.1 模型

    • 分类问题 —— 说白了就是将一些未知类别的数据分到现在已知的类别中去。比如,根据你的一些信息,判断你是高富帅,还是穷屌丝。评判分类效果好坏的三个指标就是上面介绍的三个指标:正确率,召回率,F值。
    • 回归问题 —— 对数值型连续随机变量进行预测和建模的监督学习算法。回归往往会通过计算 误差(Error)来确定模型的精确性。
    • 聚类问题 —— 聚类是一种无监督学习任务,该算法基于数据的内部结构寻找观察样本的自然族群(即集群)。聚类问题的标准一般基于距离:簇内距离(Intra-cluster Distance) 和 簇间距离(Inter-cluster Distance) 。簇内距离是越小越好,也就是簇内的元素越相似越好;而簇间距离越大越好,也就是说簇间(不同簇)元素越不相同越好。一般的,衡量聚类问题会给出一个结合簇内距离和簇间距离的公式。

    1.2 特征工程

    • 特征选择 —— 也叫特征子集选择(FSS,Feature Subset Selection)。是指从已有的 M 个特征(Feature)中选择 N 个特征使得系统的特定指标最优化,是从原始特征中选择出一些最有效特征以降低数据集维度的过程,是提高算法性能的一个重要手段,也是模式识别中关键的数据预处理步骤。
    • 特征提取 —— 特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点,连续的曲线或者连续的区域。

    2. KNN(K-邻近)

    • 参考

    • 输入为实例的特征向量,对应于特征空间的点。

    • 输出为实例的类别,可以取多类。

    • k 近邻算法假设给定一个训练数据集,其中的实例类别已定。分类时,对新的实例,根据其 k 个最近邻的训练实例的类别,通过多数表决等方式进行预测。

      通过距离度量来计算查询点(query point)与每个训练数据点的距离,然后选出与查询点(query point)相近的K个最邻点(K nearest neighbors),使用分类决策来选出对应的标签来作为该查询点的标签。

    • 算法基本要素:

      1. K值的选择
      2. 距离度量
      3. 分类决策规则
    • 算法特点:

      • 优点:精度高、对异常值不敏感、无数据输入假定
      • 缺点:计算复杂度高、空间复杂度高
      • 适用数据范围:数值型和标称型
    • 工作原理:

      • 假设有一个带有标签的样本数据集(训练样本集),其中包含每条数据与所属分类的对应关系。
      • 输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较。
        1. 计算新数据与样本数据集中每条数据的距离。
        2. 对求得的所有距离进行排序(从小到大,越小表示越相似)。
        3. 取前 k (k 一般小于等于 20 )个样本数据对应的分类标签。
      • 求 k 个数据中出现次数最多的分类标签作为新数据的分类。

    3. 决策树

    • 参考

    • 用决策树对需要测试的实例进行分类:从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归地对实例进行测试并分配,直至达到叶结点。最后将实例分配到叶结点的类中。

    • 优点:计算复杂度不高,输出结果易于理解,数据有缺失也能跑,可以处理不相关特征。

    • 缺点:容易过拟合。

    • 适用数据类型:数值型和标称型。

    • 三个经典实现:ID3,C4.5,CART

      ID3使用信息增益

      C4.5使用信息增益比

      CART使用基尼系数

      使当前数据集的混乱程度降低

    信息熵 & 信息增益

    • 熵(entropy): 熵指的是体系的混乱的程度,在不同的学科中也有引申出的更为具体的定义,是各领域十分重要的参量。一个变量可能的变化越多,它携带的信息量就越大。

    • 信息论(information theory)中的熵(香农熵): 是一种信息的度量方式,表示信息的混乱程度,也就是说:信息越有序,信息熵越低。例如:火柴有序放在火柴盒里,熵值很低,相反,熵值很高。

    • 信息增益(information gain): 在划分数据集 前后 信息发生的变化称为信息增益。信息增益越大说明该特征对于减少样本的不确定性程度的能力越大,也就代表这个特征越好。

    • 用来选择最好的数据集划分方式

    4. 朴素贝叶斯

    条件概率
    朴素贝叶斯中的朴素 :每个特征同等重要
    **优点: **在数据较少的情况下仍然有效,可以处理多类别问题。
    缺点: 对于输入数据的准备方式较为敏感。
    适用数据类型: 标称型数据。

    5. Logistic 回归

    主要思想:根据现有数据对分类边界线建立回归公式,以此进行分类。

    • 回归:假设现在有一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归。
    • 优点: 计算代价不高,易于理解和实现。
    • 缺点: 容易欠拟合,分类精度可能不高。
    • 适用数据类型: 数值型和标称型数据。

    6. 支持向量机

    • 支持向量(Support Vector)就是离分隔超平面最近的那些点。

    • 两个关键点:

      1. 寻找最大分类间距
      2. 转而通过拉格朗日函数求优化的问题
    • 数据可以通过画一条直线就将他们完全分开,这组数据叫线性可分数据,这条直线成为分隔超平面


    7. 集成方法——随机森林和AdaBoost

    • 集成方法:
      1. 投票选举(自举汇聚法):基于数据随机重抽样分类器构造的方法【目前主流:随机森林】
      2. 再学习:基于所有分类器的加权求和的方法【目前主流:AdaBoost】
    • 投票和再学习的区别:
      • 投票是一种与再学习类似的技术,所使用的多个分类器的类型都是一致的
      • 投票是由不同的分类器(1. 数据随机化 2. 特征随机化)经过训练,综合得出的出现最多分类结果;再学习是通过调整已有分类分错的那些数据来获得新的分类器,得出目前最优的结果。
      • 投票法中分类器权重是相等的;再学习法中分类器加权求和

    7.1 随机森林

    • 利用多棵树对样本进行训练并预测的一种分类器
    • 决策树相当于一个大师,通过自己在数据集中学到的知识用于新数据的分类。但是俗话说得好,一个诸葛亮,玩不过三个臭皮匠。随机森林就是希望构建多个臭皮匠,希望最终的分类效果能够超过单个大师的一种算法。
    • 随机森林的构建:(目的是:使得随机森林中的决策树都能彼此不同,提升系统的多样性,从而提升分类性能)
      1. 数据的随机化——使得随机森林中的决策树更普遍化一些,适合更多场景
      2. 待选特征的随机化
  • 相关阅读:
    js实现倒数 —— ‘剩下多少天多少秒’
    CSS单位,em,rem以及元素的宽度和高度
    基于原生JS+node.js+mysql打造的简易前后端分离用户登录系统
    隐藏微信小程序剪贴板提示
    微信小程序实现多选分享
    微信小程序开发过程中出现问题及解答
    Visual Studio Code 使用指南
    openLayers 4 canvas图例绘制,canvas循环添加图片,解决图片闪烁问题
    微信小程序个人/企业开放服务类目一览表
    微信小程序日常开发中常遇到的错误代码
  • 原文地址:https://www.cnblogs.com/ph1sh/p/14710684.html
Copyright © 2011-2022 走看看