机器学习实战

作者: 周筱鲁 | 来源:发表于2016-02-17 08:31 被阅读222次

    今天打开多看看到这本书免费阅读一天,遂记之!

    关于本书

    • 数据挖掘十大算法

      • C4.5决策树、K-均值(K-mean)、支持向量机(SVM)、Apriori、最大期望算法(EM)、PageRank算法、AdaBoost算法、k-近邻算法(kNN)、朴素贝叶斯算法(NB)和分类回归树(CART)算法
    • 本书结构

      • 分类
      • 利用回归预测数值型数据
      • 无监督学习
      • 其他工具
    • 本书所有源代码均可在英文版出版商的网站上下载

    第一部分:分类

    第一章:机器学习基础

    1.1 何谓机器学习

    扯了半天,没像中文教材直接给结论!无非是讲了机器学习需要统计学来建立预测,在海量的信息中抽取有价值的信息,以及她很重要!

    1.2 关键术语

    • 特征
      亦称属性
    • 分类
      机器学习的主要任务
    • 算法训练
      学习如何分类
    • 训练集
      为算法输入大量已分类数据,用于训练机器学习算法的数据样本集合
    • 目标变量
      机器学习算法的预测结果,在分类中是标称型,回归中是连续性
    • 类别
      分类中的目标变量,个数有限
    • 测试数据
      独立于训练数据的样本集

    1.3 机器学习的主要任务

    • 监督学习
      分类和回归属于监督学习,因为他们需要知道目标变量的信息,即预测什么。
      • 分类
      • 回归
        预测数值型数据
    • 无监督学习
      数据没有类别信息,也不会给定目标值。可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息
      • 聚类
        数据集合分成由类似的对象组成的多个类的过程
      • 密度估计
        寻找描述数据统计值的过程

    监督学习的用途

    • k-近邻算法:线性回归
    • 朴素贝叶斯算法:局部加权线性回归、
    • 支持向量机:Ridge回归
    • 决策树:Lasso最小回归系数估计

    无监督学习的用途

    • K-均值:最大期望算法
    • DBSCAN:Parzen窗设计

    1.4 如何选择合适的算法

    1. 使用机器学习的目的
    • 监督学习
      预测目标变量的值

      • 分类算法
        目标变量是离散型
      • 回归算法
        连续数值
    • 无监督学习
      不需要预测值

      • 聚类算法
        仅需要将数据划为离散的组
      • 密度估计算法
        同时要需要估计数据与组的相似度
    • 需要分析或者收集的数据

      • 特征值离散还是连续
      • 特征值是否存在数据缺失,及其缘由
      • 是否存在异常值
      • 某个特征的频率

    一般并不存在最好的算法或者可以给出最好结果的算法,同时还要尝试不同算法的执行效果。对于所选的每种算法,都可以使用其他的机器学习技术来改进其性能。

    1.5 开发机器学习应用程序的步骤

    1. 收集数据
    • 爬虫
    • API
    • 实测,等
    • 准备输入数据
      统一数据格式,特定算法需要特定的数据格式
    • 分析输入数据
      确保没有垃圾数据,数据足够可信可跳过
      • 是否空值
      • 是否数据异常
      • 是否能识别出模式
      • 图形化展示
    • 训练算法
      抽取知识或信息,无监督学习不需要目标值,不存在此步骤
    • 测试算法
      对于监督学习必须用已知目标变量值,对于无监督学习采用其他手段来检验算法的成功率
    • 使用算法

    第二章 K-近邻算法

    2.1 k-近邻算法概述

    kNN,测量不同特征值之间的距离来进行分类。

    优点:精度高,对异常值不敏感,无数据输入假定
    缺点:计算复杂度,空间复杂度高;无法给出数据的内在含义
    适用:数值型,标称型

    工作原理:
    存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。

    第三章 决策树

    3.1 决策树概述

    决策树的一个重要任务是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,这个过程就是机器学习过程。

    流程图形式的决策树

    优点:计算不复杂,结果易于理解,对中间值缺失不敏感,可以处理不相关的特征数据
    缺点:可能会产生过度匹配
    适用:数值型,标称型

    3.1 决策树的构造

    评估特征,找出处于最顶层的根特征,即在分类过程中处决定性分类。决策树的节点就是分类特征,由顶至下进行分类分类判断,知道所有的数据都到对应的分类中。数据结构中的各种树就是分类。

    划分数据集的原则:将无序数据变得有序

    信息增益(Information Gain):划分数据前后信息的变化

    熵(Entropy):信息的期望值,集合信息的量度,值越高混合的数据越多

    基尼不纯度(Gini Impurity):集合无序的度量

    第四章 基于概论论的分类方法:朴素贝叶斯

    4.1 基于贝叶斯决策理论的分类方法

    优点:在数据较少的情况下仍然有效,可以处理多类别问题。
    缺点:对于输入数据的准备方式较为敏感。
    适用:标称型数据。

    核心:选择具有最高概率的决策

    贝叶斯定理

    Logistic 回归

    优点:计算代价不高,易于理解和实现。
    缺点:容易欠拟合,分类精度可能不高。
    适用:数值型和标称型数据。

    能接受所有的输入然后预测出类别,需要无突变的单位阶跃函数,Sigmoid函数

    Sigmoid函数

    为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。

    Sigmoid函数的输入记为z,由下面公式得出:

    Paste_Image.png

    如果采用向量的写法,上述公式可以写成z=wx,它表示将这两个数值向量对应元素相乘然后全部加起来即得到z值。其中的向量x是分类器的输入数据,向量w也就是我们要找到的最佳参数(系数),从而使得分类器尽可能地精确。为了寻找该最佳参数,需要用到最优化理论的一些知识。

    梯度上升法

    要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为∇,则函数f(x,y)的梯度由下式表示:

    函数f(x,y)的梯度

    Logistic回归的目的是寻找一个非线性函数Sigmoid的最佳拟合参数,求解过程可以由最优化算法来完成。在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法又可以简化为随机梯度上升算法。随机梯度上升算法与梯度上升算法的效果相当,但占用更少的计算资源。此外,随机梯度上升是一个在线算法,它可以在新数据到来时就完成参数更新,而不需要重新读取整个数据集来进行批处理运算。

    支持向量机

    支持向量机(Support Vector Machines,SVM)

    最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法。

    优点:泛化错误率低,计算开销不大,结果易解释。
    缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
    适用:数值型和标称型数据。

    很容易就可以将两组数据点分开,称为线性可分(linearly separable)数据

    将数据集分隔开来的,分隔超平面(separatinghyperplane)

    找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。这里点到分隔面的距离被称为间隔(margin)。

    点A到分隔平面的距离就是该点到分隔面的法线长度

    相关文章

      网友评论

        本文标题:机器学习实战

        本文链接:https://www.haomeiwen.com/subject/lrqckttx.html