سیستم تشخیص نفوذ با استفاده از داده کاوی در نرم افزار متلب

سیستم تشخیص نفوذ با استفاده از داده کاوی

شبیه سازی در متلب 2016

توسعه سیستم تشخیص نفوذ  با ماشین بردار پشتیبان svm و درخت تصمیم decision tree   روی دیتاست kdd

 

برای اجرای کد فایل main را باید اجرا کنید.

در فایل main  روال برنامه به شکل زیر است.

 

function main()

% read data set

    filename = 'KDD.txt';

    [lable,data]=read_data(filename);

خواندن فایل دیتاست kdd از فایل متنی

 

    % normalize dataset ; defuzzification values to use by svm

    normal_data=normalize(data,'normal');

نرمالسازی داده به منظور انجام فرایند یادگیری

 

    % partitioning data

    window_size = 1000;

بخش بندی داده ها به منظور استخراج بردارهای پشتیبان مبتنی بر روش مقاله

 

    % train initial value

    for i=1:41

        train(1,i) = normal_data{1,i}(1,1);

    end

    label(1,1) = normal_data{1,42}(1,1);

   

    % for every windows

    for i=1:ceil(size(data{1,1},1)/window_size)

        % extract idx of data to select vector samples

        if((i*window_size) > size(data{1,1},1))

            idx = ((i-1)*window_size)+1:size(data{1,1},1);

        else

            idx = ((i-1)*window_size)+1:(i*window_size);

        end

        i

        % pre process data to qualified to train

        [train,label] = preprocess(normal_data,train,label,idx);

  پیش پردازش داده برای تبدیلل داده های از نوع cell به ماتریس

 

        % train svm

        SVMstruct = svmtrain(train,label,'Kernel_Function','rbf');

اموزش svm

        % extract support vectors values

        idx=SVMstruct.SupportVectorIndices;

        [train,label] = preprocess2(train,label,idx);

استخراج نمونه های بردار پشتیبان

    end

   

    % fuzzification class label to learn decition tree

    for i=1:size(label,1)

        if(label(i,1) == 1)

            spec{i,1} = 'normal';

        else

            spec{i,1} = 'abnormal';

        end

    end

   

    % feature labels

    for i=1:41

        a{1,i} = lable{1,i};

    end

 

    % train decition tree by only support vector samples

     t = classregtree(train,spec,'names',a)

     % show the treee

     view(t);

    

اموزش و نمایش درخت اموزش دیده مبتنی بر داده های بردار پشتیبان (نه همه ی داده ها)

     % test

    

     testidx = round(rand(100,1) * (size(data{1,1},1)-1))+1;

    [test,label] = preprocess(normal_data,train,label,testidx);

   

    % calculate confiution matrix

     sfit = eval(t,test);

     tp = 0;

     tn = 0;

     fp = 0;

     fn = 0;

     for i=1:size(sfit,1)

         if(strcmp(sfit{i,1},'normal'))

             if(label(i,1) == 1)

                 tp = tp +1;

             else

                 fp = fp +1;

             end

         else

             if(label(i,1) == 1)

                 fn = fn +1;

             else

                 tn = tn +1;

             end

         end

     end

محاسبه و نمایش ماتریس سردرگمی

     tp

     fp

     tn

     fn

     % calculate accuracy

     accuracy = (tp+tn)/(tp+tn+fp+fn)

    disp('the end');

end

 

خروجی برنامه

ماتریس سردرگمی

 

برای دریافت این پروژه میتوانید با شماره 09039549884 تماس بگیرید