使用KNN算法的分类实验源代码
2012-07-25 16:34
423 查看
一个很简单的实验,2分类,训练集为20张图片,测试集合为500张图片。
折腾了很久才弄好了调用结果,但是结果不是太好,不如SVM。
折腾了很久才弄好了调用结果,但是结果不是太好,不如SVM。
double classifyByKNN( const cv::Mat& trainData, const cv::Mat& trainResponse, const cv::Mat& testData, const cv::Mat& testResponse ) { const int C = 10001; const int K = 15; // 参数K的取值 int i, j, k; float response; double accuracy = 0; float _sample[C]; CvMat sample = cvMat( 1, C, CV_32FC1, _sample ); //CvMat* traincm = cvCreateMat(trainData.rows, trainData.cols, CV_32FC1); //CvMat* testcm = cvCreateMat(testData.rows, testData.cols, CV_32FC1); CvMat* traincm = &trainData.operator CvMat(); CvMat* testcm = &testData.operator CvMat(); CvMat* trainre = &trainResponse.operator CvMat(); CvMat* nearests = &testResponse.operator CvMat(); //CvKNearest( const CvMat* _train_data, const CvMat* _responses, const CvMat* _sample_idx=0, bool _is_regression=false, int max_k=32 );//有参构造函数 //train( const CvMat* _train_data, const CvMat* _responses,const CvMat* _sample_idx=0, bool is_regression=false,int _max_k=32, bool __base=false ); CvKNearest knn( traincm, trainre, 0, false, K ); //CvKNearest knn(trainData, trainResponse, 0, false, K); knn.train(traincm, trainre, 0, false, K, false); //knn.train(trainData, trainResponse, trainData,false, K, false); cout << "Training Over" << endl << "Testing..." << endl ; for ( int row = 0; row < testData.rows; row++ ) { response = knn.find_nearest(testcm, K, nearests, 0, 0); if ( testResponse.at<float>( row, 0 ) == response) { accuracy++; } } cout << "Testing Over" << endl ; return accuracy / testData.rows ; }
相关文章推荐
- opencv中使用K-近邻分类算法KNN
- VS2013调用armadillo使用KNN算法实现0-9数字分类
- 实验二kNN算法之1NN分类
- 数据挖掘之分类(kNN算法的描述及使用)
- matlab二分类实验(使用libsvm工具包+SVMcgForClass函数)
- DNS通道检测 国外学术界研究情况——研究方法:基于流量,使用机器学习分类算法居多,也有使用聚类算法的;此外使用域名zif low也有
- Peter Harrington, Machine learning, note,K最近邻(k-Nearest Neighbor,KNN)分类算法
- 【模式识别】K-近邻分类算法KNN
- 使用knn和logsitic对make_blobs数据集进行分类
- 最邻近规则分类算法(KNN)
- KNN-分类算法的实现
- STL(六):变动性算法源代码分析与使用示例(copy_backward、 transform、 replace_copy_if 等)
- (留存记录)近邻分类算法KNN
- 【机器学习实验】使用朴素贝叶斯进行文本的分类
- 第九章 KNN(K最近邻分类算法)
- 数据挖掘回顾一:分类算法之 kNN 算法
- K-近邻分类算法KNN
- kNN分类算法
- 分类算法之KNN
- 文本挖掘——基于TF-IDF的KNN分类算法实现