11种最常见的机器学习算法简介( 三 )


5. K最近邻居(kNN)K最近邻(kNN)是一种监督学习算法 , 可用于解决分类和回归任务 。kNN背后的主要思想是 , 数据点的值或类由其周围的数据点确定 。
kNN分类器通过多数投票原则确定数据点的类别 。例如 , 如果k设置为5 , 则检查5个最接近点的类别 。根据多数类别进行预测 。同样 , kNN回归采用5个最接近点的平均值 。让我们来看一个例子 。考虑以下属于4个不同类别的数据点:

11种最常见的机器学习算法简介

文章插图
 
让我们看看预测的类别如何根据k值变化:
11种最常见的机器学习算法简介

文章插图
 

11种最常见的机器学习算法简介

文章插图
 
确定最佳k值非常重要 。如果k太低 , 则模型太具体 , 不能很好地概括 。它还倾向于对噪声敏感 。该模型在火车上实现了很高的准确性 , 但是对于新的 , 以前看不见的数据点而言 , 它的预测能力很差 。因此 , 我们很可能最终会得出过拟合模型 。另一方面 , 如果k太大 , 则模型过于笼统 , 在训练集和测试集上都不是很好的预测指标 。这种情况称为欠拟合 。
kNN简单易懂 。它没有做任何假设 , 因此可以在非线性任务中实现 。随着数据点数量的增加 , kNN变得非常慢 , 因为模型需要存储所有数据点 。因此 , 它也不是有效的存储器 。kNN的另一个缺点是它对异常值敏感 。
6.决策树决策树建立在反复询问问题以对数据进行分区的基础上 。使用决策树的可视化表示来更容易地概念化分区数据:
11种最常见的机器学习算法简介

文章插图
 
这代表了预测客户流失的决策树 。第一次划分是基于每月的费用金额 。然后 , 算法不断询问问题以分离类标签 。随着树的深入 , 问题变得更加具体 。
决策树算法的目的是在每个分区尽可能多地提高预测性 , 以便模型不断获取有关数据集的信息 。随机分割要素通常不能使我们深入了解数据集 。增加节点纯度的拆分更具参考价值 。节点的纯度与该节点中不同类别的分布成反比 。要提出的问题以提高纯度或减少杂质的方式选择 。
我们问多少个问题? 我们什么时候停止? 我们的树什么时候足以解决我们的分类问题? 对所有这些问题的答案使我们想到了机器学习中最重要的概念之一:过度拟合 。该模型可以一直询问问题 , 直到所有节点都纯为止 。但是 , 这将是一个过于具体的模型 , 不能很好地推广 。它通过训练集可以达到很高的精度 , 但是在新的 , 以前看不见的数据点上表现不佳 , 这表明过拟合 。scikit-learn中决策树算法的树深度由max_depth参数控制 。
决策树算法通常不需要规范化或缩放特征 。它还适用于混合特征数据类型(连续 , 分类 , 二进制) 。不利的一面是 , 它很容易过度拟合 , 因此必须进行汇总才能很好地概括 。
6.随机森林随机森林是许多决策树的集合 。随机森林是使用称为装袋的方法构建的 , 其中决策树用作并行估计器 。如果用于分类问题 , 则结果基于从每个决策树收到的结果的多数票 。对于回归 , 叶节点的预测是该叶中目标值的平均值 。随机森林回归采用决策树结果的平均值 。
随机森林减少了过度拟合的风险 , 准确性比单个决策树高得多 。此外 , 随机森林中的决策树并行运行 , 因此时间不会成为瓶颈 。
随机森林的成功很大程度上取决于使用不相关的决策树 。如果我们使用相同或非常相似的树 , 则总体结果将与单个决策树的结果相差无几 。随机森林通过自举和特征随机性来实现具有不相关的决策树 。
自举是从训练数据中随机选择样本进行替换 。它们称为引导程序样本 。
11种最常见的机器学习算法简介

文章插图
> Bootstrap samples (Figure source)
 
通过为随机森林中的每个决策树随机选择特征来实现特征随机性 。可以使用max_features参数控制随机森林中每棵树使用的特征数量 。
11种最常见的机器学习算法简介


推荐阅读