clc
close all 

% Load the data set
path_data='/Users/mohamedbennasar/Documents/My teaching stuff/AI/MATLAB/breast-cancer-wisconsin.csv';
T = readtable(path_data);
Data_set = table2array(T); % convert table to array 
[m,n]=size(Data_set);
figure;
plot(Data_set(:,1),Data_set(:,2),'.','MarkerSize',15,'LineWidth',3) ;
title 'IRIS Data set';


%% Cross Validation 
folds=5;
cp = classperf(Data_set(:,n));
indices = crossvalind('Kfold',Data_set(:,n),folds);
Predicted_Class= zeros(m,1);
for i = 1:folds
       
       test = (indices == i); train = ~test;
      % WeightsSVM=Weights(train);
%         train=ones(m,1); test=zeros(m,1);
%          test(i)=1;train(i)=0;
        X=Data_set(train,1:n-1);
        Testfeatures=Data_set(test,1:n-1);
        Y=Data_set(logical(train),n);
        % KNN Model Training 
        nbKNN=fitcknn(X,Y,'NumNeighbors',3,'NSMethod','exhaustive','Distance','minkowski',...
    'Standardize',1);
    % Predicting the testing data
    Predicted_ac_KNN =predict(nbKNN,Testfeatures);
    Predicted_Class(test)=Predicted_ac_KNN;
          classperf(cp,Predicted_ac_KNN,test);
end
%% Evaluation 
ACC= cp.CorrectRate;
figure
cm = confusionchart(Data_set(:,n),Predicted_Class(:), ...
    'Title','My Title', ...
    'RowSummary','row-normalized', ...
    'ColumnSummary','column-normalized');



