2017-04-04 7 views
-1

おやすみ!私はツールボックスを使用せずにK-nnによる分類を実装しようとしていますが、今はMatlabを使って無知なので、何をすべきかわかりません。私はカリフォルニア大学機械学習リポジトリから、データセットの教授アシスタント評価を分類しようとしています。今はトレーニングセット、ラベルセット、テストセットを分けてツールボックスで分類していますが、それがなければ私は完全に失われています。 開始方法のアイディアを教えてもらえますか?私はテンプレートやベースコードを探していますが、それらのどれも私にとっては理解できません。事前に、ありがとう!特定のデータセットでmatlabにK-nnを実装

答えて

0

これはユークリッド距離KNNのために、あなたはあなたのニーズによって距離の定義を変更することができますされています

% generate data 
dim = 2; 
K = 3; 
ntest = 10; 
ntrain = 100; 
nlabels = 3; 
traindata = rand(ntrain,dim); 
trainlabel = randi(nlabels,[ntrain 1]); 
testdata = rand(ntest,dim); 
testlabel = zeros(ntest,1); 
for ii = 1:ntest 
    % compute euclidean distances 
    dists = sum(bsxfun(@minus,traindata,testdata(ii,:)).^2,2); 
    % take the closest neighbors' label 
    [~,idxs] = sort(dists); 
    labels = trainlabel(idxs(1:K)); 
    % majority vote 
    testlabel(ii) = mode(labels); 
end 
% plotting 
scatter(traindata(:,1),traindata(:,2),50,trainlabel); 
hold on 
scatter(testdata(:,1),testdata(:,2),50,testlabel,'filled'); 
hold off 
colormap('jet') 
legend('train data','test data') 

enter image description here

関連する問題