예제 #1
0
파일: kdTree.cpp 프로젝트: PoorniK/kdTree
vector<vector<double>> kdTree::search(const vector<double>& v, int& k){
	priority_queue<vector<double>,vector<vector<double>>,distFinder> kNN(kdTreeRoot->getValue());
	
	if (!kdTreeRoot){
		return vector<vector<double>>(); ;
		}
	else{
		 kdTreeRoot->search(v,k,kNN);
	}
	
	vector<vector<double>> nearestPts(kNN.size());
	copy(&(kNN.top()), &(kNN.top()) + kNN.size(), &nearestPts[0]);
	return nearestPts;
}
예제 #2
0
파일: KNNTest.cpp 프로젝트: ycgsb/Gaea
void KNNTest::run() {
	Scanner scanner("cpp/ml/test/TestKNNInput.txt");
	Writer writer("cpp/ml/test/TestKNNOutput.txt");
	KNN kNN(3);
	DatasetClassification dataset("cpp/ml/test/TestKNNData.txt");
    CrossValidatorParameter parameter;
    while (scanner.hasNext()) {
    	parameter.testingDataRatio = scanner.nextDouble();
    	CrossValidatorClassification validator(&kNN, &dataset, &parameter);
    	validator.validate();
    	double testingErr = validator.getTestingError();
    	writer.println(testingErr);
    }
    writer.close();
}