数据挖掘实验报告
——K-最临近分类算法
学号:108060894 姓名:沈洁
一、 数据源说明
1.数据理解
选择第二包数据Iris Data Set,共有150组数据,考虑到训练数据集的随机性和多样性,选择rowNo模3不等于0的100组作为训练数据集,剩下的50组做测试数据集。
(1)每组数据有5个属性,分别是:1. sepal length in cm
2. sepal wrowNoth in cm
3. petal length in cm
4. petal wrowNoth in cm
5. class:
-- Iris Setosa
-- Iris Versicolour
-- Iris Virginica
(2) 为了操作方便,对各组数据添加rowNo属性,且第一组rowNo=1。
2.数据清理
现实世界的数据一般是不完整的、有噪声的和不一致的。数据清理例程试图填充缺失的值,光滑噪声并识别离群点,并纠正数据中的不一致。
a) 缺失值:当数据中存在缺失值是,忽略该元组(注意:本文选用的第二组数据Iris Data Set的Missing Attribute Values: None)。
b) 噪声数据:本文暂没考虑。
二、 K-最临近分类算法
KNN(k Nearest Neighbors)算法又叫k最临近方法,假设每一个类包含多个样本数据,而且每个数据都有一个唯一的类标记表示这些样本是属于哪一个分类, KNN就是计算每个样本数据到待分类数据的距离,如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 KNN方法虽然从原理上也依赖于极限定理,但在类别决策时,只与极少量的相邻样本有关。因此,采用这种方法可以较好地避免样本的不平衡问题。另外,由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合。 该方法的不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
(1)算法思路:
K-最临近分类方法存放所有的训练样本,在接受待分类的新样本之前不需构造模型,并且直到新的(未标记的)样本需要分类时才建立分类。K-最临近分类基于类比学习,其训练样本由N维数值属性描述,每个样本代表N维空间的一个点。这样,所有训练样本都存放在N维模式空间中。给定一个未知样本,k-最临近分类法搜索模式空间,找出最接近未知样本的K个训练样本。这K个训练样本是未知样本的K个“近邻”。“临近性”又称为相异度(Dissimilarity),由欧几里德距离定义,其中两个点 X(x1,x2,…xn)和Y(y1,y2,…yn)的欧几里德距离是:
未知样本被分配到K个最临近者中最公共的类。在最简单的情况下,也就是当K=1时,未知样本被指定到模式空间中与之最临近的训练样本的类。
(2)算法步骤:
step.1---初始化距离为最大值
step.2---计算未知样本和每个训练样本的距离dist
step.3---得到目前K个最临近样本中的最大距离maxdist
step.4---如果dist小于maxdist,则将该训练样本作为K-最近邻样本
step.5---重复步骤2、3、4,直到未知样本和所有训练样本的距离都算完
step.6---统计K-最近邻样本中每个类标号出现的次数
step.7---选择出现频率最大的类标号作为未知样本的类标号
三、 算法源代码
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// KNN.cpp K-最近邻分类算法
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
#include <string.h>
#include <iostream.h>
#include <math.h>
#include <fstream.h>
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 宏定义
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
#define ATTR_NUM 4 //属性数目
#define MAX_SIZE_OF_TRAINING_SET 1000 //训练数据集的最大大小
#define MAX_SIZE_OF_TEST_SET 100 //测试数据集的最大大小
#define MAX_VALUE 10000.0 //属性最大值
#define K 7
//结构体
struct dataVector {
int ID; //ID号
char classLabel[15]; //分类标号
double attributes[ATTR_NUM]; //属性
};
struct distanceStruct {
int ID; //ID号
double distance; //距离
char classLabel[15]; //分类标号
};
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 全局变量
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
struct dataVector gTrainingSet[MAX_SIZE_OF_TRAINING_SET]; //训练数据集
struct dataVector gTestSet[MAX_SIZE_OF_TEST_SET]; //测试数据集
struct distanceStruct gNearestDistance[K]; //K个最近邻距离
int curTrainingSetSize=0; //训练数据集的大小
int curTestSetSize=0; //测试数据集的大小
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 求 vector1=(x1,x2,...,xn)和vector2=(y1,y2,...,yn)的欧几里德距离
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
double Distance(struct dataVector vector1,struct dataVector vector2)
{
double dist,sum=0.0;
for(int i=0;i<ATTR_NUM;i++)
{
sum+=(vector1.attributes[i]-vector2.attributes[i])*(vector1.attributes[i]-vector2.attributes[i]);
}
dist=sqrt(sum);
return dist;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 得到gNearestDistance中的最大距离,返回下标
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
int GetMaxDistance()
{
int maxNo=0;
for(int i=1;i<K;i++)
{
if(gNearestDistance[i].distance>gNearestDistance[maxNo].distance) maxNo = i;
}
return maxNo;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 对未知样本Sample分类
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
char* Classify(struct dataVector Sample)
{
double dist=0;
int maxid=0,freq[K],i,tmpfreq=1;;
char *curClassLable=gNearestDistance[0].classLabel;
memset(freq,1,sizeof(freq));
//step.1---初始化距离为最大值
for(i=0;i<K;i++)
{
gNearestDistance[i].distance=MAX_VALUE;
}
//step.2---计算K-最近邻距离
for(i=0;i<curTrainingSetSize;i++)
{
//step.2.1---计算未知样本和每个训练样本的距离
dist=Distance(gTrainingSet[i],Sample);
//step.2.2---得到gNearestDistance中的最大距离
maxid=GetMaxDistance();
//step.2.3---如果距离小于gNearestDistance中的最大距离,则将该样本作为K-最近邻样本
if(dist<gNearestDistance[maxid].distance)
{
gNearestDistance[maxid].ID=gTrainingSet[i].ID;
gNearestDistance[maxid].distance=dist;
strcpy(gNearestDistance[maxid].classLabel,gTrainingSet[i].classLabel);
}
}
//step.3---统计每个类出现的次数
for(i=0;i<K;i++)
{
for(int j=0;j<K;j++)
{
if((i!=j)&&(strcmp(gNearestDistance[i].classLabel,gNearestDistance[j].classLabel)==0))
{
freq[i]+=1;
}
}
}
//step.4---选择出现频率最大的类标号
for(i=0;i<K;i++)
{
if(freq[i]>tmpfreq)
{
tmpfreq=freq[i];
curClassLable=gNearestDistance[i].classLabel;
}
}
return curClassLable;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 主函数
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
void main()
{
char c;
char *classLabel="";
int i,j, rowNo=0,TruePositive=0,FalsePositive=0;
ifstream filein("iris.data");
FILE *fp;
if(filein.fail()){cout<<"Can't open data.txt"<<endl; return;}
//step.1---读文件
while(!filein.eof())
{
rowNo++;//第一组数据rowNo=1
if(curTrainingSetSize>=MAX_SIZE_OF_TRAINING_SET)
{
cout<<"The training set has "<<MAX_SIZE_OF_TRAINING_SET<<" examples!"<<endl<<endl;
break ;
}
//rowNo%3!=0的100组数据作为训练数据集
if(rowNo%3!=0)
{
gTrainingSet[curTrainingSetSize].ID=rowNo;
for(int i = 0;i < ATTR_NUM;i++)
{
filein>>gTrainingSet[curTrainingSetSize].attributes[i];
filein>>c;
}
filein>>gTrainingSet[curTrainingSetSize].classLabel;
curTrainingSetSize++;
}
//剩下rowNo%3==0的50组做测试数据集
else if(rowNo%3==0)
{
gTestSet[curTestSetSize].ID=rowNo;
for(int i = 0;i < ATTR_NUM;i++)
{
filein>>gTestSet[curTestSetSize].attributes[i];
filein>>c;
}
filein>>gTestSet[curTestSetSize].classLabel;
curTestSetSize++;
}
}
filein.close();
//step.2---KNN算法进行分类,并将结果写到文件iris_OutPut.txt
fp=fopen("iris_OutPut.txt","w+t");
//用KNN算法进行分类
fprintf(fp,"************************************程序说明***************************************\n");
fprintf(fp,"** 采用KNN算法对iris.data分类。为了操作方便,对各组数据添加rowNo属性,第一组rowNo=1!\n");
fprintf(fp,"** 共有150组数据,选择rowNo模3不等于0的100组作为训练数据集,剩下的50组做测试数据集\n");
fprintf(fp,"***********************************************************************************\n\n");
fprintf(fp,"************************************实验结果***************************************\n\n");
for(i=0;i<curTestSetSize;i++)
{
fprintf(fp,"************************************第%d组数据**************************************\n",i+1);
classLabel =Classify(gTestSet[i]);
if(strcmp(classLabel,gTestSet[i].classLabel)==0)//相等时,分类正确
{
TruePositive++;
}
cout<<"rowNo: ";
cout<<gTestSet[i].ID<<" \t";
cout<<"KNN分类结果: ";
cout<<classLabel<<"(正确类标号: ";
cout<<gTestSet[i].classLabel<<")\n";
fprintf(fp,"rowNo: %3d \t KNN分类结果: %s ( 正确类标号: %s )\n",gTestSet[i].ID,classLabel,gTestSet[i].classLabel);
if(strcmp(classLabel,gTestSet[i].classLabel)!=0)//不等时,分类错误
{
// cout<<" ***分类错误***\n";
fprintf(fp," ***分类错误***\n");
}
fprintf(fp,"%d-最临近数据:\n",K);
for(j=0;j<K;j++)
{
// cout<<gNearestDistance[j].ID<<"\t"<<gNearestDistance[j].distance<<"\t"<<gNearestDistance[j].classLabel[15]<<endl;
fprintf(fp,"rowNo: %3d \t Distance: %f \tClassLable: %s\n",gNearestDistance[j].ID,gNearestDistance[j].distance,gNearestDistance[j].classLabel);
}
fprintf(fp,"\n");
}
FalsePositive=curTestSetSize-TruePositive;
fprintf(fp,"***********************************结果分析**************************************\n",i);
fprintf(fp,"TP(True positive): %d\nFP(False positive): %d\naccuracy: %f\n",TruePositive,FalsePositive,double(TruePositive)/(curTestSetSize-1));
fclose(fp);
return;
}
四、 详细描述该算法获得的模型
采用第二包数据Iris Data Set,共有150组数据,考虑到训练数据集的随机性和多样性,选择rowNo模3不等于0的100组作为训练数据集,剩下的50组做测试数据集。对未知样本进行分类(括号里的正确类标号是读取的iris.data文件里的类标号,括号外的是计算所得),本文取k=7个最邻近数据。
以第19组为例进行说明,未知样本ROWNO为57,经过KNN算法分类,与之最临近的7组数据rowNo号分别为:52、86、128、139、92、64、71,其中类标号为Iris-versicolor的有5个,类标号为Iris-virginica的有2个,Iris-versicolor为最多,因此据此估计该组样本的类标号为Iris-versicolor。
50组测试样本运行结果如下:
************************************程序说明***************************************
** 采用KNN算法对iris.data分类。为了操作方便,对各组数据添加rowNo属性,第一组rowNo=1!
** 共有150组数据,选择rowNo模3不等于0的100组作为训练数据集,剩下的50组做测试数据集
***********************************************************************************
************************************实验结果***************************************
************************************第1组数据**************************************
rowNo: 3 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 43 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 2 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 4 Distance: 0.244949 ClassLable: Iris-setosa
rowNo: 13 Distance: 0.264575 ClassLable: Iris-setosa
rowNo: 7 Distance: 0.264575 ClassLable: Iris-setosa
rowNo: 46 Distance: 0.264575 ClassLable: Iris-setosa
rowNo: 10 Distance: 0.316228 ClassLable: Iris-setosa
************************************第2组数据**************************************
rowNo: 6 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 22 Distance: 0.412311 ClassLable: Iris-setosa
rowNo: 47 Distance: 0.387298 ClassLable: Iris-setosa
rowNo: 11 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 49 Distance: 0.360555 ClassLable: Iris-setosa
rowNo: 19 Distance: 0.331662 ClassLable: Iris-setosa
rowNo: 20 Distance: 0.387298 ClassLable: Iris-setosa
rowNo: 17 Distance: 0.400000 ClassLable: Iris-setosa
************************************第3组数据**************************************
rowNo: 9 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 14 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 2 Distance: 0.509902 ClassLable: Iris-setosa
rowNo: 4 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 13 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 46 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 31 Distance: 0.489898 ClassLable: Iris-setosa
rowNo: 43 Distance: 0.316228 ClassLable: Iris-setosa
************************************第4组数据**************************************
rowNo: 12 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 31 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 25 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 40 Distance: 0.316228 ClassLable: Iris-setosa
rowNo: 50 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 7 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 8 Distance: 0.223607 ClassLable: Iris-setosa
rowNo: 10 Distance: 0.346410 ClassLable: Iris-setosa
************************************第5组数据**************************************
rowNo: 15 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 34 Distance: 0.412311 ClassLable: Iris-setosa
rowNo: 17 Distance: 0.469042 ClassLable: Iris-setosa
rowNo: 11 Distance: 0.583095 ClassLable: Iris-setosa
rowNo: 37 Distance: 0.591608 ClassLable: Iris-setosa
rowNo: 16 Distance: 0.547723 ClassLable: Iris-setosa
rowNo: 49 Distance: 0.655744 ClassLable: Iris-setosa
rowNo: 19 Distance: 0.556776 ClassLable: Iris-setosa
************************************第6组数据**************************************
rowNo: 18 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 1 Distance: 0.100000 ClassLable: Iris-setosa
rowNo: 40 Distance: 0.173205 ClassLable: Iris-setosa
rowNo: 29 Distance: 0.173205 ClassLable: Iris-setosa
rowNo: 5 Distance: 0.173205 ClassLable: Iris-setosa
rowNo: 41 Distance: 0.141421 ClassLable: Iris-setosa
rowNo: 8 Distance: 0.200000 ClassLable: Iris-setosa
rowNo: 28 Distance: 0.173205 ClassLable: Iris-setosa
************************************第7组数据**************************************
rowNo: 21 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 49 Distance: 0.374166 ClassLable: Iris-setosa
rowNo: 37 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 11 Distance: 0.360555 ClassLable: Iris-setosa
rowNo: 29 Distance: 0.360555 ClassLable: Iris-setosa
rowNo: 28 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 40 Distance: 0.360555 ClassLable: Iris-setosa
rowNo: 32 Distance: 0.282843 ClassLable: Iris-setosa
************************************第8组数据**************************************
rowNo: 24 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 40 Distance: 0.374166 ClassLable: Iris-setosa
rowNo: 26 Distance: 0.447214 ClassLable: Iris-setosa
rowNo: 44 Distance: 0.264575 ClassLable: Iris-setosa
rowNo: 28 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 32 Distance: 0.387298 ClassLable: Iris-setosa
rowNo: 8 Distance: 0.387298 ClassLable: Iris-setosa
rowNo: 50 Distance: 0.435890 ClassLable: Iris-setosa
************************************第9组数据**************************************
rowNo: 27 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 1 Distance: 0.316228 ClassLable: Iris-setosa
rowNo: 50 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 41 Distance: 0.331662 ClassLable: Iris-setosa
rowNo: 44 Distance: 0.223607 ClassLable: Iris-setosa
rowNo: 40 Distance: 0.244949 ClassLable: Iris-setosa
rowNo: 8 Distance: 0.223607 ClassLable: Iris-setosa
rowNo: 28 Distance: 0.316228 ClassLable: Iris-setosa
************************************第10组数据**************************************
rowNo: 30 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 31 Distance: 0.141421 ClassLable: Iris-setosa
rowNo: 38 Distance: 0.264575 ClassLable: Iris-setosa
rowNo: 4 Distance: 0.173205 ClassLable: Iris-setosa
rowNo: 13 Distance: 0.316228 ClassLable: Iris-setosa
rowNo: 7 Distance: 0.316228 ClassLable: Iris-setosa
rowNo: 35 Distance: 0.264575 ClassLable: Iris-setosa
rowNo: 10 Distance: 0.264575 ClassLable: Iris-setosa
************************************第11组数据**************************************
rowNo: 33 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 34 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 22 Distance: 0.509902 ClassLable: Iris-setosa
rowNo: 11 Distance: 0.458258 ClassLable: Iris-setosa
rowNo: 49 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 47 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 20 Distance: 0.374166 ClassLable: Iris-setosa
rowNo: 17 Distance: 0.458258 ClassLable: Iris-setosa
************************************第12组数据**************************************
rowNo: 36 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 38 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 2 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 41 Distance: 0.331662 ClassLable: Iris-setosa
rowNo: 35 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 29 Distance: 0.346410 ClassLable: Iris-setosa
rowNo: 50 Distance: 0.223607 ClassLable: Iris-setosa
rowNo: 10 Distance: 0.346410 ClassLable: Iris-setosa
************************************第13组数据**************************************
rowNo: 39 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 13 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 46 Distance: 0.424264 ClassLable: Iris-setosa
rowNo: 4 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 14 Distance: 0.244949 ClassLable: Iris-setosa
rowNo: 7 Distance: 0.469042 ClassLable: Iris-setosa
rowNo: 31 Distance: 0.509902 ClassLable: Iris-setosa
rowNo: 43 Distance: 0.200000 ClassLable: Iris-setosa
************************************第14组数据**************************************
rowNo: 42 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 14 Distance: 0.781025 ClassLable: Iris-setosa
rowNo: 2 Distance: 0.818535 ClassLable: Iris-setosa
rowNo: 4 Distance: 0.836660 ClassLable: Iris-setosa
rowNo: 13 Distance: 0.793725 ClassLable: Iris-setosa
rowNo: 31 Distance: 0.911043 ClassLable: Iris-setosa
rowNo: 46 Distance: 0.768115 ClassLable: Iris-setosa
rowNo: 43 Distance: 0.911043 ClassLable: Iris-setosa
************************************第15组数据**************************************
rowNo: 45 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 28 Distance: 0.547723 ClassLable: Iris-setosa
rowNo: 49 Distance: 0.500000 ClassLable: Iris-setosa
rowNo: 22 Distance: 0.412311 ClassLable: Iris-setosa
rowNo: 47 Distance: 0.360555 ClassLable: Iris-setosa
rowNo: 20 Distance: 0.412311 ClassLable: Iris-setosa
rowNo: 44 Distance: 0.479583 ClassLable: Iris-setosa
rowNo: 25 Distance: 0.538516 ClassLable: Iris-setosa
************************************第16组数据**************************************
rowNo: 48 KNN分类结果: Iris-setosa ( 正确类标号: Iris-setosa )
7-最临近数据:
rowNo: 13 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 43 Distance: 0.223607 ClassLable: Iris-setosa
rowNo: 4 Distance: 0.141421 ClassLable: Iris-setosa
rowNo: 31 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 7 Distance: 0.223607 ClassLable: Iris-setosa
rowNo: 46 Distance: 0.300000 ClassLable: Iris-setosa
rowNo: 10 Distance: 0.346410 ClassLable: Iris-setosa
************************************第17组数据**************************************
rowNo: 51 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 59 Distance: 0.519615 ClassLable: Iris-versicolor
rowNo: 77 Distance: 0.458258 ClassLable: Iris-versicolor
rowNo: 55 Distance: 0.655744 ClassLable: Iris-versicolor
rowNo: 134 Distance: 0.905539 ClassLable: Iris-virginica
rowNo: 53 Distance: 0.264575 ClassLable: Iris-versicolor
rowNo: 76 Distance: 0.538516 ClassLable: Iris-versicolor
rowNo: 52 Distance: 0.640312 ClassLable: Iris-versicolor
************************************第18组数据**************************************
rowNo: 54 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 82 Distance: 0.435890 ClassLable: Iris-versicolor
rowNo: 70 Distance: 0.316228 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 83 Distance: 0.519615 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.591608 ClassLable: Iris-versicolor
rowNo: 95 Distance: 0.458258 ClassLable: Iris-versicolor
rowNo: 91 Distance: 0.509902 ClassLable: Iris-versicolor
************************************第19组数据**************************************
rowNo: 57 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 52 Distance: 0.264575 ClassLable: Iris-versicolor
rowNo: 86 Distance: 0.374166 ClassLable: Iris-versicolor
rowNo: 128 Distance: 0.458258 ClassLable: Iris-virginica
rowNo: 139 Distance: 0.479583 ClassLable: Iris-virginica
rowNo: 92 Distance: 0.424264 ClassLable: Iris-versicolor
rowNo: 64 Distance: 0.489898 ClassLable: Iris-versicolor
rowNo: 71 Distance: 0.469042 ClassLable: Iris-versicolor
************************************第20组数据**************************************
rowNo: 60 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 97 Distance: 0.624500 ClassLable: Iris-versicolor
rowNo: 89 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.556776 ClassLable: Iris-versicolor
rowNo: 70 Distance: 0.538516 ClassLable: Iris-versicolor
rowNo: 82 Distance: 0.616441 ClassLable: Iris-versicolor
rowNo: 65 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 95 Distance: 0.509902 ClassLable: Iris-versicolor
************************************第21组数据**************************************
rowNo: 63 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 95 Distance: 0.734847 ClassLable: Iris-versicolor
rowNo: 80 Distance: 0.707107 ClassLable: Iris-versicolor
rowNo: 70 Distance: 0.519615 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 83 Distance: 0.583095 ClassLable: Iris-versicolor
rowNo: 82 Distance: 0.616441 ClassLable: Iris-versicolor
rowNo: 88 Distance: 0.591608 ClassLable: Iris-versicolor
************************************第22组数据**************************************
rowNo: 66 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 59 Distance: 0.316228 ClassLable: Iris-versicolor
rowNo: 76 Distance: 0.141421 ClassLable: Iris-versicolor
rowNo: 53 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 98 Distance: 0.556776 ClassLable: Iris-versicolor
rowNo: 55 Distance: 0.424264 ClassLable: Iris-versicolor
rowNo: 52 Distance: 0.346410 ClassLable: Iris-versicolor
rowNo: 77 Distance: 0.509902 ClassLable: Iris-versicolor
************************************第23组数据**************************************
rowNo: 69 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 88 Distance: 0.264575 ClassLable: Iris-versicolor
rowNo: 55 Distance: 0.678233 ClassLable: Iris-versicolor
rowNo: 127 Distance: 0.734847 ClassLable: Iris-virginica
rowNo: 79 Distance: 0.728011 ClassLable: Iris-versicolor
rowNo: 73 Distance: 0.509902 ClassLable: Iris-versicolor
rowNo: 124 Distance: 0.714143 ClassLable: Iris-virginica
rowNo: 74 Distance: 0.707107 ClassLable: Iris-versicolor
************************************第24组数据**************************************
rowNo: 72 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 83 Distance: 0.346410 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.447214 ClassLable: Iris-versicolor
rowNo: 62 Distance: 0.400000 ClassLable: Iris-versicolor
rowNo: 97 Distance: 0.458258 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.412311 ClassLable: Iris-versicolor
rowNo: 89 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 98 Distance: 0.331662 ClassLable: Iris-versicolor
************************************第25组数据**************************************
rowNo: 75 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 92 Distance: 0.447214 ClassLable: Iris-versicolor
rowNo: 98 Distance: 0.200000 ClassLable: Iris-versicolor
rowNo: 55 Distance: 0.387298 ClassLable: Iris-versicolor
rowNo: 52 Distance: 0.412311 ClassLable: Iris-versicolor
rowNo: 76 Distance: 0.264575 ClassLable: Iris-versicolor
rowNo: 79 Distance: 0.489898 ClassLable: Iris-versicolor
rowNo: 59 Distance: 0.360555 ClassLable: Iris-versicolor
************************************第26组数据**************************************
rowNo: 78 KNN分类结果: Iris-virginica ( 正确类标号: Iris-versicolor )
***分类错误***
7-最临近数据:
rowNo: 124 Distance: 0.519615 ClassLable: Iris-virginica
rowNo: 77 Distance: 0.424264 ClassLable: Iris-versicolor
rowNo: 148 Distance: 0.412311 ClassLable: Iris-virginica
rowNo: 134 Distance: 0.500000 ClassLable: Iris-virginica
rowNo: 55 Distance: 0.529150 ClassLable: Iris-versicolor
rowNo: 53 Distance: 0.316228 ClassLable: Iris-versicolor
rowNo: 112 Distance: 0.556776 ClassLable: Iris-virginica
************************************第27组数据**************************************
rowNo: 81 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 80 Distance: 0.424264 ClassLable: Iris-versicolor
rowNo: 83 Distance: 0.447214 ClassLable: Iris-versicolor
rowNo: 82 Distance: 0.141421 ClassLable: Iris-versicolor
rowNo: 95 Distance: 0.547723 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.529150 ClassLable: Iris-versicolor
rowNo: 70 Distance: 0.173205 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.574456 ClassLable: Iris-versicolor
************************************第28组数据**************************************
rowNo: 84 KNN分类结果: Iris-virginica ( 正确类标号: Iris-versicolor )
***分类错误***
7-最临近数据:
rowNo: 139 Distance: 0.469042 ClassLable: Iris-virginica
rowNo: 143 Distance: 0.360555 ClassLable: Iris-virginica
rowNo: 124 Distance: 0.412311 ClassLable: Iris-virginica
rowNo: 134 Distance: 0.331662 ClassLable: Iris-virginica
rowNo: 127 Distance: 0.424264 ClassLable: Iris-virginica
rowNo: 128 Distance: 0.424264 ClassLable: Iris-virginica
rowNo: 73 Distance: 0.424264 ClassLable: Iris-versicolor
************************************第29组数据**************************************
rowNo: 87 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 76 Distance: 0.346410 ClassLable: Iris-versicolor
rowNo: 59 Distance: 0.316228 ClassLable: Iris-versicolor
rowNo: 53 Distance: 0.282843 ClassLable: Iris-versicolor
rowNo: 92 Distance: 0.624500 ClassLable: Iris-versicolor
rowNo: 55 Distance: 0.374166 ClassLable: Iris-versicolor
rowNo: 52 Distance: 0.374166 ClassLable: Iris-versicolor
rowNo: 77 Distance: 0.346410 ClassLable: Iris-versicolor
************************************第30组数据**************************************
rowNo: 90 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 83 Distance: 0.387298 ClassLable: Iris-versicolor
rowNo: 91 Distance: 0.424264 ClassLable: Iris-versicolor
rowNo: 82 Distance: 0.435890 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.374166 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.479583 ClassLable: Iris-versicolor
rowNo: 70 Distance: 0.244949 ClassLable: Iris-versicolor
rowNo: 95 Distance: 0.300000 ClassLable: Iris-versicolor
************************************第31组数据**************************************
rowNo: 93 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 89 Distance: 0.469042 ClassLable: Iris-versicolor
rowNo: 97 Distance: 0.387298 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.264575 ClassLable: Iris-versicolor
rowNo: 95 Distance: 0.316228 ClassLable: Iris-versicolor
rowNo: 83 Distance: 0.141421 ClassLable: Iris-versicolor
rowNo: 70 Distance: 0.264575 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.244949 ClassLable: Iris-versicolor
************************************第32组数据**************************************
rowNo: 96 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 89 Distance: 0.173205 ClassLable: Iris-versicolor
rowNo: 95 Distance: 0.331662 ClassLable: Iris-versicolor
rowNo: 100 Distance: 0.244949 ClassLable: Iris-versicolor
rowNo: 97 Distance: 0.141421 ClassLable: Iris-versicolor
rowNo: 56 Distance: 0.374166 ClassLable: Iris-versicolor
rowNo: 62 Distance: 0.360555 ClassLable: Iris-versicolor
rowNo: 68 Distance: 0.387298 ClassLable: Iris-versicolor
************************************第33组数据**************************************
rowNo: 99 KNN分类结果: Iris-versicolor ( 正确类标号: Iris-versicolor )
7-最临近数据:
rowNo: 70 Distance: 1.029563 ClassLable: Iris-versicolor
rowNo: 82 Distance: 0.818535 ClassLable: Iris-versicolor
rowNo: 61 Distance: 0.721110 ClassLable: Iris-versicolor
rowNo: 65 Distance: 0.900000 ClassLable: Iris-versicolor
rowNo: 94 Distance: 0.387298 ClassLable: Iris-versicolor
rowNo: 58 Distance: 0.387298 ClassLable: Iris-versicolor
rowNo: 80 Distance: 0.793725 ClassLable: Iris-versicolor
************************************第34组数据**************************************
rowNo: 102 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 122 Distance: 0.316228 ClassLable: Iris-virginica
rowNo: 128 Distance: 0.479583 ClassLable: Iris-virginica
rowNo: 127 Distance: 0.519615 ClassLable: Iris-virginica
rowNo: 139 Distance: 0.479583 ClassLable: Iris-virginica
rowNo: 115 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 124 Distance: 0.547723 ClassLable: Iris-virginica
rowNo: 143 Distance: 0.000000 ClassLable: Iris-virginica
************************************第35组数据**************************************
rowNo: 105 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 125 Distance: 0.387298 ClassLable: Iris-virginica
rowNo: 133 Distance: 0.300000 ClassLable: Iris-virginica
rowNo: 145 Distance: 0.479583 ClassLable: Iris-virginica
rowNo: 113 Distance: 0.435890 ClassLable: Iris-virginica
rowNo: 101 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 104 Distance: 0.500000 ClassLable: Iris-virginica
rowNo: 121 Distance: 0.469042 ClassLable: Iris-virginica
************************************第36组数据**************************************
rowNo: 108 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 109 Distance: 0.877496 ClassLable: Iris-virginica
rowNo: 103 Distance: 0.547723 ClassLable: Iris-virginica
rowNo: 106 Distance: 0.529150 ClassLable: Iris-virginica
rowNo: 136 Distance: 0.678233 ClassLable: Iris-virginica
rowNo: 130 Distance: 0.556776 ClassLable: Iris-virginica
rowNo: 121 Distance: 0.927362 ClassLable: Iris-virginica
rowNo: 131 Distance: 0.264575 ClassLable: Iris-virginica
************************************第37组数据**************************************
rowNo: 111 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 146 Distance: 0.424264 ClassLable: Iris-virginica
rowNo: 113 Distance: 0.547723 ClassLable: Iris-virginica
rowNo: 116 Distance: 0.374166 ClassLable: Iris-virginica
rowNo: 148 Distance: 0.223607 ClassLable: Iris-virginica
rowNo: 142 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 140 Distance: 0.519615 ClassLable: Iris-virginica
rowNo: 128 Distance: 0.529150 ClassLable: Iris-virginica
************************************第38组数据**************************************
rowNo: 114 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 139 Distance: 0.648074 ClassLable: Iris-virginica
rowNo: 122 Distance: 0.331662 ClassLable: Iris-virginica
rowNo: 115 Distance: 0.519615 ClassLable: Iris-virginica
rowNo: 143 Distance: 0.264575 ClassLable: Iris-virginica
rowNo: 128 Distance: 0.678233 ClassLable: Iris-virginica
rowNo: 127 Distance: 0.648074 ClassLable: Iris-virginica
rowNo: 124 Distance: 0.670820 ClassLable: Iris-virginica
************************************第39组数据**************************************
rowNo: 117 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 113 Distance: 0.424264 ClassLable: Iris-virginica
rowNo: 133 Distance: 0.469042 ClassLable: Iris-virginica
rowNo: 148 Distance: 0.360555 ClassLable: Iris-virginica
rowNo: 140 Distance: 0.519615 ClassLable: Iris-virginica
rowNo: 125 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 104 Distance: 0.244949 ClassLable: Iris-virginica
rowNo: 112 Distance: 0.387298 ClassLable: Iris-virginica
************************************第40组数据**************************************
rowNo: 120 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 73 Distance: 0.435890 ClassLable: Iris-versicolor
rowNo: 88 Distance: 0.707107 ClassLable: Iris-versicolor
rowNo: 143 Distance: 0.678233 ClassLable: Iris-virginica
rowNo: 74 Distance: 0.741620 ClassLable: Iris-versicolor
rowNo: 124 Distance: 0.663325 ClassLable: Iris-virginica
rowNo: 134 Distance: 0.678233 ClassLable: Iris-virginica
rowNo: 127 Distance: 0.728011 ClassLable: Iris-virginica
************************************第41组数据**************************************
rowNo: 123 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 130 Distance: 1.122497 ClassLable: Iris-virginica
rowNo: 119 Distance: 0.412311 ClassLable: Iris-virginica
rowNo: 106 Distance: 0.264575 ClassLable: Iris-virginica
rowNo: 118 Distance: 1.019804 ClassLable: Iris-virginica
rowNo: 131 Distance: 0.678233 ClassLable: Iris-virginica
rowNo: 136 Distance: 0.700000 ClassLable: Iris-virginica
rowNo: 103 Distance: 1.024695 ClassLable: Iris-virginica
************************************第42组数据**************************************
rowNo: 126 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 130 Distance: 0.346410 ClassLable: Iris-virginica
rowNo: 140 Distance: 0.741620 ClassLable: Iris-virginica
rowNo: 125 Distance: 0.663325 ClassLable: Iris-virginica
rowNo: 121 Distance: 0.655744 ClassLable: Iris-virginica
rowNo: 113 Distance: 0.734847 ClassLable: Iris-virginica
rowNo: 103 Distance: 0.387298 ClassLable: Iris-virginica
rowNo: 131 Distance: 0.469042 ClassLable: Iris-virginica
************************************第43组数据**************************************
rowNo: 129 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 112 Distance: 0.374166 ClassLable: Iris-virginica
rowNo: 113 Distance: 0.458258 ClassLable: Iris-virginica
rowNo: 133 Distance: 0.100000 ClassLable: Iris-virginica
rowNo: 104 Distance: 0.331662 ClassLable: Iris-virginica
rowNo: 109 Distance: 0.556776 ClassLable: Iris-virginica
rowNo: 116 Distance: 0.538516 ClassLable: Iris-virginica
rowNo: 148 Distance: 0.469042 ClassLable: Iris-virginica
************************************第44组数据**************************************
rowNo: 132 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 106 Distance: 0.883176 ClassLable: Iris-virginica
rowNo: 130 Distance: 1.284523 ClassLable: Iris-virginica
rowNo: 136 Distance: 0.927362 ClassLable: Iris-virginica
rowNo: 131 Distance: 1.161895 ClassLable: Iris-virginica
rowNo: 118 Distance: 0.412311 ClassLable: Iris-virginica
rowNo: 110 Distance: 0.932738 ClassLable: Iris-virginica
rowNo: 103 Distance: 1.240967 ClassLable: Iris-virginica
************************************第45组数据**************************************
rowNo: 135 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 134 Distance: 0.583095 ClassLable: Iris-virginica
rowNo: 143 Distance: 0.774597 ClassLable: Iris-virginica
rowNo: 104 Distance: 0.538516 ClassLable: Iris-virginica
rowNo: 124 Distance: 0.836660 ClassLable: Iris-virginica
rowNo: 73 Distance: 0.741620 ClassLable: Iris-versicolor
rowNo: 112 Distance: 0.663325 ClassLable: Iris-virginica
rowNo: 109 Distance: 0.754983 ClassLable: Iris-virginica
************************************第46组数据**************************************
rowNo: 138 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 113 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 116 Distance: 0.547723 ClassLable: Iris-virginica
rowNo: 112 Distance: 0.458258 ClassLable: Iris-virginica
rowNo: 104 Distance: 0.244949 ClassLable: Iris-virginica
rowNo: 133 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 125 Distance: 0.509902 ClassLable: Iris-virginica
rowNo: 148 Distance: 0.387298 ClassLable: Iris-virginica
************************************第47组数据**************************************
rowNo: 141 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 140 Distance: 0.412311 ClassLable: Iris-virginica
rowNo: 116 Distance: 0.447214 ClassLable: Iris-virginica
rowNo: 146 Distance: 0.424264 ClassLable: Iris-virginica
rowNo: 145 Distance: 0.244949 ClassLable: Iris-virginica
rowNo: 113 Distance: 0.346410 ClassLable: Iris-virginica
rowNo: 125 Distance: 0.374166 ClassLable: Iris-virginica
rowNo: 121 Distance: 0.264575 ClassLable: Iris-virginica
************************************第48组数据**************************************
rowNo: 144 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 103 Distance: 0.412311 ClassLable: Iris-virginica
rowNo: 101 Distance: 0.556776 ClassLable: Iris-virginica
rowNo: 125 Distance: 0.316228 ClassLable: Iris-virginica
rowNo: 140 Distance: 0.556776 ClassLable: Iris-virginica
rowNo: 145 Distance: 0.316228 ClassLable: Iris-virginica
rowNo: 113 Distance: 0.489898 ClassLable: Iris-virginica
rowNo: 121 Distance: 0.223607 ClassLable: Iris-virginica
************************************第49组数据**************************************
rowNo: 147 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 112 Distance: 0.374166 ClassLable: Iris-virginica
rowNo: 127 Distance: 0.387298 ClassLable: Iris-virginica
rowNo: 143 Distance: 0.547723 ClassLable: Iris-virginica
rowNo: 128 Distance: 0.556776 ClassLable: Iris-virginica
rowNo: 73 Distance: 0.412311 ClassLable: Iris-versicolor
rowNo: 124 Distance: 0.244949 ClassLable: Iris-virginica
rowNo: 134 Distance: 0.509902 ClassLable: Iris-virginica
************************************第50组数据**************************************
rowNo: 150 KNN分类结果: Iris-virginica ( 正确类标号: Iris-virginica )
7-最临近数据:
rowNo: 124 Distance: 0.538516 ClassLable: Iris-virginica
rowNo: 71 Distance: 0.360555 ClassLable: Iris-versicolor
rowNo: 127 Distance: 0.469042 ClassLable: Iris-virginica
rowNo: 139 Distance: 0.316228 ClassLable: Iris-virginica
rowNo: 128 Distance: 0.282843 ClassLable: Iris-virginica
rowNo: 143 Distance: 0.331662 ClassLable: Iris-virginica
rowNo: 122 Distance: 0.458258 ClassLable: Iris-virginica
五、 结果分析:分类性能分析
程序计算TP和FP,结果如下:
-TP(True positive): 48
-FP(False positive): 2
-Accuracy: 0.979592