کمترین مقدار بسته ارسالی

SmallestByteSend

کل بایت ارسالی

TotalByteSend

تعداد کل بسته‌های ارسالی

TotalSendPacket

نوع پروتکل

ProtocolType

Time To Live

TTL

نرمال یا بات

Class

پیش‌پردازش دستی داده‌ها
مرحله پیش‌پردازش، مهم‌ترین قدم در روش‌های داده‌کاوی به شمار می‌رود. در این مرحله باید کیفیت داده‌ها افزایش یافته تا بهترین کارایی بدست آید. در این پایان‌نامه، از روش‌های زیر در مرحله پیش‌پردازش استفاده شد:
۱) پاکسازی داده‌ها: داده‌هایی که مبتنی بر دو پروتکل TCP و UDP بودند، نگه داشته شد و مابقی پروتکل‌ها حذف شدند. همچنین، هاست‌هایی که فقط ارسال کننده و یا فقط دریافت کننده بودند، حذف شدند.
۲) انتخاب رکوردها: در مجموع، هاست‌هایی که کمتر از ۱۵۰۰ بایت دریافت و یا ارسال دارند حذف شدند.
۳) انتخاب ویژگی‌ها و کاهش ابعاد داده‌ها: در این مرحله، بصورت دستی، ویژگی‌های نامرتب مانند آدرس IP هاست، پروتکل و … حذف شدند. همچنین مرحله انتخاب ویژگی‌ها بر اساس الگوریتم هوشمند، به صورت اختیاری در نظر گرفته شد تا درمرحله ارزیابی، نتایج مقایسه شوند.
انتخاب ویژگی‌ها
در مرحله پیش‌پردازش، دو مرحله انتخاب ویژگی ها داریم: مرحله اول که بصورت دستی و بر اساس دانش زمینه انجام می‌شود و در مرحله دوم که بصورت هوشمند انجام می‌شود.
در بخش انتخاب ویژگی‌های هوشمند، از روش Information Gain، (۲۴) مانند سایر منابع تشخیص بات‌نت، استفاده شده‌است. مهم‌ترین ویژگی این روش آماری، سرعت محاسباتی و توانایی دستیابی به بهینگی را داراست. از این بخش به صورت اختیا ، و جهت مقایسه نتایج استفاده شده است.
خروجی الگوریتم Information Gain به ازای ۶ متغیر اول به ترتیب عبارت است از:
MeanByteRecieve, MeanByteSend, TotalByteRecieve, TotalByteSend, TotalRecievePacket, TotalSendPacket
اجرای الگوریتم بیزین
مبنای رده بندی در الگوریتم بیزین، احتمالات است. در واقع رده‌بندی بیزین چیزی جز احتمالات شرطی نیست. ویژگی مثبت الگوریتم بیز عبارتند از:
۱) امکان اثبات بهینگی
۲) عدم نیاز به تنظیم پارامترها[۲۶].
۳) پشتوانه آماری و اثبات ریاضی بهینگی.
۴) عدم وابستگی به نرمال بودن متغیر کلاس.
سه تابع Learner و Learner2 و Learner3 در شبیه سازی و ساخت مدل داریم؛ که هر کدام را جداگانه توضیح خواهیم داد.
تابع Learner: این تابع جهت ساخت مدل بیز ساده و ارزیابی آن است که شامل انتخاب ویژگی می باشد در این تابع فقط از ۶ ویژگی اول جهت ساخت مدل استفاده شده است. شکل ۱۰ مربوط به این تابع می باشد؛ که خروجی این تابع مدل ساخته شده ای است که می توان بر حسب آن پیش بینی جهت تشخیص بات نت ها انجام داد. در خط ۲ تا ۴ داده ها بارگذاری شده و سایز ماتریس آن در متغییر si ذخیره می شود از خط ۵ تا ۱۱ داده ها توسط تابع cvpartition و روش تصادفی holdout به دودسته آموزشی و تست تقسیم می شود که ۷۰% داده ها متعلق به قسمت آموزش می باشد و بقیه تست است و همچنین ماتریس هایی جهت این کار آماده می شوند از جمله In_Train و Cl_Train هستند که به ترتیب جهت نگهداری داده آموزشی که به تعداد سطر های ۷۰% داده ها سطر و به تعداد ستون های آن منهای ۱ ستون دارد و جهت نگهداری داده کلاس ما است که هر دو جهت ورودی تابع بیز ساده هستند دو متغییر In_Test و Cl_Tset هم جهت داده های تست می باشد که بر حسب آن مدل را ارزیابی می کنیم. از خط ۱۲ تا ۲۴ جهت پر کردن ماتریس های پیشین که توضیح داده ایم می باشد توسط ماتریس id_training می توانیم تشخیص دهیم کدام سطر داده متعلق به داده های آموزشی است چون که در هر سطری از داده که متعلق به دسته آموزشی بوده با عدد ۱ در ماتریس id_training علامت گذاری شده است و اگر صفر بوده باشد یعنی این سطر داده متعلق به دسته تست می باشد. در خط ۲۵ توسط تابع NaiveBayes.fit مدل ساخته شده این تابع شامل دو ورودی داده آموزشی(In-train) و کلاس های دسته بندی (Cl_Train) می باشد و خروجی این مدل در Model می باشد. در خط ۲۶ توسط مدل ساخته شده در مورد میزبان ها پیش گویی انجام می شود و مدل بات بودن یا سالم بودن میزبان ها را توسط تابع predict حدس می زند از خط ۲۷ تا ۳۴ ارزیابی از پیشگویی مدل برای داده های آموزشی انجام می دهیم این عمل توسط تابع Evaluate انجام می گیرد که ورودی این تابع نتیجه واقعی و پیش بینی مدل می باشد. در نهایت از خط ۳۵ تا آخر مانند چند خط قبل می باشد فقط ارزیابی و پیشگویی بروی داده های تست انجام گرفته است.

(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))

function [ Model ] = Learner( )
شکل ۱۰- کد تابعLearner به زبان Matlab
load data;
data=data;
si=size(data);
C=cvpartition(si(:,1),’HoldOut’,0.3);
id_test=test©;
id_training = training©;
In_Train=zeros(C.TrainSize,si(:,2)-1);
Cl_Train=zeros(C.TrainSize,1);
In_Test=zeros(C.TestSize,si(:,2)-1);

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...