机器学习常用算法分类(2)
感谢大家的关注,在上一篇文章中发布后很多热心的小伙伴建议我可以改进下分类的方式,一种是根据学习的方式分类,另外一种是根据类似的形式或者功能进行分类,我几天一直在想这的确是一直很好的分类方式,所以在这几天搜集资料进行分类,能够和大家持续进行交流。
抛砖引玉,我希望在阅读完本文以后,你可以结合一些资料,对监督学习中的最受欢迎的机器学习算法,以及他们的彼此之间的关系有一个比较深刻的了解。
1:根据学习方式的分类
监督学习:输入的数据为训练数据,并且每一个数据都会带有标签,比如“广告/非广告”,或者当时的股票的价格。通过训练过程建模,模型需要作出预测,如果预测出错会被修正。直到模型输出准确的训练结果,训练过程会一直持续。常用于解决问题有分类和回归。常用的算法包括逻辑回归和BP神经网络
无监督学习:输入的标签没有数据,输出没有标准答案,就是一系列的样本。无监督学习通过推断输入数据中的结构建模。这可能是提取一般规律,可以是通过数学处理系统系统的减少冗杂,或者根据相似性组织数据。常用于解决的问题有聚类,降维和关联规则的学习。常用的算法包括了Apriori算法和K均值算法
半监督学习:半监督学习的输入数据包含标签和不带标签的样本。半监督学习的情况是有一个预期中的预测,但是模型必须通过学习结构整理数据从而做出预测。常用于解决的问题是分类和回归。常用的算法是对所有的无标签的数据建模进行的预测算法(可以看做无监督学习的延伸)
2:从功能角度分类
1:回归算法:回归分析是研究自变量和因变量之间关系的一种预测模型技术。这些技术应用于预测时间序列模型和找到变量之间的关系。回归分析也是一种常用的统计方法,经由统计机器学习融入机器学习领域。“回归”其实既可以指算法也可以指问题,因此在指代的时候容易混淆。实际上,回归我觉得就是一个过程而已。
常用的回归算法包括:
普通最小二乘回归(OLSR),线性回归,逻辑回归,逐步回归,多元自适应回归样条法(MARS),局部估计平滑散点图(LOESS)
2:基于实例的学习算法:基于实例的学习通过训练数据样本或者实例建模,这些样本或实例也被视为建模所必须的。这类模型通常会建一个样本数据库,比较新的数据集和数据库里边的数据,通过这种方式找到最佳的匹配对象并且做出预测。换句话说,这类算法在进行预测的时候,一般会使用相似度匹配的准则,比较待预测数据的样本和原始样本之间的相似度,在作出预测,因此,基于实例的方法也别统称为赢家都吃方法(winner-take-all)和基于记忆的学习(memory-based-learning)
常用的基于实例的学习算法包括:
K-临近算法(KNN),学习矢量量化算法(LVQ),自组织映射算法(SOM),局部加权学习算法(LWL)
3:正规化算法:正规化算法在我学习过程中的思路是在参数比较小的时候,模型更加的简单。对模型的复杂度会有一个宽容值,偏好简单的,更加容易泛化的模型,正则化算法可以说是这种方法的延伸。我把正则化算法单独列出来,是因为我听说他们比较受欢迎,功能强大,并且能够对其他的方法进行简单的修饰
常用的正则化算法包括:
岭回归,LASSO算法,Elastic Net,最小角回归算法(LARS)
4:决策树算法:决策树算法的目标是根据数据属性的实际值,创建一个预测样本目标值的模型。训练时,树状的结构会不断地分叉,知道做出最终的决策。决策树算法常用于分类和回归。决策树一般速度快,结果准。因此来说这也是属于最受欢迎的机器学习算法之一。
常见的决策树算法包括:
分类和回归树(CART)
ID3算法,C4.5和C5.0算法,这是一种算法的两种不同版本,CHAID算法,单层决策树,M5算法,条件决策树
5:贝叶斯算法:贝叶斯方法指的是那些明确可以使用贝叶斯定理解决分类和回归问题的算法
常见的贝叶斯算法包括:
朴素贝叶斯算法,高斯朴素贝叶斯算法。多项式朴素贝叶斯算法,AODE算法,贝叶斯信念网络(BBN),贝叶斯网络(BN)
6:聚类算法:聚类和回归一样,既可以用来形容一类问题,也可以用来代指一组方法。聚类的方法通常涉及质心(centroid-based)或者层次(hierarchal)等建模方式,所有的方法都和固有的数据结构相关,目标是将数据按照他们之间共有的最大组织方式聚集在一起。换句话说,算法将输入的样本聚集成围绕一些中心的数据团,通过这样的方式发现的数据分布结构中的规律。
常用的聚类算法包括:K-均值,K-中位数,EM算法,分层聚类算法
7:关联规则学习:关联规则学习在数据不同变量之间观察到一些关联,算法要做的就是找到这些关联中最能描述的规则,也就是获取一个时间和其他事件之间的依赖和关联的知识。
常用的关联规则算法有:
Apriori算法,Eclat算法
8:人工神经网络:人工神经网络是一类受生物神经网络结构和功能启发而来的模型。他们是一类常用于解决回归和分类等问题的模式匹配,不过,实际上这是一个含有成百上千种算法及各种问题变化的子集。不过我现在吧深度学习从人工神经网络算法中分离了出来。因为深度学习实在的太受欢迎了。人工神经网络还是偏向于经典的感知算法。
常用的人工神经网络包括:感知机,反向传播算法,Hopfield网络,径向基函数网络(RBFN)
9:深度学习算法:深度学习算法是人工智能的升级版,充分利用廉价的计算力来实现计算。近年来,深度学习得到了大规模的运用,尤其是语音识别,图像识别。深度学习算法会搭建规模更大,结果更复杂的神经网络,就很我前几天的那篇所说的,很多深度学习算法都牵扯半监督学习问题,这样的问题一般数据一般量很多,并且只有很少的部分会带有标签。
常用的深度学习算法包括:
深度波尔兹曼机(DBM),深度信念网络(DBN),卷积神经网络(CNN),栈式自编码算法(Stacked Auto-Encoder)
10:降维算法:其实我自己觉得降维算法和聚类算法有点类似,也是试图发现数据的固有结构,但是,降维算法采用的是无监督学习的方式,用更少的信息进行总结和描述。降维算法可以监督学习的方式,被用于多维数据的可视化或对数据进行简化处理。很多的降维算法经过修改后,也可以被用于分类和回归问题。
常见的降维算法包括:
主成分分析法,主成分回归,偏最小二乘回归,萨蒙映射,多维尺度分析法,投射寻踪法,现行判别分析法,混合判别分析法,二次判别分析法,灵活判别分析法
————————————————————————————
其实还很多的算法并没有提及,比如SVM应该分为哪一组,还是应该自己单独成一组。这些都是我所未知和迷惘的,不过也恳请大家对这些知识进行指教,共同学习进步。