KNN为什么是监督学习?

KNN为什么是监督学习?

KNN算法,最近邻居算法,虽然被归类为监督学习,但是我一直有些疑问。觉得它不算一个正经的监督学习算法。

1. KNN压根没有学习过程

KNN是没有学习过程的,所以应不应该归类为机器学习都不好说。它的算法大致如下,首先你有一堆有label的样本,然后来了一个新的没有label的数据点,你想把这个点分成既有的类别,怎么分?
很容易想到方法是,看距离这个新的数据点的比较近的邻居,都是什么label的,如果大多数都是A类,那么这个新数据点很大可能性是A。至于K,只是你要看几个邻居。
但是你发现,它其实并没有一个根据学习数据的label调整自身逻辑或者参数的过程,只是一个计算逻辑。

2.只因需要label数据所谓被归类为监督学习

KNN被算作监督学习主要原因是,它需要有label的数据,在一定程度上反映了label数据的规律。如果这是宽泛的监督学习定义的话,那么它可以被分类成监督学习。但就算如此KNN算也是监督学习里面比较不一样的算法吧。
毕竟它的核心就是,如果我之前见到的数据都大多都是A,那么新来的也应该是A,这种比较简易的逻辑,不能算作有预测能力。

3. 在SMOTE等up-sampling里的作用

最开始接触KNN,是在处理不平衡数据做up-sampling的时候,比如SMOTE的算法里面就有用KNN生成minor class的样本,比单纯的只复制增加minor class + downsampling major class效果要好

你可能感兴趣的:(机器学习的一些想法和笔记,机器学习)