CBIR:Content Base Image Retrival

بازیابی تصویر محتوا محور

CBIR:Content Base Image Retrival

بازیابی تصویر محتوا محور

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

Machine Learning 

using Python

  کتاب یادگیری ماشین با استفاده از پایتون توسط manarjan pradhan  مدیر موسسه بنگلور هند و U Dinesh kumar پروفسور همین موسسه نوشته شده است .این کتاب محصول 2019 میلادی می باشد که انتشارات WIELY  آن را منتشر کرده است.این کتاب در 10 فصل تنظیم شده است.تمام مجموعه داده ها وکدهایی که در کتاب مورد استفاده قرار گرفته است در سایت انتشارات WIELY هند به آدرس :

 

https://www.wileyindia.com/catalog/product/view/ id/6915/s/machine-learning-using-python/

در ادامه به بررسی فصلهای این کتاب می پردازیم: 

 

فصل اول : مقدمه ای برتجزیه وتحلیل و یادگیری ماشین

تجزیه وتحلیل شامل مجموعه تکنیک ها و ابزارهایی است که برای ایجاد ارزش از داده ها استفاده می شود. تکنیک ها شامل مفاهیمی مانند الگوریتم های هوش مصنوعی (AI) ، یادگیری ماشین (ML) ، و یادگیری عمیق (DL) میباشد.

·          Artificial Intelligence(AI)هوش مصنوعی: الگوریتم ها و سیستم هایی که هوش شبه انسانی را به نمایش می گذارند.

·         Mashin Learning(ML)  یادگیری ماشینی: زیرمجموعه هوش مصنوعی که می تواند انجام یک کار را با داده  و یا مدل های استخراج شده  یاد بگیرد.

·         Deep Learning(DP) یادگیری عمیق: زیرمجموعه یادگیری ماشینی که برای حل چالش ها و مسائل از عملکرد مغز انسان تقلید می کند.

بیشتر دانشمندان همانطور که در تعاریف بالا گفته شد معتقدند که اینها زیر مجموعه همدیگرهستند ولی عده ای هم معتقدند که یادگیری ماشین زیر مجموعه هوش مصنوعی نیست و متفاوت می باشند وفقط در مواردی باهم یکسری مشترکاتی دارند. نکته مهم این است که همه آنها الگوریتم هستند ، که چیزی جز مجموعه دستورالعمل های مورد استفاده برای حل مشکلات تجاری و اجتماعی نیستند.

یادگیری ماشینی مجموعه ای از الگوریتم ها است که توانایی یادگیری انجام وظایفی مانند پیش بینی و طبقه بندی به طور موثر با استفاده از داده ها را دارد. الگوریتی یادگیری ماشین به 4 دسته تقسیم مشود:

·         الگوریتمهای یادگیری با نظارت

·         الگوریتم های یادگیری بدون ناظر

·         الگوریتم های یادگیری تقویتی

·         الگوریتم های یادگیری تکاملی

در این کتاب ما در مورد چند روش از الگوریتمهای یادگیری باناظر وبدون ناظر بحث میکنیم.

یک الگوریتم معمولی ML از مراحل زیر استفاده می کند:

1-      شناسایی مشکل یا فرصت ایجاد مقادیر

2-      شناسایی منابع داده (منابع داده اولیه و همچنین ثانویه) و ایجاد یک دریاچه داده(مجموعه داده های یکپارچه از منابع مختلف).

3-      پیش پردازش داده ها برای مواردی مانند داده های مفقود شده و نادرست. متغیرهای مشتق شده ایجاد کنید.(مهندسی ویژگی) و در صورت لزوم داده ها را تغییر دهید. داده ها را برای ساختار مدل ML آماده کنید.

4-      مجموعه داده ها را به زیر مجموعه های آموزش و اعتبار سنجی تقسیم کنید.

5-      با استفاده از عملکرد مدل در داده های اعتبار سنجی ، مدل های ML بسازید و بهترین مدل ها را شناسایی کنید.

6-      راه حل / تصمیم / توسعه محصول را اجرا کنید.

بنابراین چارچوب توسعه الگوریتم ML را می توان به پنج مرحله یکپارچه تقسیم کرد: مسئله وشناسایی فرصت ، جمع آوری داده های مربوطه ، پیش پردازش داده ها ، ساخت مدل ML و گسترش مدل

موفقیت پروژه های ML به فعالیت های زیر بستگی خواهد داشت:

1-      استخراج ویژگیها

2-      مهندسی ویژگی

3-      ساخت مدل وانتخاب ویژگی

4-      استقرار مدل

چرا برای انجام کارها از پایتون استفاده میشود؟

پایتون یک زبان برنامه نویسی تفسیر شده ، سطح بالا و با کاربردهای عمومی است. پایتون دارای یک اکوسیستم شگفت انگیز است و برای توسعه سریع نمونه های اولیه بسیار عالی است.توصیه ما این است که از پلت فرم آناکوندا برای علم داده استفاده کنید.

در ادامه طریقه نصب آناکوندا وهمچنین نصب Jupyter notebook توضیح داده شده است.در ادامه در مورد قسمتهای زبان پایتون اینکه انواع داده، تعریف متغیرها ، نوشتن جملات شرطی ، نوشتن جریان کنترل ، توابع ، کار با مجموعه هایی همچون لیست تاپل ودیکشنری وset ،  چگونگی صدازدن کتابخانه مورد نظر در پایتون همگی توضیح داده شده ومثالهایی هم برای یادگیری بیشتر نوشته شده است.

فصل دوم : تحلیلی توصیفی

کار با فریمهای اطلاعاتی در پایتون: تجزیه و تحلیل توصیفی ازاجزا  تجزیه و تحلیل است و علم توصیف داده های گذشته است. بنابراین "آنچه اتفاق افتاده است" در یک زمینه خاص را ذخیره میکند. هدف اصلی تحلیل توصیفی درک مطلب داده ها با استفاده از جمع بندی داده ها ، اقدامات آماری اساسی و بصری سازی داده ها است.بصری ساز ی داده ها یک جز جدایی ناپذیر از هوش تجاری (BI) است. از بصری سازی به عنوان بخشی از داشبورد استفاده می شودو  توسط شرکت ها برای درک عملکرد شرکت با استفاده از شاخص عملکردهای مختلف کلیدی تولید شده است.

DataFrames به طور گسترده ای مورد استفاده قرار می گیرد و در جهان زبان  R وهمچنین توسط کتابخانه panda در زبان پایتون هم به ارث رسیده است.dataframes می تواند برای اجرا  فعالیت هایی مانند بارگذاری ، فیلتر ، مرتب سازی ، گروه بندی ، پیوستن به مجموعه داده ها و همچنین برای مقابله با داده های از دست رفته استفاده شود   برای نشان دادن استفاده از DataFrame ، ما برای بارگذاری داده ها از مجموعه داده( IPL) Indian Premier League (یک تیم حرفه ای کریکت که از سال 2008 درهند آغاز شد) استفاده خواهیم کرد.

در ادامه این بخش از فصل 2 طریقه لود کردن مجموعه داده در کتابخانه پاندا وانواع کارهایی که با دیتافریمها در این کتابخانه قابل انجام است توضیح داده شده است.

در ادامه فصل دوم در رابظه با اکتشاف داده با استفاده از بصری سازی و همچنین روش رسم انواع plot ها از جمله :

Bar chart ، Histogram ،Distribution or Density plot   ، Box plot ، Comparing Distributions ، Scatter plot ،Pair plot  

فصل سوم : توزیعهای احتمالی و آزمون فرضیه

در این فصل، ما مفاهیم متغیرهای تصادفی، توزیع احتمالات، پارامترهای توزیع را معرفی خواهیم کردو چگونه می توان آنها را برای حل مشکلات دنیای واقعی اعمال کرد. ما همچنین مفاهیم توزیعهای گسسته و پیوسته، توابع چگالی احتمالی، تابع  احتمالی انبوه و تابع توزیع تجمعی را بررسی خواهیم کرد. در نهایت، ما در مورد آزمون فرضیه و اهمیت آن در تجزیه و تحلیل، درک مفهوم اهمیت معنی دار (a)، ارزش احتمال (p-value) وفرضیه های مختلف فرضیه هایی مانند آزمون Z، آزمون های مختلف T و Chi-square بحث خواهیم کرد.

فصل چهارم :رگرسیون خطی

رگرسیون خطی ساده یک روش آماری است که برای پیدا کردن وجود یک رابطه ارتباطی بین یک متغیر وابسته (متغیر پاسخ یا متغیر نتیجه) و متغیر مستقل (متغیر توضیحی، متغیر پیش بینی کننده یا ویژگی) استفاده می شود. ما فقط می توانیم این تغییر را درارزش متغیر نتیجه (Y) با تغییر در ارزش ویژگی X همراه است، یعنی رگرسیون تکنیک را نمی توان برای ایجاد رابطه علی بین دو متغیر استفاده کرد. رگرسیون یکی از محبوب ترین الگوریتم های یادگیری با ناظر در تجزیه و تحلیل پیش بینی است. مدل رگرسیون نیاز به دانش هر دو نتیجه و متغیرهای ویژگی در مجموعه داده های آموزشی دارد.

قدمهای ساخت یک مدل رگرسون :

قدم اول :جمع اوری یا استخراج داده

قدم دوم : پیش پردازش داده

قدم سوم : تقسیم داده به دو مجموعه داده آموزشی وداده اعتبار سنجی

قدم چهارم : انجام تجزیه وتحلیل توصیفی یا اکتشاف داده ها

قدم پنجم :ساخت مدل

قدم ششم : بررسی مدل

قدم هفتم : تأیید مدل و اندازه گیری دقت مدل

قدم هشتم : تصمیم گیری در مورد استفاده از مدل

در ادامه تمام این هشت قدم به ترتیب به طور کامل بررسی وتوضیح داده شده است.

بخش بعدی در این فصل در مورد رگرسیون چند خطی میباشد.

فصل پنجم :مسائل دسته بندی

مشکلات طبقه بندی از مسائل  مهم در تجزیه و تحلیل است که در آن متغیر نتیجه یا متغیر پاسخ (y) مقادیر گسسته را می گیرد. هدف اصلی یک مدل طبقه بندی پیش بینی احتمال مشاهده مشاهدات متعلق به یک کلاس، به عنوان احتمال کلاس شناخته می شود.

مشکلات طبقه بندی ممکن است نتایج دوتایی یا چندگانه  داشته باشند. نتایج باینری طبقه بندی باینری و نتایج چندگانه طبقه بندی چند گانه نامیده می شود. تکنیک های مورد استفاده برای حل مسائل طبقه بندی مانند رگرسیون لجستیک، درخت های طبقه بندی، تجزیه و تحلیل تفکیکی، شبکه های عصبی، و ماشین های بردار پشتیبانی. در این فصل، ما بر روی رگرسیون لجستیک و طبقه بندی درخت (یادگیری درخت تصمیم گیری) تمرکز خواهیم کرد.

بعد از بررسی رگرسیون لجستیک به اندازه گیری دقیق پرداخته شده است. در طبقه بندی، عملکرد مدل اغلب با استفاده از مفاهیم مانند حساسیت، خاصیت اندازه گیری ،دقت و F-score سنجیده می شود.

Sensitivity یا همان Recall احتمال شرطی است  که کلاس پیش بینی شده مثبت است، با توجه به اینکه کلاس واقعی مثبت است وبا توجه به رابطه زیر بدست می آید:

Specificity (True Negative Rate):

احتمال شرطی است که کلاس پیش بینی منفی است،با توجه به اینکه کلاس واقعی منفی است وبا توجه با رابطه زیر بدست می آید:

precision

(دقت ) : احتمال شرطی است که ارزش واقعی مثبت است، با توجه به این که پیش بینی توسط مدل مثبت است وبا توجه به رابطه زیر محاسبه میشود:


F-score:

یک اندازه گیری است که ترکیبی از دقت و کاررایی (میانگین هارمونیک بین دقت و کاررایی) است وبا توجه به رابطه زیر محاسبه میشود:

منحنی  ROC را می توان برای درک عملکرد کلی(ارزش) یک مدل رگرسیون لجستیک (و به طور کلی از مدل های طبقه بندی) و برای مدل استفاده می شود .این منحنی برروی محورمختصاتی که محور عمودی آن Recall ومحور افقی آن مقدار کاذب مثبت میباشد.

فصل ششم :یادگیری ماشین پیشرفته

در این فصل ما در مورد دو الگوریتم یادگیری ماشین بحث خواهیم کرد:

·         یادگیری با ناظر

در یادگیری با ناظر، مجموعه داده ها دارای مقادیر متغیرهای ورودی (ارزش های ویژگی) و متغیر نتیجه مربوطه هستند.   

الگوریتم ها ازمجموعه داده آموزش یاد می گیرندو پیش بینی متغیر نتیجه را برای یک رکورد جدیدبامقادیرمتغیرهای

 ورودی انجام میدهند.رگرسیون خطی و رگرسیون لجستیک نمونه هایی از الگوریتم های یادگیری باناظر است.

·         یادگیری بدون ناظر

در این مورد، مجموعه داده ها تنها مقدار متغیر ورودی را دارند، اما هیچ چیزی ازخروجی ندارند. الگوریتم ساختار را در ورودی ها یاد می گیرد. خوشه بندی نمونه ای از یادگیری بدون ناظر می باشد.

چظور ماشین یاد میگیرد؟

در یادگیری تحت نظارت، الگوریتم با استفاده از یک تابع به نام Loss Function یا Cost Function  یا Error Function یاد می گیرد.این تابع، که عملکرد خروجی پیش بینی شده و خروجی مورد نظررا بررسی میکند. اگر h(xi)خروجی پیش بینی شده استو Yi خروجی مورد نظر است، پس رابطه زیر راداریم:


n تعداد کل رکوردهایی است که پیش بینی براساس آن انجام گرفته است.رابطه نوشته شده در بالا تابع محاسبه خطای مربعی (SSE) میباشد.که منظور همان Loss  Function می باشد.

در بخش بعدی در این فصل در مورد الگوریتم گرادیان کاهشی که چگونه می توان ازاین الگوریتم برای تخمین گذاری مقادیر پارامترهای رگرسیون، با توجه به مجموعه داده ها با ورودی ها و خروجی هااستفاده کرد، بحث میکنیم.

در پیاده سازی قدمهای مربوط به الگوریتم گرادیان کاهشی یکسری متدهایی نیاز به پیاده سازی است که عبارتند از:

·         متد اول :در این متد به طور تصادفی مقادیر بایاس و وزنها به طورتصادفی مقدار اولیه داده میشود.

·         متد دو م :محاسبه مقدار پیش بینی Y ، که Y به بایاس ووزنها داده شده

·         متد سوم :محاسبه هزینه عملکرد مقدار پیش بینی Y با مقدارواقعی

·         متد چهارم :محاسبه گرادیان ومقدار دقیق بایاس ووزن ها

کلیه این متدها به طور کامل توضیح داده شده است.

قدمهای لازم برای ایجاد یک مدل یادگیری ماشین

1-      ویژگیها و متغیر نتیجه را در مجموعه داده مشخص کنیم.

2-      مجموعه داده ها را به مجموعه های آموزشی و تست تقسیم کنید.

3-      ساختن مدل با استفاده از داده های آموزشی

4-      پیش بینی متغیر نتیجه با استفاده از داده های آزمایشی

5-      مقادیر پیش بینی شده و واقعی متغیر نتیجه را در مجموعه آزمایشی مقایسه کنیدو اندازه گیری دقت با استفاده از معیارهایی مانند میانگین خطای درصد مطلق (MAPE) یا میانگین خطای مربع ریشه (RMSE).

در ادامه کلیه این مراحل به طور کامل گفته شده است.

در بخش بعدی در این فصل به بررسی چند روش یادگیری ماشین که دسته بندی باینری انجام میدهد مثل روشهای KNN( K nearest neighbor) جنگلهای تصادفی وتقویتی موردبررسی قرارگرفته است.


فصل هفتم :کلاسترینگ (خوشه بندی )

خوشه بندی یکی از پر کاربردترین برنامه های تحلیلی است.کلاسترینگ یک استرلتژی تقسیم وغلبه است وروشی است که مجموعه داده ها به گروههایی که شباهت بیشتری دارند تقسیم میکند واین میتواند راه درستی باشد برای تعیین داده های متفاوت.در خوشه بندی تفاوت در گروهها حداقل وبین گروهها حداکثر می باشد.

الگوریتمهای خوشه بندی جز الگوریتمهای دسته بندی بدون ناظر میباشد.

الگوریتمهای کلاسترینگ از اختلاف فاصله یا اندازه گیری شباهت یا عدم شباهت برای مشخص کردن کلاسترها استفاده میکنند.در ادامه روش K-means که یکی از روشهای خوشه بندی می باشد توضیح داده شده است.

دربخش بعدی این فصل در مورد بخش بندی یک محصول که بروری مجموعه داده Bear که شامل 20 رکورد می باشد موردبررسی قرارگرفته است.

در بخش بعدی در مورد الگوریتم خوشه بندی سلسله مراتبی توضیح داده شده است.

فصل هشتم :پیش بینی

پیش بینی مهمترین و پر کاربردترین کاربرد تحلیلی پیش بینی است زیرا این امر هم در خط بالا و هم خط پایین یک سازمان تأثیر بسزایی دارد. هر سازمانی اماده کردن برنامه ریزی بلند مدت و کوتاه برد و پیش بینی تقاضا برای محصول و خدمات یک ورودی مهم برای برنامه ریزی دوربرد و کوتاه برد است.

 اجزای داده سری زمانی :

داده های سری زمانی Yt یک متغیر تصادفی است که معمولاً در فواصل زمانی منظم و به ترتیب زمانی جمع آوری می شود اگر داده های سری زمانی شامل مشاهدات فقط یک متغیر واحد باشد (مانند تقاضای محصول در زمان t) ، سپس به عنوان داده های سری زمانی تک متغیر نامیده می شود. اگر داده ها از بیش از یک متغیر تشکیل شده باشد به عنوان مثال ، تقاضا برای یک محصول در زمان t ، قیمت در زمان t ، مقدار پول هزینه شده توسط شرکت در ارتقا در زمان t ، قیمت رقبا در زمان t ، و غیره ، بدین ترتیب آن داده سری زمانی چند متغیره نامیده می شود. داده های سری زمانی را می توان به چهار جز components زیر تقسیم کرد:

1-      Trend Component (Tt): روند حرکت داده مداوم به سمت بالا یا پایین است.

2-      Seasonal Component (St)

3-      Cyclical Component (Ct)

4-      Irregular Component (It)

چندین روش پیش بینی مانند میانگین متحرک ، Auto Regressive Integrated Moving Average(ARIMA) که در صنایع مختلف مورد استفاده قرار می گیرد.در ادامه به بررسی روشهای بالا پرداخته شده است.

فصل نهم :سیستمهای توصیه گر

در این فصل ، ما در مورد سه الگوریتم زیر بحث خواهیم کرد که به طور گسترده ای برای ساخت سیستم های توصیه گراستفاده می شوند:

·         Association Rules (قوانین انجمنی )

·         Collaborative Filtering (فیلتر کردن مشارکتی )

·         Matrix Factorization(فاکتورسازی ماتریس)

برای انجام این روشها ما از دو مجموعه داده استفاده میکنیم:

·         groceries.csv: مجموعه داده شامل معاملات یک فروشگاه مواد غذایی است و می تواند از آدرس زیر دانلود شود:

http://www.sci.csueastbay.edu/~esuess/classes/Statistics_6620/Presentations/ml13/groceries.csv

·         Movie Lens:این مجموعه داده از آدرس زیر میتواند دانلود شود:

https://grouplens.org/datasets/movielens

فصل دهم : تجزیه و تحلیل متن

در این فصل ما از مجموعه داده که در آدرس https://www.kaggle.com/c/si650winter11 قراردارد (داده های اصلی توسط دانشگاه میشیگان مشارکت داده شده) برای ساخت یک مدل طبقه بندی که احساسات را طبقه بندی میکند. داده ها متشکل از احساساتی است که کاربران در فیلم های مختلف بیان کرده اند. در اینجا هر نظریک رکورد است که یا به عنوان مثبت طبقه بندی می شود یا منفی.


علاقمندان به این کتاب میتوانند آن را از اینجا دریافت کنید.



















نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد