程序设计训练课有个大作业。。。要写大数据算法,分类聚类回归。。
像我这么菜的只学过分类算法,想了又想觉得KNN的应用又简单又高大上,然而网上的代码都是Python的,没有Python编译器的我完全无法照抄啊!(毕竟只是菜鸡大二学生)
结果还是改写了个C++版的,DevC++运行没问题,代码如下:
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
bool trainingdata[10][160][1030];//存数据
bool testdata[1030];
int haha = 0;
struct Distance {
double dis;
int lable;
};
bool mysort(Distance x,Distance y){
return (x.dis < y.dis);
}
void img2vector(char* filename,bool* data);
void int2str(int x,int y,char* s);
void trainingDataSet();
int KNN(char* filename,int k);
int KNN(char* filename,int k){
Distance D[1501];
int cnt[10],result;
double sum = 0;
img2vector(filename,testdata);
for(int i = 0;i < 10;i++) cnt[i] = 0;
//计算测试样本与每一个训练样本的距离
for(int i = 0;i < 10;i++){
for(int j =