本文汇总了六种常用机器学习算法的核心概念、优缺点、适用场景及注意事项,帮助你在实际任务中快速选择合适的方法。以下算法按照常用程度排列,每部分均包含详细说明、图解、小提示和常见问题解答。
目录
- K近邻(KNN)算法
- 朴素贝叶斯算法
- 决策树算法
- SVM算法
- Adaboost算法
- EM算法(期望最大化算法)
NO.1 K近邻(KNN)算法
基本介绍
KNN算法的核心思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本大多数属于某一个类别,则该样本也属于这个类别。算法分为两步:
- (1)对于给定的搜索训练集,按一定距离度量找到k个最邻近的点。
- (2)在这k个邻居中,根据多数表决(投票)确定待分类点的类别。
下图直观展示了KNN的分类过程:

图中不同形状的点代表不同标签,绿色点为待分类点。当k=3时,绿色点被归为红色三角形(2个红色 vs 1个蓝色);当k=5时,则归为蓝色正方形(2红 vs 3蓝)。
优点
- 算法原理简单,容易理解,实现也较容易。
- 不需要训练,只需保存训练样本和标签。
- 不易受小错误概率的影响。理论证明,最近邻的渐进错误率最坏时不超过两倍的贝叶斯错误率,最好时接近或达到贝叶斯错误率。
缺点
- K值的选取不固定,对结果影响大。
- 预测结果容易受到噪声数据的影响。
- 样本不平衡时,新样本的类别偏向训练样本中数量占优的类别,易导致预测错误。
- 数据量较大时,计算复杂度和内存消耗高(每个待分类样本都要计算到全体已知样本的距离)。
适用场景及主要应用领域
KNN方法主要依靠周围有限的邻近样本,而非判别类域,因此特别适合类域交叉或重叠较多的待分样本集。实际应用中,在人脸识别、文字识别、医学图像处理等领域可取得良好分类效果。
注意事项
- 数据特征量纲不统一时,必须进行归一化处理,否则会出现“大数吃小数”的问题。
- 距离计算通常采用欧式距离。
- K值一般要小于训练样本数据的平方根,通常采用交叉验证法选择最优K值。
