如上题,因为50是feaures的数量,而300是客户的数量,所以不选50和300,使用排除法选出最合适的选项是A,而不是因为需要分出5个portfolio所以选择A:5作为K值是吗?
星星_品职助教 · 2020年11月30日
同学你好,
你这个问题我后来又想了一下,之前回复有误,更新了一下:
------------------
首先简述一下k近邻算法的流程:
1. 找到n个已经根据50个特征分好类的客户,这里每一个客户都已经被划分进了1号到5号里其中的一个portfolio(即属于五类portfolio中的一类)。
2. 这时候又来了一个新的客户,要判断应该把这个客户归类到哪一类portfolio中。
此时采取的做法是:
1. 同样找到这个新客户的50个特征,与已分好类的客户逐个特征进行对比。
2. 计算每个特征之间的距离,然后加总得到一个总距离。与n个客户对比就会计算出n个总距离。
3. 将这n个总距离进行排序,找到离这个新客户最近的k个客户。
4. 由于这k个客户都是已经分好类的客户,所以看这k个客户每个人的portfolio分类,找出其中出现最多的那个分类。
5. 将新的客户归类为属于最多的那类portfolio,例如假设这k个客户中,绝大多数都属于1类portfolio,那么新的客户也就属于1类portfolio。
通过以上的流程可以看出来,这时候k必须大于5,不然肯定会出现有一类或者几类portfolio没有被考虑到的情况。假设k=4,就有会出现这四个客户最多只能属于4个portfolio(例如分别属于1,2,3,4号portfolio)的情况。这种情况下5号portfolio根本不可能被考虑到,新客户永远不可能被分到被遗漏的那个portfolio 中(在这个例子里就是portfolio 5)。
事实上只要k<5,就会出现至少有一类portfolio不被考虑到的情况。
所以要选择的k需要至少大于等于5。由于题目中问的是“closet”k,所以应该选择5。
但k也不能选择的过大,因为过大的k值会稀释“最”近邻的概念。所以k等于几十几百也是不行的。