آموزش طبقه بندی در یادگیری ماشین با پایتون

4 سال پیش
امتیاز دهید post

آموزش طبقه بندی در یادگیری ماشین با پایتون

 

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش طبقه بندی در یادگیری ماشین با پایتون خواهیم پرداخت.

پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون

مقدمه ای بر طبقه بندی در یادگیری ماشین با پایتون

طبقه بندی ممکن است به عنوان فرآیند پیش بینی کلاس یا دسته از مقادیر مشاهده شده یا داده های داده شده تعریف شود. خروجی طبقه بندی شده می تواند شکلی مانند “سیاه” یا “سفید” یا “هرزنامه” یا “بدون هرزنامه” داشته باشد.

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

یک نمونه از مشکلات طبقه بندی می تواند شناسایی هرزنامه در ایمیل ها باشد. فقط دو دسته خروجی می تواند وجود داشته باشد: “هرزنامه” و “بدون هرزنامه”. بنابراین این یک طبقه بندی باینری است.

برای اجرای این طبقه بندی، ابتدا باید طبقه بندی کننده را آموزش دهیم. برای این مثال ، ایمیل های “هرزنامه” و “بدون هرزنامه” به عنوان داده های آموزش استفاده می شود. پس از آموزش موفقیت آمیز طبقه بندی ، می توان از آن برای شناسایی یک ایمیل ناشناخته استفاده کرد.

انواع فراگیرها در طبقه بندی

ما برای مشکلات طبقه بندی دو نوع فراگیر داریم –

فراگیر تنبل

همانطور که از نامش پیداست ، این نوع از فراگیران پس از ذخیره اطلاعات آموزش، منتظر می مانند تا داده های تست ظاهر شود. طبقه بندی فقط پس از دریافت اطلاعات آزمایش انجام می شود. آنها زمان کمتری را برای آموزش می گذرانند اما زمان بیشتری را برای پیش بینی صرف می کنند. نمونه هایی از یادگیرندگان تنبل، نزدیکترین همسایه K و استدلال مبتنی بر مورد هستند.

فراگیر مشتاق

برخلاف یادگیرندگان تنبل ، فراگیران مشتاق مدل طبقه بندی را بدون انتظار برای نشان دادن داده های آزمون پس از ذخیره اطلاعات آموزش ، می سازند. آنها وقت بیشتری را برای آموزش می گذرانند اما زمان کمتری را برای پیش بینی صرف می کنند. نمونه هایی از فراگیران مشتاق ، درختان تصمیم ، بایز ساده و شبکه های عصبی مصنوعی (ANN) هستند.

ساخت یک طبقه بندی در پایتون

Scikit-learn ، از کتابخانه پایتون برای یادگیری ماشین می توان برای ساخت طبقه بندی در پایتون استفاده کرد. مراحل ساخت یک طبقه بندی در پایتون به شرح زیر است –

مرحله 1: وارد کردن بسته پایتون لازم

برای ساخت یک طبقه بندی با استفاده از scikit-learn ، باید آن را وارد کنیم. با استفاده از اسکریپت زیر می توانیم آن را وارد کنیم –

 

مرحله 2: وارد کردن مجموعه داده

پس از وارد کردن بسته لازم، برای ساخت مدل پیش بینی طبقه بندی به یک مجموعه داده نیاز داریم. ما می توانیم آن را از مجموعه داده های sklearn وارد کنیم یا طبق نیاز خود از یکی دیگر استفاده کنیم. ما قصد داریم از پایگاه داده تشخیصی sklearn’s Breast Cancer Wisconsin استفاده کنیم. ما می توانیم آن را با کمک اسکریپت زیر وارد کنیم –

 

اسکریپت زیر مجموعه داده را بارگیری می کند.

 

ما همچنین باید داده ها را سازماندهی کنیم و می توان آنها را با کمک اسکریپت های زیر انجام داد –

 

دستور زیر نام برچسب ها ، “بدخیم” و “خوش خیم” را در صورت پایگاه داده ما چاپ می کند.

 

خروجی دستور بالا نام برچسب ها است –

 

این برچسب ها به مقادیر دودویی 0 و 1 ترسیم می شوند. سرطان بدخیم با 0 و سرطان خوش خیم با 1 نشان داده می شود.

نام ویژگی ها و مقادیر ویژگی این برچسب ها با کمک دستورات زیر قابل مشاهده است –

 

خروجی دستور بالا نام ویژگی های برچسب 0 یعنی سرطان بدخیم است –

 

به طور مشابه، نام ویژگی های برچسب را می توان به شرح زیر تولید کرد –

 

خروجی دستور بالا نام ویژگی های برچسب 1 یعنی سرطان خوش خیم است –

 

ما می توانیم ویژگی های این برچسب ها را با کمک دستور زیر چاپ کنیم –

 

این خروجی زیر را ایجاد می کند –

 

ما می توانیم ویژگی های این برچسب ها را با کمک دستور زیر چاپ کنیم –

چاپ (ویژگی های [1

 

این خروجی زیر را ایجاد می کند –

 

مرحله 3: سازماندهی داده ها در مجموعه های آموزش و تست

همانطور که باید مدل خود را بر روی داده های دیده نشده آزمایش کنیم ، مجموعه داده خود را به دو قسمت تقسیم خواهیم کرد: یک مجموعه آموزش و یک مجموعه آزمون. ما می توانیم از تابع ()train_test_split  بسته sklearn python برای تقسیم داده ها به مجموعه ها استفاده کنیم. دستور زیر تابع را وارد می کند –

 

اکنون، دستور بعدی داده ها را به داده های آموزش و تست تقسیم می کند. در این مثال ، ما از 40 درصد داده ها برای هدف آزمایش و 60 درصد از داده ها برای اهداف آموزشی استفاده می کنیم –

 

مرحله 4: ارزیابی مدل

پس از تقسیم داده ها به آموزش و تست، ما باید مدل را بسازیم. برای این منظور از الگوریتم Naïve Bayes استفاده خواهیم کرد. دستورات زیر ماژول GaussianNB را وارد می کنند –

 

اکنون ، مدل را به صورت زیر مقدار دهی اولیه کنید –

 

بعد ، با کمک دستور زیر می توانیم مدل را آموزش دهیم –

 

اکنون ، برای ارزیابی باید پیش بینی کنیم. با استفاده از تابع ()predict  به شرح زیر می توان این کار را انجام داد –

 

این خروجی زیر را ایجاد می کند –

 

سری فوق 0 و 1 خروجی مقادیر پیش بینی شده برای گروه های تومور بدخیم و خوش خیم است.

مرحله 5: اندازه گیری دقت

ما می توانیم با مقایسه دو آرایه یعنی test_labels و preds ، دقت ساخت مدل را در مرحله قبل دریابیم. ما برای تعیین صحت از تابع () precision_score  استفاده خواهیم کرد.

 

خروجی فوق نشان می دهد که طبقه بندی NaïveBayes 95.17٪ دقیق است.

معیارهای ارزیابی طبقه بندی

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

در زیر برخی از معیارهای مهم ارزیابی طبقه بندی وجود دارد که می توانید براساس داده و نوع مشکل خود انتخاب کنید –

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

این ساده ترین راه برای اندازه گیری عملکرد یک مشکل طبقه بندی است که در آن خروجی می تواند از دو یا چند نوع کلاس باشد. ماتریس در هم ریختگی چیزی نیست جز یک جدول با دو بعد یعنی. “واقعی” و “پیش بینی شده” و بعلاوه ، هر دو بعد دارای “مثبت مثبت (TP)” ، “منفی واقعی (TN)” ، “مثبت کاذب (FP)” ، “منفی کاذب (FN)” هستند.

توضیح اصطلاحات مرتبط با ماتریس در هم ریختگی به شرح زیر است –

  • مثبت های واقعی (TP) – این مورد زمانی است که هر دو کلاس واقعی و کلاس پیش بینی شده از نقطه داده 1 باشد.
  • منفی های واقعی (TN) – این مورد زمانی است که هر دو کلاس واقعی و کلاس پیش بینی شده داده ها 0 باشد.
  • مثبت کاذب (FP) – این موردی است که کلاس واقعی نقطه داده 0 و کلاس پیش بینی شده نقطه 1 باشد.
  • منفی های کاذب (FN) – این مورد زمانی است که کلاس واقعی نقطه داده 1 و کلاس پیش بینی شده نقطه 0 باشد.

ما می توانیم ماتریس در هم ریختگی را با کمک تابع()confusion_matrix در sklearn پیدا کنیم. با کمک اسکریپت زیر می توان ماتریس در هم ریختگی طبقه بندی باینری ساخته شده را پیدا کرد –

 

خروجی

 

 

صحت

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

 

Accuracy=TP+TNTP+FP+FN+TN

برای طبقه بندی باینری ساخته شده در بالا ، TP + TN = 73 + 144 = 217 و TP + FP + FN + TN = 73 + 7 + 4 + 144 = 228.

از این رو ، Accuracy = 217/228 = 0.951754385965 که همان محاسبه ما پس از ایجاد طبقه بندی باینری است.

دقت

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

Precision=TPTP+FP
برای طبقه بندی باینری ساخته شده در بالا ، TP = 73 و TP + FP = 73 + 7 = 80.

از این رو ، دقت = 73/80 = 0.915

 

یادآوری یا حساسیت

یادآوری ممکن است به عنوان تعداد مثبت برگردانده شده توسط مدل ML ما تعریف شود. ما می توانیم به راحتی با کمک فرمول زیر آن را با ماتریس سردرگمی محاسبه کنیم –

recall=TPTP+FN

برای طبقه بندی باینری ساخته شده در بالا ، TP = 73 و TP + FN = 73 + 4 = 77.

از این رو ، دقت = 73/77 = 0.94805

اختصاصی

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

Specificity=TNTN+FP
برای طبقه بندی باینری ساخته شده در بالا ، TN = 144 و TN + FP = 144 + 7 = 151.

از این رو ، دقت = 144/151 = 0.95364

الگوریتم های مختلف طبقه بندی ML

موارد زیر چند الگوریتم مهم طبقه بندی ML هستند –

  • رگرسیون لجستیک
  • پشتیبانی از ماشین بردار (SVM)
  • درخت تصمیم
  • Naïve Bayes
  • جنگل تصادفی

 

برنامه های کاربردی

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

  • تشخیص گفتار
  • تشخیص دست خط
  • شناسایی بیومتریک
  • طبقه بندی اسناد

 

منبع.

 

لیست جلسات قبل آموزش یادگیری ماشین با پایتون 

  1. آموزش یادگیری ماشین با پایتون
  2.  مبانی یادگیری ماشین با پایتون  
  3. آموزش اکوسیستم یادگیری ماشین با پایتون 
  4. آموزش متدها در یادگیری ماشین با پایتون 
  5. آموزش بارگیری داده ها برای پروژه های یادگیری ماشین
  6. آموزش درک داده ها با آمار در یادگیری ماشین
  7. آموزش آماده سازی داده ها در یادگیری ماشین با پایتون 
  8. آموزش انتخاب ویژگی داده ها در یادگیری ماشین با پایتون
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه