在机器学习中有很多方法都能完成一个分类或者回归任务,但选择多了有时也并不一定是件好事。
例如,你可能会犹豫是选择传统的机器学习方法还是深度学习方法?
如果选择传统机器学习方法,那是选择决策树还是SVM?
如果选择深度学习方法,隐藏层的个数应该是多少?每个隐藏层的神经元应该是多少?
有的人可能不会这么纠结,毫不犹豫地选择深度学习方法,认为最贵的就是最好的。
但他们可能忘了机器学习中的No Free Lunch(没有免费午餐)定理,没有一种算法可以适用于所有的数据集和场景。需要根据具体的问题和数据的特点进行分析和假设。
这就需要我们对不同算法的特性有所了解。今天我将介绍10个最常用的算法。
Linear Regression
Logistic Regression
Decision Trees
Random Forest
Support Vector Machines
K Nearest Neighbors
K Means Clustering
Hierarchical Clustering
Neural Networks
Linear Regression
线性回归起源于统计学,用于研究输入和输出数值变量之间的关系,后来被机器学习社区采用。
线性回归分为两种类型:简单线性回归和多元线性回归。
简单线性回归
多元线性回归
除此之外,还包括多项式回归。
名字虽然叫回归,但却是一种二分类方法。该算法通过将数据拟合一个逻辑函数来预测事件发生的概率。
决策树是一种类似流程图的树状结构,或者说类似编程语言中的if else。
决策树不仅可以分类,还能进行回归分析。
常见的构造决策树的算法包括CART、ID3、C4.5和C5.0。
随机森林算法通过取多个决策树的输出作为最终的结果。这种集思广益的方法还有一个学名:集成学习方法。
所有分类算法本质上都是找到一个合理的分界线或者分界面,SVM也是如此,但稍有不同,SVM的优化目标是找到一个超平面,使得两类数据被完全正确地分开,且距离超平面最近的数据点到超平面的距离最大。
K最近邻(K-nearest neighbors,kNN)是一种可以用于解决分类和回归任务的监督学习算法。该算法的主要思想是:近朱者赤近墨者黑,也就是数据点的值或类别由其周围的数据点确定。
K均值聚类是一种无监督学习方法,正所谓物以类聚,人以群分,K均值聚类根据数据的相似性将它们分成K个簇。
层次聚类意味着通过迭代地组合或分离数据点来创建一个聚类的树状结构。层次聚类有两种类型,分别是凝聚式聚类和分裂式聚类。
凝聚式聚类是自下而上的方法。它将最相似的两个点合并,直到所有点都被合并到一个单一的聚类中。分裂式聚类是自上而下的方法。它从所有点作为一个聚类开始,并在每一步将最不相似的聚类分裂,直到只剩下单个数据点。层次聚类的其中一个优点是我们不需要指定聚类的数量(但我们可以指定)
神经网络是一组受人脑功能启发的算法。一般来说,当你睁开眼睛时,你所看到的被称为数据,并且在你的大脑中被神经元(数据处理细胞)处理,从而识别出你周围的环境。神经网络的工作方式与此类似。
它们接收大量的数据,对数据进行处理(提取数据中的模式),并输出数据的结果。通过各种变体,如卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Networks,RNN)、自编码器(Autoencoders)、深度学习等,神经网络正在逐渐成为数据科学家或机器学习从业者中与线性回归在统计学中的地位类似的工具。
参考:
https://www.theinsaneapp.com/2021/11/machine-learning-algorithms-for-beginners.html