介绍
在我所接触的机器学习算法中,KNN是一种相对来说较容易理解的算法,但是它在实际中仍有十分广泛的应用。KNN算法可以用于分类和回归问题,在分类问题中应用较多,虽然KNN很少用于回归问题,但对于连续的变量仍有很好的效果。下面我们来介绍KNN算法在回归问题中的应用以及如何用python实现KNN算法的应用案例。
一、案例引入
我们先看一个案例,这样可以更直观的理解KNN算法。数据如下表,其中包括10个人的身高、体重和年龄数据,然后预测第十一个人的体重。
为了更清晰地了解数据间的关系,我们用坐标轴将身高和年龄表示出来,其中横坐标为年龄(age)、纵坐标为身高(Height)。
通过上图可以看到,11点的值是需要求解的,那么怎么求呢?我们可以看到在图中11点更接近于5点和1点,所以其体重应该更接近于5点和1点的值,也就是在72-77之间,这样我们就可以大致得到11点的体重值。下面我们用算法来实现这一过程。
二、KNN算法工作
如上所述,KNN可以用于分类和回归问题,通过样本间的某些相似特征来进行预测未知元素的值,即“物以类聚”:相同或相似的事物之间具有一些相似的特征。
在分类问题中,我们可以直接将其最近的样本值作为预测结果,那么在回归问题中怎么计算最终的预测结果呢?就像上面的例子,11点取值介于72-77之间,最终结果应该取多少合适呢?一般来说,我们将其平均值作为最终的预测结果。
算法步骤
1、计算待测点到已知点的距离
2、选择距离待测点最近的K个点,k值为人工设置的,至于k值如何设置合