今天打开多看看到这本书免费阅读一天,遂记之!
关于本书
-
数据挖掘十大算法
- 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.5 开发机器学习应用程序的步骤
- 收集数据
- 爬虫
- 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函数
为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。
Sigmoid函数的输入记为z,由下面公式得出:
如果采用向量的写法,上述公式可以写成z=wx,它表示将这两个数值向量对应元素相乘然后全部加起来即得到z值。其中的向量x是分类器的输入数据,向量w也就是我们要找到的最佳参数(系数),从而使得分类器尽可能地精确。为了寻找该最佳参数,需要用到最优化理论的一些知识。
梯度上升法
要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为∇,则函数f(x,y)的梯度由下式表示:
Logistic回归的目的是寻找一个非线性函数Sigmoid的最佳拟合参数,求解过程可以由最优化算法来完成。在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法又可以简化为随机梯度上升算法。随机梯度上升算法与梯度上升算法的效果相当,但占用更少的计算资源。此外,随机梯度上升是一个在线算法,它可以在新数据到来时就完成参数更新,而不需要重新读取整个数据集来进行批处理运算。
支持向量机
支持向量机(Support Vector Machines,SVM)
最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法。
优点:泛化错误率低,计算开销不大,结果易解释。
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。
适用:数值型和标称型数据。
很容易就可以将两组数据点分开,称为线性可分(linearly separable)数据
将数据集分隔开来的,分隔超平面(separatinghyperplane)
找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。这里点到分隔面的距离被称为间隔(margin)。