【StatLearn】统计学习中knn算法的实验(1)
2013-10-31 21:03
316 查看
Problem:
Develop a k-NN classifier with Euclidean distance and simple voting
Perform 5-fold cross validation, find out which k performs the best (in terms of accuracy)
Use PCA to reduce the dimensionality to 6, then perform 2) again. Does PCA improve the accuracy
问题:
设计一个采用欧式距离的的knn分类器
应用5-fold进行交叉验证,寻找出最好的k值(从准确度考虑)
使用PCA进行降维操作,将维数降至6维,这样应用PCA之后准确率有改善吗?
问题描述: http://archive.ics.uci.edu/ml/datasets/Wine
数据集:
http://archive.ics.uci.edu/ml/machine-learningdatabases/wine/wine.data
开发的knn算法通过计算TestData中每一个观察点和TrainningData中的观察点的距离,得到k个最近距离的索引,然后统计其中频次最高的Class,并将这个Class作为该TestData的Class值。
knn算法的Matlab源代码:
通过观察PCA处理之后的特征值,发现只有6个特征值不为0,这样采用PCA降维的方法实现的将源数据13维降为6维之后没有损失能量,所以最后直接进行KNN分类的结果和采用PCA分类的结果是一致的,数据处理的难度却下降了。并且当K=1的时候准确率最高。
MaxAccuracy= 0.7525 when k=1 (KNN&PCA+KNN)
Develop a k-NN classifier with Euclidean distance and simple voting
Perform 5-fold cross validation, find out which k performs the best (in terms of accuracy)
Use PCA to reduce the dimensionality to 6, then perform 2) again. Does PCA improve the accuracy
问题:
设计一个采用欧式距离的的knn分类器
应用5-fold进行交叉验证,寻找出最好的k值(从准确度考虑)
使用PCA进行降维操作,将维数降至6维,这样应用PCA之后准确率有改善吗?
问题描述: http://archive.ics.uci.edu/ml/datasets/Wine
数据集:
http://archive.ics.uci.edu/ml/machine-learningdatabases/wine/wine.data
开发的knn算法通过计算TestData中每一个观察点和TrainningData中的观察点的距离,得到k个最近距离的索引,然后统计其中频次最高的Class,并将这个Class作为该TestData的Class值。
knn算法的Matlab源代码:
function [OutputClass] = myKNN(TestData,TrainningData,Group,K) [M,N] = size(TrainningData); [R,C] = size(TestData); OutputClass=[]; for i=1:R diff=TrainningData-repmat(TestData(i,:),M,1); dist=diff.*diff; [DistSort,Index]=sort(sum(dist,2),'descend'); N=hist(Group(Index(1:K),:),3);%histgram of class [MaxClassSort,MaxSort]=sort(N,'descend'); %MaxSort MaxClass=MaxSort(1); OutputClass(end+1)=MaxClass; end OutputClass=OutputClass'; save('knn.mat');
通过观察PCA处理之后的特征值,发现只有6个特征值不为0,这样采用PCA降维的方法实现的将源数据13维降为6维之后没有损失能量,所以最后直接进行KNN分类的结果和采用PCA分类的结果是一致的,数据处理的难度却下降了。并且当K=1的时候准确率最高。
MaxAccuracy= 0.7525 when k=1 (KNN&PCA+KNN)
PCA算法处理之后的特征值 | |||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
99202 | 173 | 9 | 5 | 1 | 1 | 0 | 0 | 0 | …… |
相关文章推荐
- 【StatLearn】统计学习中knn算法实验(2)
- scikit-learn学习之K最近邻算法(KNN)
- SVM(支持向量机)与统计机器学习 & 也说一下KNN算法
- 1.2 KNN算法学习——使用scikit-learn中的KNN模型实现
- 机器学习实战-kNN算法 学习随手记
- 【Scikit-Learn 中文文档】监督学习:从高维观察预测输出变量 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 【Scikit-Learn 中文文档】把它们放在一起 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- scikit-learn的基本用法(一)——KNN算法的使用
- 【Scikit-Learn 中文文档】机器学习: scikit-learn 中的设置以及预估对象 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 机器人学习-K-近邻算法(KNN)
- KNN算法学习笔记二
- Python 学习笔记(Machine Learning In Action)K-近邻算法(KNN)机器学习实战
- 统计学习中的模型,策略,算法
- 【Scikit-Learn 中文文档】监督学习:从高维观察预测输出变量 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 【Scikit-Learn 中文文档】寻求帮助 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 1.5 KNN算法学习——KNN算法分类模型的实现与分类准确度评估
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 【Scikit-Learn 中文文档】寻求帮助 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN
- 【Scikit-Learn 中文文档】十四:多类和多标签算法 - 监督学习 - 用户指南 | ApacheCN
- 【Scikit-Learn 中文文档】无监督学习: 寻求数据表示 - 关于科学数据处理的统计学习教程 - scikit-learn 教程 | ApacheCN