使用KNN算法的分类实验源代码

这篇博客介绍了一个基于KNN的2分类实验,训练集包含20张图片,测试集包含500张图片。尽管成功实现了调用,但实验结果显示其性能逊色于SVM算法。
摘要由CSDN通过智能技术生成

一个很简单的实验,2分类,训练集为20张图片,测试集合为500张图片。

折腾了很久才弄好了调用结果,但是结果不是太好,不如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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值