📄 knn_test.html
字号:
<html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <!--This HTML is auto-generated from an M-file.To make changes, update the M-file and republish this document. --> <title>knn_test</title> <meta name="generator" content="MATLAB 7.0"> <meta name="date" content="2006-09-28"> <meta name="m-file" content="knn_test"><style>body { background-color: white; margin:10px;}h1 { color: #990000; font-size: x-large;}h2 { color: #990000; font-size: medium;}p.footer { text-align: right; font-size: xx-small; font-weight: lighter; font-style: italic; color: gray;}pre.codeinput { margin-left: 30px;}span.keyword {color: #0000FF}span.comment {color: #228B22}span.string {color: #A020F0}span.untermstring {color: #B20000}span.syscmd {color: #B28C00}pre.showbuttons { margin-left: 30px; border: solid black 2px; padding: 4px; background: #EBEFF3;}pre.codeoutput { color: gray; font-style: italic;}pre.error { color: red;}/* Make the text shrink to fit narrow windows, but not stretch too far in wide windows. On Gecko-based browsers, the shrink-to-fit doesn't work. */ p,h1,h2,div { /* for MATLAB's browser */ width: 600px; /* for Mozilla, but the "width" tag overrides it anyway */ max-width: 600px; /* for IE */ width:expression(document.body.clientWidth > 620 ? "600px": "auto" );} </style></head> <body> <h2>Contents</h2> <div> <ul> <li><a href="#2">K-Nearest Neighbours demo</a></li> <li><a href="#3">Parameters</a></li> <li><a href="#4">Generate the test points, on a regular grid.</a></li> <li><a href="#5">Generate random training points.</a></li> <li><a href="#6">Run kNN for various values of k, plotting the results</a></li> <li><a href="#7">Se muestra resultado para diferentes valores de k</a></li> </ul> </div><pre class="codeinput"><span class="comment">% ---------------------------------------------------------</span></pre><h2>K-Nearest Neighbours demo<a name="2"></a></h2> <p>CSC411 Tutorial #2, Sept. 24, 2004. Author: David Ross</p><pre class="codeinput"><span class="comment">%-----------------------------------------------------------</span>clear <span class="string">all</span>; close <span class="string">all</span>;</pre><h2>Parameters<a name="3"></a></h2><pre class="codeinput">X_MAX = 50;Y_MAX = 50;NUM_TRAIN = 130;RANDOM_LABELS = 0;<span class="comment">% ---------------------------------------------------------</span></pre><h2>Generate the test points, on a regular grid.<a name="4"></a></h2><pre class="codeinput"><span class="comment">%-----------------------------------------------------------</span>[test_x, test_y] = meshgrid(1:X_MAX, 1:Y_MAX);data_test = [test_x(:) test_y(:)]';h1=figure;pos1 = [10 327 504 368];set(h1,<span class="string">'Position'</span>,pos1);scatter(data_test(1,:), data_test(2,:), <span class="string">'k.'</span>);<span class="comment">% ---------------------------------------------------------</span></pre><img vspace="5" hspace="5" src="knn_test_01.png"> <h2>Generate random training points.<a name="5"></a></h2><pre class="codeinput"><span class="comment">%-----------------------------------------------------------</span>data_train = zeros(2,NUM_TRAIN);data_train(1,:) = rand(1,NUM_TRAIN)*X_MAX;data_train(2,:) = rand(1,NUM_TRAIN)*Y_MAX;<span class="keyword">if</span> RANDOM_LABELS label_train = (rand(1,NUM_TRAIN) >= 0.5);<span class="keyword">else</span> <span class="comment">% label the training points according to the following</span> <span class="comment">% quadratic function</span> label_train = data_train(2,:) >= ((data_train(1,:) - X_MAX/2).^2 /4 + 3); <span class="comment">% add label noise</span> label_train = xor(label_train, (rand(size(label_train)) >= 0.8));<span class="keyword">end</span>plot_train(data_train, label_train);<span class="comment">% set(h,'Position', [5 307 1008 398]);</span><span class="comment">% ---------------------------------------------------------</span></pre><img vspace="5" hspace="5" src="knn_test_02.png"> <h2>Run kNN for various values of k, plotting the results<a name="6"></a></h2><pre class="codeinput"><span class="comment">%-----------------------------------------------------------</span><span class="keyword">for</span> k = [1 3 5 7 9] label_test(:,:,k) = knn(k, data_train, label_train, data_test);<span class="keyword">end</span></pre><h2>Se muestra resultado para diferentes valores de k<a name="7"></a></h2><pre class="codeinput"><span class="keyword">for</span> k = [1 3 5 7 9] h2=figure;<span class="comment">% pos2 = [526 325 489 372];</span><span class="comment">% set(h2,'Position',pos2); h2a = h2;</span> set(gcf,<span class="string">'doublebuffer'</span>, <span class="string">'on'</span>); disp(<span class="string">'press any key to continue'</span>); pause(0.5); clf; clf; title(sprintf(<span class="string">'%d Nearest Neighbours'</span>, k)); plot_test(data_test, label_test(:,:,k)); plot_train(data_train, label_train); hold <span class="string">on</span>; contour(reshape(label_test(:,:,k),[X_MAX Y_MAX])); hold <span class="string">off</span>;pause(0.5);close;<span class="keyword">end</span></pre><pre class="codeoutput">press any key to continuepress any key to continuepress any key to continuepress any key to continuepress any key to continue</pre><p class="footer"><br> Published with MATLAB® 7.0<br></p> <!--##### SOURCE BEGIN #####% REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-%% K-Nearest Neighbours demo% CSC411 Tutorial #2, Sept. 24, 2004.% Author: David Ross%REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-clear all; close all;%% ParametersX_MAX = 50;Y_MAX = 50;NUM_TRAIN = 130;RANDOM_LABELS = 0;% REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-%% Generate the test points, on a regular grid.%REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-[test_x, test_y] = meshgrid(1:X_MAX, 1:Y_MAX);data_test = [test_x(:) test_y(:)]';h1=figure;pos1 = [10 327 504 368];set(h1,'Position',pos1);scatter(data_test(1,:), data_test(2,:), 'k.');% REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-%% Generate random training points.%REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-data_train = zeros(2,NUM_TRAIN);data_train(1,:) = rand(1,NUM_TRAIN)*X_MAX;data_train(2,:) = rand(1,NUM_TRAIN)*Y_MAX;if RANDOM_LABELS label_train = (rand(1,NUM_TRAIN) >= 0.5);else % label the training points according to the following % quadratic function label_train = data_train(2,:) >= ((data_train(1,:) - X_MAX/2).^2 /4 + 3); % add label noise label_train = xor(label_train, (rand(size(label_train)) >= 0.8));endplot_train(data_train, label_train);% set(h,'Position', [5 307 1008 398]);% REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-%% Run kNN for various values of k, plotting the results%REPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASHREPLACE_WITH_DASH_DASH-for k = [1 3 5 7 9] label_test(:,:,k) = knn(k, data_train, label_train, data_test);end%% Se muestra resultado para diferentes valores de kfor k = [1 3 5 7 9] h2=figure;% pos2 = [526 325 489 372];% set(h2,'Position',pos2); h2a = h2; set(gcf,'doublebuffer', 'on'); disp('press any key to continue'); pause(0.5); clf; clf; title(sprintf('%d Nearest Neighbours', k)); plot_test(data_test, label_test(:,:,k)); plot_train(data_train, label_train); hold on; contour(reshape(label_test(:,:,k),[X_MAX Y_MAX])); hold off;pause(0.5);close;end##### SOURCE END #####--> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -