机器学习总结

机器学习概念:

(1)有监督:数据有标签,比如年龄

(2)无监督:数据向量没有标签。

(3)半监督:标签缺损。

(4)分类:有监督的学习可以用来判断种类,比如把名字和脸对应起来,或赋予一个数字标签(如年龄)。当数据以名字(种类)作为标签,则表明我们在做分类。

(5)回归:通过类别的或数值的输入数据来拟合一个数值输出。

(6)欠拟合:模型假设太严格,所以模型不能拟合到实际数据上。

(7)过拟合:算法不仅学习了数据,而且把噪声也当做信号学习了,这样算法的推广能力很差。

(8)正则化:防止过拟合,提高泛化能力。

正则化可以让权值向量w“变小”的效果,这是因为:更小的权值w,从某种意义上说,表示的网络的复杂度更低,对数据的拟合刚刚好(奥卡姆剃刀)。结构风险最小化等价于正则化,即在经验风险的后面加上与模型复杂度相符的正则化项或惩罚项。

(9)召回率:提取出正确的数量/样本数量的总数

(10)准确率:提取出正确的数量/提取出的样本

(11)距离度量:欧氏距离、曼哈顿距离(实际距离)、切比雪夫距离、马氏距离、夹角余弦(衡量样本向量之间的差异)

评估机器学习结果的工具:

交叉验证:首先把数据分为k个不同的子集。然后用k-1个子集进行训练,用没有用来训练的子集进行测试。这样做k次(每个子集都有一次机会作为测试集),然后把结果平均。

自抽样法:验证集是从训练集中随机选取的。选择的点仅用于测试,不在训练中使用,这样做N次,每次随机选择一些验证集,最后把得到的结果平均。这意味着一些数据样本会出现在不同的验证集中,自抽样法的效果一般胜于交叉验证。

机器学习中一些重要的规律:

(1)大量数据比少量数据好,好的特征比好的算法更重要。如果选取的特征好,最大化它们的独立性,最小化它们在不同环境之下的变化,那么大部分算法都可以获得比较好的效果。

(2)一般分类器的选择需要考虑计算速度、数据形式和内存大小。一些应用中在线用户优先选择建模,所以分类器需要能够快速完成训练。在这种情况下,最近邻算法,正态贝叶斯和决策树是不错的选择。如果需要考虑内存因素,决策树和神经网络是理想的选择。如果不需要很快训练,而需要很快判断,那么神经网络可以满足要求,正态贝叶斯和SVM也不错。如果不需要训练很快,但是需要精确度很高,可选择boosting和随机森林。如果选取得特征比较好,仅仅需要一个简单易懂的分类器,就选择决策树和最近邻算法。要获得最好的性能,还是离不开boosting和随机森林。

(注意:不存在“最好”的分类器,综合考虑所有的数据分布类型,所有的分类器都是一样的。因此我们无法说明那个算法“最好”。但是如果给定某个特定的数据分布,或者特定的一些数据分布,通常存在一个最好的分类器。所以在实际应用中,最好多尝试一下各种不同的分类器)。

(3)考虑自己的目的:只是为了得到正确的匹配分数,还是去理解数据?你追求的是快速计算,少的内存需求,还是结果的可信度?在这方面,不同的分类器有不同的能力)

机器学习常用算法:

(1)K-mean

步骤:

step1:输入数据集合和类别数K(由用户指定)。

step 2:随机分配类别中心点的位置。

step 3:将每个点放入离它最近的类别中心点所在的集合

step 4:移动类别中心点到它所在集合的中心。

step 5:转到step3,直到收敛。

这是一种非监督的聚类方法,使用K个均值来表示数据的分布,其中K的大小由用户定义。该方法跟期望最大化方法的区别是K均值的中心不是高斯分布,而且因为各个中心竞争去“俘获”最近的点,所以聚类结果更像肥皂泡。聚类区域进程被用作稀疏直方图的bin,用来描述数据。


(2)朴素贝叶斯

这是一个通用的分类器,它假设特征是高斯分布而且统计上互相独立。这个假定过于苛刻,在很多条件下不能满足,正因为此,它也被称为“朴素贝叶斯”分类器,然而,在很多情况下,这个分类器的效果却出奇额好。


(3)决策树

这是一个判别分类器。该树在当前节点通过寻找数据特征和一个阈值,来最优划分数据到不同的类别。处理流程是不停地划分数据并向下到树的左右侧子节点。虽然它一般不具有最优性能,但是往往是测试算法的第一选择,因为它速度比较快,而且具有不错的功能。


(4)集成学习方法

找到一个比随机猜测略好的弱学习算法,通过集成学习,将其提升为强学习算法,而不必直接去找通常情况下很难获得的强学习方法。

Bagging:训练R个分类器f_i,分类器之间其他相同就是参数不同。其中f_i是通过从训练集合中(N篇文章)随机取(取后放回)N次文档构成的训练集合训练得到的。对于新文档d,用这R个分类器去分类,得到的最多的那个类别作为d的最终类别。

Boosting:常用Adaboosting。训练是串行进行的。第k个分类器训练时关注对前k-1分类器中错分的文档,即不是随机取,而是加大取这些文档的概率。boosting算法非常擅长检查特定视角的刚性物体。

(5)随机森林

这是由许多决策树组成的“森林”,每个决策树向下递归以获取最大深度。在学习过程中,每棵树的每个节点只从特征数据的一个随机子集中选择。这保证了每颗树时统计上不相关的分类器。在识别过程中,将每颗树的结果进行投票来确定最终结果,每棵树的权重相同,这个分类方法经常很有效,而且对每颗树的输出进行平均,可以处理回归问题。


(6)期望最大化(EM)

一种用于聚类的非监督生成算法,要求数据满足高斯分布。它可以拟合N个多维高斯到数据上,此处N的大小由用户决定。这样仅仅使用几个参数(均值和方差)就可以非常有效的表达一个比较负责的分布。该方法经常用于分科。


(7)k近邻

可能是最简单的分类器。训练数据跟类别标签存放在一起,离厕所数据最近的(欧氏距离最近)k个样本进行投票,确定测试数据的分类结构。该方法通常比较有效,但是速度比较慢且对内存的需求比较大。


(8)神经网络/多层感知器

该分类算法在输入节点和输出节点之间具有隐藏节点,这可以更好的表示输入信号。训练该分类器很慢,但是识别时很快,对于一些识别问题,如字符识别,它具有非常不错的性能。


(9)支持向量机(SVM)

它可以进行分类,也可以进行回归。该算法需要定一个高维空间中任两点的距离函数(将数据投影到高维空间会使数据更容易地线性可分)。该算法可以学习一个分类超平面,用来在高维空间里实现最优分类。当数据有限的时候,该算法可以获得非常好的性能,而boosting和随机森林只能在拥有大量训练数据时才有好的效果。


(10)在线学习

步骤:

step1:收集和学习现有的数据

step2:依据模型或规则,做出决策,给出结果。

step3 :根据真实的结果,来训练和学习规则或模型。


(11)关联规则分析Apriori

主要功能:快速找到经常在一起的频繁项。从中发掘那些商品经常被一起购买。

原理:如果某个子集不是频繁的,那么包含它的所有超集也不是频繁的。

步骤:

先生成所有单个商品构成子集列表

然后计算每个子集的支持度

剔除不满足最小支持度的子集

对满足要求的子集进行两两组合(但组合一定是某个交易的数据的子集)

计算组合的支持度

然后在剔除

依次循环,直到剔除完成。

返回频繁子集


参数优化问题:

即找到最适合目标函数的参数,该参数一般满足使目标函数最大或者最小。

1、梯度下降法:

(1)批量梯度下降法(BGD):每次偏移一定量的值(适合小规模样本,容易局部最优)。

(2)随机梯度下降法(RGD):通过每个样本来迭代更新一次(适合大规模样本,全局最优)

2、牛顿法

3.共轭梯度法:求解对称正定线性方程组。

4.坐标下降法


改善模型准确率的方法:

http://developer.51cto.com/art/201601/504833.htm

(1)增加更多数据

(2)处理缺失值和异常值

(3)特征工程学:转换成新的特征

(4)特征选择

(5)使用多种算法

(6)算法调整

(7)集成模型

(8)交叉验证


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值