IRIS数据采用Kmeans方法的C++实现
参考:http://blog.csdn.net/cai0538/article/details/7061922
#include<iostream>
#include<fstream>
#include<vector>
#include<math.h>
#include<string>
#include<sstream>
#include<stdlib.h>
#include<time.h>
#define k 3
using namespace std;
//构建属性结构,读取txt文件中的字符串
struct Tuple {
string attr1;
string attr2;
string attr3;
string attr4;
string attr5;
};
//构建属性结构,将数据转换为所需要的数据以及字符串
struct Tuple1 {
float attr1;
float attr2;
float attr3;
float attr4;
string attr5;
};
//计算两个样本之间的欧式距离
float getDisXY(Tuple1 t1, Tuple1 t2) {
float dis = 0;
dis = sqrt((t1.attr1 - t2.attr1)*(t1.attr1 - t2.attr1) + (t1.attr2 - t2.attr2)*(t1.attr2 - t2.attr2)
+ (t1.attr3 - t2.attr3)*(t1.attr3 - t2.attr3) + (t1.attr4 - t2.attr4)*(t1.attr4 - t2.attr4));
return dis;
}
//根据质心判断属于那一类
int