https://www.toutiao.com/a6714092859475100171/
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
《机器学习实战》正文
第一部分:分类
【Ch1】机器学习基础
【Ch2】k - 近邻算法
【Ch3】决策树
【Ch4】基于概率论的分类方法:朴素贝叶斯
【Ch5】Logistic 回归
【Ch6】支持向量机
【Ch7】利用 AdaBoost 元算法提高分类性能
第二部分:利用回归预测数值型数据
【Ch8】预测数值型数据:回归
【Ch9】树回归
第三部分:无监督学习
【Ch10】利用 K-均值聚类算法对未标注数据分组
【Ch11】基于 Apriori 算法进行关联分析
【Ch12】使用 FP-growth 算法来高效发现频繁项集
第四部分:其他工具
【Ch13】利用 PCA 来简化数据
【Ch14】利用 SVD 简化数据
【Ch15】大数据与 MapReduce
补充:
【神经网络】
Ch1:机器学习基础
监督学习(分类、回归);无监督学习(聚类、密度估计)
Ch2:k - 近邻算法
简单来说,k - 近邻算法采用测量不同特征值之间的距离的方法进行分类。它是一种基于实例的学习,使用算法时必须有接近实际数据的训练样本数据。
优点:
缺点:
适用数据类型: 数值型和标称型。
应用领域: 文本分类;模式识别;聚类分析;多分类领域。
使用方法:
Ch3:决策树
决策树分类器就像带有终止块的流程图,终止块表示分类结果。开始处理数据时,首先需要测量集合中数据的不一致性,也就是熵(反映数据的无序程度),然后寻找最优方案划分数据集(选取信息增益(熵)最大的特征),直到数据集中的所有数据属于同一分类。构建决策树时,采用递归的方法将数据集转化为决策树。
优点:
缺点:
适用数据类型: 标称型和数值型。
改进措施(主要解决过拟合问题):
决策树流行算法: ID3、C4.5、CART
应用领域: 企业管理实践,企业投资决策,由于决策树很好的分析能力,在决策过程应用较多。
使用方法:
总结:Ch2 和 Ch3 都是确定的分类算法,数据实例最终会被明确的划分到某个分类当中。
Ch4:基于概率论的分类方法:朴素贝叶斯
使用概率,提供一种利用已知值来估计未知概率的方法。通过特征间的独立性假设(朴素一词的由来),降低对数据量的要求。
优点:
缺点:
适用数据类型: 标称型。
改进措施:
应用领域: 欺诈检测;一封电子邮件是否是垃圾邮件;一篇文章应该分到科技、政治,还是体育类;一段文字表达的是积极的情绪还是消极的情绪;人脸识别等。
使用方法:
Ch5:Logistic 回归
寻找一个非线性函数 Sigmoid 的最佳拟合参数,求解过程可以由最优化算法(如梯度上升或随机梯度上升(占用更少资源,在线学习)) 来完成。
优点: 计算代价不高,易于理解和实现。
缺点:
适用数据类型: 数值型和标称型。
改进措施:
用随机梯度上升训练算法代替梯度上升训练算法,实现在线学习。
应用领域:
使用方法:
Ch6:支持向量机
一种二值决策分类“机”,泛化错误率低和较好的推广性使其被认为是监督学习中最好的定式算法。它试图求解一个二次优化问题来最大化分类间隔。支持向量机采用 SMO 算法每次只优化两个 alpha 值来加快 SVM 的训练速度。核方法(或核技巧)会将数据(有时是非线性数据)从一个低维空间映射到一个高维空间,将一个在低维空间中的非线性问题转化为在高维空间的线性问题,如径向基函数(度量两个向量距离的核函数)。
优点:
缺点:
适用数据类型: 数值型和标称型。
应用领域: 文本分类、图像识别、主要二分类领域。
使用方法:
Ch7:利用 AdaBoost 元算法提高分类性能
通过组合多个分类器(可以不同)的分类结果,获得了比简单的分类器更好的效果。选择不同的分类器可以缓解同一分类器可能放大的过拟合问题。
有三种集成方法:Bagging、Boosting 和 Random Forset。Bagging
通过随机抽样 S 次(有放回的抽样),得到 S 个与原数据集大小相同的数据集,作用到 S 个分类器上,最后根据投票决定分到哪一个类;Boosting 在 Bagging 上更进一步,它在数据集上顺序应用了多个不同的分类器。
Boosting 中最流行的的一个算法是 AdaBoost,以弱学习器作为基分类器,并且输入数据,使其通过权重向量进行加权。在第一次迭代中,所有数据等权重,在后续迭代中,前次迭代中分错的数据的权值增大,这种针对错误的调节能力正是 AdaBoost 的长处。
优点:
缺点:
适用数据类型: 数值型和标称型。
应用领域:模式识别、计算机视觉领域,用于二分类和多分类场景。
使用方法:
补充(非均衡分类问题):
非均衡分类问题是指在分类器训练时正例数目和反例数目相差很大的一类问题,该问题在错分正例和反例的代价不同时也存在(比如错分导致死亡)。因此,ROC曲线、正确率和召回率有利于度量分类器的指标。
调节正例和反例的数目可以采用欠抽样(删除多的样本)和过抽样(赋值少的样本)的方法,另外一种方法就是在分类的过程中将错误的代价也考虑在内。
Ch8:预测数值型数据:回归
回归与分类的不同点在于,回归预测连续型变量,分类预测离散型变量。在回归方程中,求得最佳回归系数的方法是最小化误差的平方和。使用岭回归可以保证 X^T*X 的逆不能计算时,仍然能求得回归参数。
岭回归是缩减法的一种,相当于对回归系数的大小施加了限制。另一种很好的方法是 lasso 算法,难以求解,但可以使用简便的逐步线性回归来求得近似结果。
缩减法还可以看做对一个模型增加偏差(模型预测值与数据之间的差异)的同时减少方差(模型之间的差异)。
优点: 结果易于理解,计算不复杂。
缺点: 对非线性的数据拟合不好。
适用数据类型: 数值型和标称型。
使用方法:
Ch9:树回归
输入数据和目标变量之间呈现非线性关系,一种可行的方法是使用树对预测值分段,包括分段常数和分段直线。若叶节点使用的模型是分段常数则称为回归树,若叶节点使用的模型是分段直线则称为模型树。
CART 算法可以用于构造二元树并处理离散型或数值型数据的切分,该算法构造的回归树或模型树倾向于产生过拟合问题,可以采用预剪枝(在树的构建过程中就进行剪枝)和后剪枝(当树构建完毕再进行剪枝)。预剪枝更有效,但用户需要定义一些参数。
优点: 可以对复杂的和非线性的数据建模。
缺点: 结果不易理解。
适用数据类型: 数值型和标称型。
使用方法(R2为相关系数):
Ch10:利用 K-均值聚类算法对未标注数据分组
聚类是一种无监督的学习方法(没有目标变量)。聚类将数据点归到多个簇中,其中相似数据点属于同一簇,而不相似数据点属于不同簇中。
K-均值算法是广泛使用的聚类算法,其中 K 是用户指定的创建簇的数目。算法以 K 个随机质心开始,计算每个点到质心的距离。每个点会被分配到最近的簇质心,然后更新簇质心。以上过程重复数次直至簇质心不再改变。
K-均值算法易受到初始质心的影响,为了获得更好的聚类效果,可以采用二分 K-均值聚类算法。二分 K-均值聚类算法首先将所有点作为一个簇,然后使用 K-均值算法(k=2)对其划分。下一次迭代时,选择有最大误差的簇进行划分。该过程重复直到 K 个簇创建成功为止。
优点: 容易实现。
缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。
适用数据类型: 数值型。
使用方法:
Ch11:基于 Apriori 算法进行关联分析
两种方式找到大数据集之间的关系。第一种使用频繁项集,它会给出经常出现在一起的元素项;第二种是关联规则,每条关联规则意味着元素项之间的“如果...那么”关系。
Apriori 算法保证在有限的时间内找到频繁项集。其原理是说如果一个元素项是不频繁的,那么那些包含该元素的超集也是不频繁的。Apriori 算法从单元素项集开始,通过组合满足最小支持度要求的项集来形成更大的集合。支持度用来衡量一个集合在原始数据中出现的频率。
每次增加频繁项集的大小,Apriori 算法都会重新扫描整个数据集。当数据集很大时,会显著降低频繁项集发现的速度。下一章的 FPgrowth 算法只需对数据库进行两次遍历,能够显著加快频繁项集的发现速度。
优点: 易编码实现。
缺点: 在大数据集上可能较慢。
适用数据类型: 数值型或标称型。
应用领域: 商店中商品的关联;网站的访问页面的关联;查看选举人及法官的投票历史等。
使用方法:
Ch12:使用 FP-growth 算法来高效发现频繁项集
FP-growth 算法是一种用于发现数据集中频繁模式的有效方法,利用
Apriori 原理,只对数据集扫描两次,运行更快。在算法中,数据集存储在 FP 树中,构建完树后,通过查找元素项的条件基及构建条件 FP 树来发现频繁项集。重复进行直到FP树只包含一个元素为止。
优点: 一般要快于 Apriori 算法。
缺点: 实现比较困难,在某些数据集上性能会下降。
适用数据类型: 标称型。
应用领域: 在多种文本文档中查找频繁单词;购物交易;医学诊断;大气研究等。
使用方法:
Ch13:利用 PCA 来简化数据
降维往往作为预处理步骤,其中独立成分分析、因子分析和主成分分析比较流行,主成分分析(PCA)最为广泛。
PCA 可以从数据中识别其主要特征,它是通过沿着数据最大方差方向旋转坐标轴来实现的。选择方差最大的方向作为第一条坐标轴,后续坐标轴则与前面坐标轴正交。协方差矩阵上的特征值分析可以用一系列的正交坐标轴来获取。
优点: 降低数据的复杂性,识别最重要的多个特征。
缺点: 不一定需要,且可能损失有用信息。
适用数据类型: 数值型。
Ch14:利用 SVD 简化数据
SVD 是一种强大的降维工具,可以利用 SVD 来逼近矩阵并从中获得主要的特征。通过保留矩阵的 80%~90% 的能量,就可以得到重用的特征并去除噪声。
优点: 简化数据,去除噪声,提高算法的结果。
缺点: 数据的转换可能难以理解。
适用数据类型: 数值型。
应用领域: 推荐引擎(协同过滤、相似度计算)、图像压缩等。
Ch15:大数据与 MapReduce
MapReduce 是一种并行处理框架。在 MapReduce 中,作业被分为 map 阶段和 reduce 阶段。先使用 map 阶段并行处理数据,之后将这些数据在 reduce 阶段合并,是一种多对一的模式。mapper 和 reducer 之间传输数据的形式是 key/value 对。一般地,map 阶段后还需要根据 key 值进行排序。
Hadoop 是一个流行的可运行 MapReduce 作业的 java 项目,它同时也提供非 java 作业的运行支持,叫做 Hadoop 流。
神经网络
优点:
缺点:
应用领域: 目前深度神经网络已经应用与计算机视觉,自然语言处理,语音识别等领域并取得很好的效果。