|
百度网盘视频链接:
视频链接:http://pan.baidu.com/s/1bp1qTX1
录制的视频是算法底层原理讲解,底层代码实现,方便大家真正掌握算法实质,开发出更加出色的算法。录制视频的初衷是:避免读者朋友利用大把时间学习已有常见算法,本系列视频旨在让读者朋友快速深入了解这些常见算法原理,有更多的时间去研究更加高大上算法(价值)。
具体链接在halcom.cn论坛,联系人QQ:3283892722
该论坛是一个学习交流平台,我会逐一的和大家分享学习。
欢迎大家录制视频,并提交给我,我来设置视频,你可在论坛进行打赏分享。
视频专用播放器:http://halcom.cn/forum.php?mod=viewthread&tid=258&extra=page%3D1
KNN近邻分类器,机器学习的敲门砖,最简单的代码如下:- clc,clear,close all
- % k of k-nearest neighbors
- Knn = 4 ;
- % 测试样本
- testsamplesX = [0 20 30, 20 10 30, 20 10 30]';
- % 训练样本
- samplesX = [10 0 30,0 10 0, 20 0 30]';
- % 训练样本标签
- samplesY = [1 0 3,0 1 0, 2 0 3]';
- L = length(samplesY); % 训练样本数量
- Uc = unique(samplesY); % 类别
- N = size(testsamplesX, 1); % 测试样本数量
- result = zeros(N,1); % 初始化结果
- for i=1:N % 分类每一个测试样本
- testdata = testsamplesX(i,:); % 取出当前待分类的样本
- for j=1:L
- dist(j) = norm( testdata-samplesX(j,:) , 2 );
- end
- [A,index] = sort(dist,'ascend'); % 升序
- indices = samplesY( index(1:Knn) );
- nn = hist(indices, Uc);
- [m, best] = max(nn);
- result(i) = Uc(best);
- end
复制代码 具体的流程如下:
【1】构建训练样本、训练样本标签、测试样本
【2】参数初始化Knn
【3】训练样本和测试样本归一化处理
【4】主循环
【5】取测试样本
【6】计算测试样本与所有训练样本的欧式距离
【7】依次选取Knn个最小距离值
【8】统计Knn个距离值对应的标签频数
【9】将频数最大的标签作为当前测试样本的分类标签
【10】输出最终结果
|
|