几种分类器的实现和比较
AI课的作业,用Matlab实现了Ridge Regression, Naive Bayes 和 k-Nearest Neighbor 三种分类器。代码和测试数据在这里。
有三个数据集:ORL, Reuters 和 USPS。其中ORL数据集是一组人脸的照片数据,Reuters数据集是Reuters21578中取出的40个分类的一些文档。
测试结果如下:
PC settings
CPU: Core i5 520m
OS: Windows 8 x64
Matlab 2012b
值得注意的
1. ORL数据集的测试数据是singular的,因此在加了ridge之后准确率有了很大的提高;
2. USPS数据集的测试数据是连续的(浮点数),因此离散的Naive Bayes没有进行测试;
3. ORL数据集在使用离散的Naive Bayes测试时,加了Laplace smoothing之后准确率有了很大提高。
4. kNN算法中,k=1的情况实际是最好的;
5. 准确率方面,Naive Bayes最差(因为Naive Bayes认为数据的各个feature之间是独立的),Ridge regression和kNN各有千秋。













