clc
clear
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);

%% 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 
        nbTree=fitctree(X,Y);
    % Predicting the testing data
    Predicted_ac_DT =predict(nbTree,Testfeatures);
    Predicted_Class(test)=Predicted_ac_DT;
          classperf(cp,Predicted_ac_DT,test);
end
%% Evaluation 
view(nbTree)
view(nbTree,'Mode','graph')
ACC= cp.CorrectRate;
figure
cm = confusionchart(Data_set(:,n),Predicted_Class(:));



