资 源 简 介
应用背景k近邻(K-Nearest-Neighbor,KNN)是数据挖掘中最简单的一个算法,用于目标分类。其基本原理是“近朱者赤,近墨者黑”。比如在一片原始深林中有一些动物(比如1000只),有大象、老虎、狮子、狗、山猫等。假定你知道每只动物的位置(x,y)。如果有人告诉你在(a,b)处有一只动物,根据KNN算法,你先找出离(a,b)最近的5只动物(k=5),然后找出这五只动物中最多的是哪类动物,则可以预测(a,b)处的动物也属于这类动物。记住,你要将已知动物的位置和种类存入文件,格式为:
10,34,老虎
10,38,老虎
109,35,狮子
104,40,山猫
... ...
手工输入1000个动物不是个好主意,建议编另外一个程序随机地在某区域生成若干只动物,注意动物通常都是群居,如果随机安排1000只动物,则KNN就失去了意义。
用C# 窗体程序开发,要求不但能预测(a,b)处动物的类别,而且还能显示他周围具体有哪k个动物。如果能够用图形画出这些动物的位置,肯定能得优。关键技术 public string Predict()
{
for (int i = 0; i < 1000; i++)
{
animals[i].distance = (posx - animals[i].x) * (posx - animals[i].x) + (posy - animals[i].y) * (posy - animals[i].y);