پیاده سازی فیلترینگ هرزنامه با کتابخانه یادگیری ماشین آپاچی اسپارک با زبان Scala

دسته بندي : فنی و مهندسی » کامپیوتر و IT
توضیحات:
تحقیق پیاده سازی فیلترینگ هرزنامه با کتابخانه یادگیری ماشین آپاچی اسپارک با زبان Scala، در قالب فایل Word و در 71 صفحه، همراه با دیتاست نمونه و اسکریپت های پیاده سازی.

هدف این پروژه ایجاد ماشین اسپم فیلترینگ در کلاستر مجازی Apache Spark  با مدل رگرسیون لجستیک و بیزی در ویندوز است.

شکل گیری بسترها و مدلهای نوظهور مدیریت داده های عظیم .افق تازه ای را در پژوهشها ی حوزه های مرتبط با علوم داده به همراه آورده است . در این میان بکارگیری روشها و الگوریتمهای یادگیری ماشینی در چارچوبهای پردازشی Big Data جزو داغترین حوزه های مطالعاتی است که چه در سطح آکادمیک و چه در سطح تجاری توجه و تمرکز زیادی را بخود معطوف کرده است در تهیه این پژوهش تلاش کرده ایم با در نظر گرفتن کمبود منابع کاربردی و محدودیت هایی که در پژوهشهای حوزه Big Data برای دانش پژوهان، در بکارگیری ابزارها و تبدیل دانش تئوری به یک پروژه هدفمند و کاربردی وجود دارد، تجربیات علمی و عملی خود را در قالب پیاده سازی گام بگام و تصویری سناریوی ایجاد یک کلاستر محلی و بکارگیری کتابخانه یادگیری ماشین در یکی از موفقترین پروژه های پردازش خوشه ای ( آپاچی اسپارک) را با هدف ایجاد برنامه فیلترینگ ایمیلهای ناخواسته با دو الگوریتم رگرسیون لجستیک و نایو بیز با زبان اسکالا ، شامل میشود را ارائه نماییم. ابزارها و روشها طوری انتخاب شده که با حد اقل امکانات سخت افزاری و نرم افزاری قابل اجرا باشد، نرم افزارها در دسترس عموم و رایگان باشد، علی رغم استفاده از تکنیکهای مجازیسازی با محیط واقعی مطابقت داشته باشد، کاربردی و قابل توسعه باشد.
سیستمی که در پیاده سازی این سناریو استفاده کرده ایم یک لپ تاپ با سیستم عامل ویندوز 8.1 - 64 بیتی با 4 گیگا بایت حافظه رم داخلی است. ScreenShot های با کیفیت بالا از کلیه مراحل پیاده سازی را برای کمک به درک بهتر در متن مقاله استفاده کرده ایم. همچنین، اسکریپت ها ، دیتاست های نمونه، لینک دانلود مستقیم فایل ها و نرم افزارهای مورد نیاز برای انجام پیاده سازی را پیوست کرده ایم.

برای ایجاد کلاستر محلی اسپارک دو راه معمول وجود دارد:
روش اول استفاده از بسته های مجازی آماده و از پیش پیکربندی شده پلتفرم هادوپ، که توسط شرکتهایی مثل Cloudera و Horthonworks ارائه شده.
روش دوم نصب و راه اندازی عادی (دستی) کلاستر اسپارک میباشد. بسته های آماده، ضمن اینکه ابزارهای کاملی هستند و نیاز به پیکربندی اولیه توسط کاربر ندارند، محدودیتهایی هم دارند. مثلا" حجم بالایی دارند. (حجم آخرین نسخه Sandbox Horthonworrks حدود 11 GB و Cloudera quickstart VM ، حدود 5 GB است). از طرفی چون این بسته ها، سرویسهای مختلفی را بطور همزمان فعال میکنند(که معمولا" به همه آنها نیازی نداریم) در مقایسه با راه اندازی دستی احتیاج به حافظه رم بیشتری میباشد (حداقل 8 GB). از آنجا که امکانات سخت افزاری اکثر دانش پژوهان و دانشجویان ممکن است یک لپ تاپ یا PC معمولی باشد، ما روش دوم را انتخاب کرده ایم و یک بخش جداگانه (فصل سوم) از پژوهش را به آموزش نصب کلاستر (محلی- مستقل) اسپارک بصورت دستی درمحیط ویندوز و بر روی سرور مجازی CentOs-minimal اختصاص داده ایم. منظور از محلی(Local) و مستقل (Standalone)  این است که در این حالت:
1- اجزای اجرایی اسپارک (driver, executor , master, LocalScheduler) روی یک ماشین مجازی جاوای واحد (Single-JVM) ایجاد و راه اندازی میشود،

2- از زمانبند داخلی اسپارک برای زمانبندی وظایف (tasks) استفاده میشود
3- از فایل سیستم خارجی(مثل HDFS هادوپ) برای خواندن یا ذخیره داده ها استفاده نمیشود، بلکه دسترسی به داده ها از طریق آدرسدهی به فایل سیستم ماشین محلی که اسپارک روی آن سوار شده (در این پژوهش ماشین مجازی CenOs) میسر میشود. در این روش علاوه بر اینکه به حافظه رم بسیار کمتری نیاز است، در اهداف تست،آموزش و توسعه برنامه های اسپارک روشی بهینه و کم هزینه است. بعلاوه، در حین پیکربندی عملی کلاستر اسپارک، با مهارتهای کلیدی و سودمندی مثل نصب و پیکربندی اولیه سرور لینوکس ، دستورات پایه’ مدیریتی لینوکس، نصب آفلاین بسته توسعه جاوا JDK))، کانفیگ متغیرهای محلی اسپارک ، انتقال فایل بین ماشین محلی ویندوز و مجازی لینوکس، برقراری کانکشن ssh و مدیریت کلاستر مجازی اسپارک از محیط ویندوز وبسیاری نکات تخصصی و تجربیات مفید دیگر هم آشنا خواهید شد. ضمنا" چون این روش را بارها تست و راه اندازی کرده ایم در مورد صحت و نتیجه کار هیچ نگرانی وجود نخواهد داشت.

پیش نیازهای سخت افزاری و نرم افزاری:
1. لپ تاپ یا PC با سیستم عامل ویندوز 7+ ، 64 بیتی
2. اتصال اینترنت، امکان دانلود بسته های اینترنتی
3. حداقل GB4 حافظه رم داخلی و GB 4+ فضای خالی هارد در یکی از درایوهای ویندوز
4. نصب نرم افزار virtualbox Oracle VM، نسخه ویندوز
5. فایل ایمیج سیستم عامل لینوکس CentOs-minimal ورژن 6.5 - 64 بیتی (398 مگابایت)
6. فایل فشرده باینری آپاچه اسپارک (spark-1.6.1-bin-hadoop2.6.tgz) (290 مگابایت)
7. فایل فشرده جاوا (JDK) نسخه لینوکس ورژن 8 (170 مگابایت)
8. ftp کلاینت تحت ویندوز (8 مگابایت)
( حجم کل نرم افزارها و فایلها : کمتر از 1 گیگابایت)

بخشی از مقدمه:
اگر شما هم از کاربران سرویسهای پست الکترونیکی (Email) باشید، حتما" با ایمیلهایی که بصورت خودکار در پوشه Spam یا junk حساب ایمیل شما قرار میگیرند برخورد کرده اید. با توجه به اینکه روزانه میلیونها ایمیل در سراسر دنیا مبادله میشود، سرویس دهندگان خدمات پست الکترونیکی از میان این حجم عظیم داده که باید در کمترین زمان ممکن مبادله شوند، از چه روشی برای تشخیص و فیلتر کردن هرز نامه های الکترونیکی استفاده میکنند؟
اپلیکیشن های اسپم فیلترینگ بر مبنای عبور متن ایملها از صافیهای متن (Text Filters) کار میکنند.فیلترهای متن این تشخیص را با استفاده از الگوریتمهای یادگیری ماشین انجام میدهند، به این ترتیب که کلمات و عبارتی که بیشتر در ایمیلهای اسپم استفاده میشوند را شناسایی میکنند.
سئوال دیگری که پیش می آید این است که با توجه به اینکه حجم ایمیلها بصورت سریع و تصاعدی در حال رشد است ، چگونه میتوان از ابزارها و سکوهای پردازشی نوین حوزه کلان داده (big data) در جهت بهبود عملکرد(دقت،سرعت،هزینه) چنین برنامه هایی سود جست؟
در این پژوهش، به مراحل کامل پیاده سازی یک کلاستر محلی آپاچی اسپارک در محیط مجازی و ساخت دو مدل اسپم فیلترینگ با کتابخانه یادگیری ماشین آپاچی اسپارک(Spark MLlib) با زبان برنامه نویسی Scala ، بر مبنای الگوریتمهای رده بندی رگرسیون لجستیک و بیزی ساده (Naive Bayes) خواهیم پرداخت.

فهرست مطالب:
مقدمه
فصل اول: پردازش خوشه ای ، زبان Scala ، محیط آپاچی اسپارک
رایانش توزیع‌شده (Distributed computing)
پردازش موازی
Parallel programming mode – موازی سازی وظیفه و داده
پدیده ای بنام Big Data
زبان برنامه نویسی Scala در محیط آپاچی اسپارک
ساختمان پشته Apache Spark
بررسی نقاط ضعف مدل برنامه نویسی پایه Map-Reduce
راهکارهای آپاچی اسپارک برای بهبود محدودیت های مدل Map-reduce
بررسی اجزای اجرایی در کلاستر آپاچی اسپارک (Cluster manager - Executer - Driver)
پوسته اسپارک : دیتاستهای توزیعی-ارتجاعی، مبدلها ، فعالیتها (RDD-Transformation-Action)
اپلیکیشن های یادگیری ماشین با Apache Spark
الگوریتمهای مورد پشتیبانی با کتابخانه MLIib Spark
نقاط قوت Spark در مقایسه با چارچوبهای مشابه پردازش داده های بزرگ موجود
فصل دوم: ساخت مدل برای فیلتر ایمیلهای هرز با کتابخانه Mllib Spark
مفهوم فیلترینگ هرزنامه - Spam Filtering
ایجاد اسپم فیلترینگ با الگوریتم رگرسیون لجستیک با کتابخانه Mllib Spark
درونریزی کلاسها و زیر کلاسهای مورد نیاز به فضای کاری اسپارک
مدل یادگیری رگرسیون لجستیک با بهینه ساز SGD
درهم ریزی ویژگیها به روش توالی عبارات (Hashing Term Frequency)
یادگیری با ناظر و برچسب گذاری برداری با MLlib اسپارک (LabeledPoint in Spark supervised learning)
معرفی دیتاست های مورد استفاده
مفهوم digram و n-gram
ایجاد نگاشت بین فیچرها و دیتاست
ایجاد مدل آموزشی رگرسیون لجستیک با MLlib Spark
الحاق دیتاستهای نمونه با مبدل Union و تولید داده های آموزشی و آزمون
ایجاد یادگیرنده رگرسیون لجستیک با بهینه ساز LBFGS
اعمال مدل رگرسیون به داده های آموزشی
ایجاد برچسب پیش بینی برای تست مدل
ارزیابی عملکرد مدل فیلترینگ هرزنامه رگرسیون لجستیک با شاخص دقت (Accurancy)
مفاهیم فیلترینگ هرزنامه با استفاده از تئوری نایو بیز (Naive Bayes)
پیاده سازی روش اسپم فیلترینگ بیزی Naive Bayes)) با کتابخانه MLlib Spark -
دستورات ایجاد و تست مدل آموزشی بیزی با MLlib Spark
ارزیابی مقایسه ای عملکرد مدلهای Logistic regression و Bayesian
دسترسی به رابط گرافیکی تحت وب اسپارک و بررسی وضیعت اجرای برنامه
فصل سوم: ایجاد کلاستر محلی اسپارک با نرم افزار مجازیسازی Oracle Virtualbox در ویندوز
پیش نیازهای سخت افزاری و نرم افزاری
معماری کلاستر مستقل اسپارک در مد محلی( Spark Local-mode Structure)
نصب Linux-CentOS- minimal بعنوان میزبان مجازی در ماشین محلی ویندوز با Virtualbox
غیر فعال کردن Ipv6 و فایروال در ماشین مجازی
پیکربندی ماشین مجازی و تنظیمات شبکه
راه اندازی ماشین مجازی
استخراج مشخصات اینترفیسها و IP آدرس ماشین مجازی
انتقال ساده فایلها بین ماشین ویندوز و میزبان مجازی CentOS در محیطی گرافیکی با پروتکلهای امن
اتصال به خط فرمان ترمینال لینوکس CentOS و بکارگیری آن در محیط ویندوز با اتصال SSH
راه اندازی آفلاین و سریع ابزار تو،سعه جاوا ( JDK) در ماشین مجازی CentOS
تنظیم متغیرهای محلی جاوا با ویرایشگر viدر ماشین مجازی
پیکربندی کلاستر محلی اسپارک
معرفی دایرکتوری نصب Apache Spark
راه اندازی کلاستر محلی اسپارک و دسترسی به spark-shell در مد Local
دسته بندی: فنی و مهندسی » کامپیوتر و IT

تعداد مشاهده: 24099 مشاهده

فرمت فایل دانلودی:.rar

فرمت فایل اصلی: doc

تعداد صفحات: 71

حجم فایل:3,352 کیلوبایت

  • راهنمای استفاده:
    ابتدا فایل را با با نرم افزار Winrar از حالت فشرده خارج نمایید. برای دانلود رایگان نرم افزار winrar اینجا کلیک کنید.
    .........................

    به متن توضیحات مراجعه شود.


  • محتوای فایل دانلودی:
    داکیومنت word
    دیتاست نمونه
    فایل script های پیاده سازی