Halcon学習のK最近隣接分類
4551 ワード
void testKNearestNeighbors()
{
// K
// :NumDim
HTuple NumDim = 2;
HClassKnn classKnn;
classKnn.CreateClassKnn(NumDim);
// k
// :Features ,ClassID
HTuple Features, ClassID;
ClassID = 0;
Features = HTuple(1).Append(1);
classKnn.AddSampleClassKnn(Features, ClassID);
ClassID = 1;
Features = HTuple(-1).Append(-1);
classKnn.AddSampleClassKnn(Features, ClassID);
ClassID = 2;
Features = HTuple(1).Append(-1);
classKnn.AddSampleClassKnn(Features, ClassID);
// k
// :GenParamNames k , GenParamValues k
HTuple GenParamNames = "num_trees", GenParamValues=5;
classKnn.TrainClassKnn(GenParamNames, GenParamValues);
// k
// :GenParamNames k , GenParamValues k
HTuple GenParamNames1 = "k", GenParamValues1 = 1;
classKnn.SetParamsClassKnn(GenParamNames1, GenParamValues1);
//
// :Features ,Result ,Rating
HTuple Features1=HTuple(2).Append(-2), Result1, Rating1;
Result1 = classKnn.ClassifyClassKnn(Features1, &Rating1);
cout <<" : " <cout << " : " << (double)Rating1 << endl;
// k
classKnn.WriteClassKnn("classKnn.gnc");
HClassKnn fileclassKnn;
fileclassKnn.ReadClassKnn("classKnn.gnc");
//
HSerializedItem item = classKnn.SerializeClassKnn();
HClassKnn serialclassKnn;
serialclassKnn.DeserializeClassKnn(item);
// k
HClassTrainData trainData;
trainData.GetClassTrainDataKnn(classKnn);
// k
// : GenParamNames , GenParamValues
HTuple GenParamNames2 = "method", GenParamValues2;
GenParamValues2 = classKnn.GetParamsClassKnn(GenParamNames2);
cout << " : " << (HString)GenParamValues2 << endl;
// k
// : IndexSample , Features ,ClassID
HTuple IndexSample3 = 2, Features3, ClassID3;
Features3=classKnn.GetSampleClassKnn(IndexSample3, &ClassID3);
cout << " " << (Hlong)ClassID3 << endl;
cout << " : " << endl;
for (int i = 0; icout << (double)Features3[i] << endl;
}
// k
Hlong NumSamples = classKnn.GetSampleNumClassKnn();
cout << " : " << NumSamples << endl;
}