clc
load train_F.mat;
load train_L.mat;
load test_F.mat;
load test_L.mat;
Dim = 22;
MIC_matrix = zeros(Dim, Dim);
for i = 1:Dim
for j = 1:Dim
X_v = reshape(train_F(:,i),1,size(train_F(:,i),1));
Y_v = reshape(train_F(:,j),1,size(train_F(:,j),1));
[A, ~] = mine(X_v, Y_v);
MIC_matrix(i, j) = A.mic;
end
end
MIC_matrix(MIC_matrix>0.4) = 0;
MIC_matrix(MIC_matrix~=0) = 1;
inmodel = sum(MIC_matrix);
threshold = sum(inmodel)/Dim;
inmodel(inmodel <= threshold) = 0;
inmodel(inmodel > threshold) = 1;
model = libsvmtrain(train_L,train_F(:,inmodel));
[predict_label, ~, ~] = libsvmpredict(test_L,test_F(:,inmodel),model);
error=0;
for j=1:length(test_L)
if(predict_label(j,1) ~= test_L(j,1))
error = error+1;
end
end
error = error/length(test_L);