可以发现模型的效果显著提升,特别是测试集的R2score比原来好了很多。同时,我们可以看到测试集的散点图中的点更加集中在45度线上,说明预测值与真实值普遍变得更加接近。经过后续探究我们发现,此时再改变k的值并不会给测试集得分带来改善。因此,这里我们选用k=2作为最终模型。
6.4.3算法评价
KNN算法无须训练带来的直接好处是模型简洁易懂,易于通过代码实现。整个预测过程看似只有“一步”,就是选择离目标点最近的k个点。但模型简单并不意味着计算简单。这也是KNN算法最遗憾的一点。要选出离目标点最近的k个点,我们在图中可以一目了然地找到。但计算机需要遍历整个样本集才能找出这k个点。加入预测集有200条样本需要预测,那么对于这200个点中的每一个点,都需要计算和训练集中所有样本点之间的距离,以便选出其中最近的k个点,这个计算量是巨大的。
6.5 决策树算法
决策树是使用树形结构进行决策的模型。决策树很适合用于工业界的机器学习建模,因为树的一个最大优点就是过程简单,易于理解,你可以很清晰地将其决策的依据讲给一个不懂机器学习的局外人。比如我们可以展示如图6-24所示的树形图,让客户或行业外的人直观地看到决策路径,使模型的结果具备较强的说服力。
在决策树上,叶子节点是决策树末端的节点,代表分类结果。图6-24中的蓝色节点(矩形表示的节点)均为叶子节点。那么问题来了,我们从最上面的节点出发,对于每个节点,应该如何选择决策条件呢?要用X1、X2、X3中的哪个变量进行区分?假设我们定下来要用X1进行区分,又该选择什么数值作为分界点呢?
这些分界点是要通过训练得到的。上述各个节点所选择的特征和数值就是决策树要训练的参数。但我们要告诉决策树选择的原则,这里介绍的是CART决策树算法。除此之外,还有ID3、C4.5算法。它们的差异是节点选择参数的标准不同。下面我们介绍CART算法。
第6章 机器学习算法
179