机器学习实战

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

关于本书

  • 数据挖掘十大算法

    • 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 决策树概述

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

机器学习实战_第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)。

机器学习实战_第2张图片
点A到分隔平面的距离就是该点到分隔面的法线长度

你可能感兴趣的:(机器学习实战)