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

سرور مجازی NVMe

مروری بر روش های طبقه بندی در پایتون با Scikit-Learn

0 25
زمان لازم برای مطالعه: 11 دقیقه


معرفی

آیا شما یک برنامه نویس پایتون هستید که به دنبال ورود به یادگیری ماشین هستید؟ یک مکان عالی برای شروع سفر، آشنایی با Scikit-Learn است.

انجام برخی طبقه‌بندی با Scikit-Learn یک راه ساده و ساده برای شروع به کارگیری آموخته‌هایتان است، تا مفاهیم یادگیری ماشین را با پیاده‌سازی آنها با کتابخانه‌ای کاربرپسند، مستند و قوی، عینی کنید.

Scikit-Learn چیست؟

مروری بر روش های طبقه بندی در پایتون با Scikit-Learn

Scikit-Learn کتابخانه ای برای پایتون است که برای اولین بار توسط دیوید کورناپیو در سال 2007 توسعه یافت. این کتابخانه شامل طیف وسیعی از الگوریتم های مفید است که می توانند به راحتی برای اهداف طبقه بندی و سایر وظایف یادگیری ماشینی پیاده سازی و بهینه سازی شوند.

کاربردهای Scikit-Learn SciPy به عنوان یک پایه، بنابراین این پشته پایه از کتابخانه ها باید قبل از استفاده از Scikit-Learn نصب شود.

تعریف شرایط ما

قبل از اینکه به اکتشاف Scikit-Learn ادامه دهیم، اجازه دهید یک دقیقه وقت بگذاریم تا شرایط خود را تعریف کنیم. درک درستی از واژگانی که در هنگام توصیف عملکردهای Scikit-Learn استفاده می شود، مهم است.

برای شروع، یک سیستم یا شبکه یادگیری ماشینی ورودی ها و خروجی ها را می گیرد. ورودی های چارچوب یادگیری ماشین اغلب به عنوان نامیده می شوند “امکانات” .

ویژگی‌ها اساساً همان متغیرها در یک آزمایش علمی هستند، آنها ویژگی‌های پدیده تحت مشاهده هستند که می‌توانند کمیت یا اندازه‌گیری شوند.

هنگامی که این ویژگی‌ها به چارچوب یادگیری ماشینی وارد می‌شوند، شبکه سعی می‌کند الگوهای مرتبط بین ویژگی‌ها را تشخیص دهد. سپس از این الگوها برای تولید خروجی های چارچوب/شبکه ​​استفاده می شود.

خروجی های چارچوب اغلب “برچسب” نامیده می شوند، زیرا ویژگی های خروجی دارای برچسب هایی هستند که توسط شبکه به آنها داده شده است، برخی از این فرضیه ها در مورد اینکه خروجی در چه دسته ای قرار می گیرد.

مروری بر روش های طبقه بندی در پایتون با Scikit-Learn
اعتبار: آموزش سیاوولا

در زمینه یادگیری ماشینی، طبقه بندی نوعی از است یادگیری تحت نظارت. یادگیری تحت نظارت به این معنی است که داده های تغذیه شده به شبکه قبلاً برچسب گذاری شده اند، با ویژگی ها/ویژگی های مهم که قبلاً به دسته های مجزا تفکیک شده اند.

این بدان معنی است که شبکه می داند کدام بخش از ورودی مهم است و همچنین یک حقیقت هدف یا زمین وجود دارد که شبکه می تواند خود را در برابر آن بررسی کند. نمونه‌ای از طبقه‌بندی، دسته‌بندی دسته‌ای از گیاهان مختلف به دسته‌های مختلف است سرخس ها یا آنژیوسپرم ها. آن کار می تواند با یک انجام شود درخت تصمیمیک نوع طبقه بندی کننده در Scikit-Learn.

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

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

آزمایش process جایی است که الگوهایی که شبکه یاد گرفته است آزمایش می شود. ویژگی ها به شبکه داده می شود و شبکه باید برچسب ها را پیش بینی کند. داده‌های شبکه به مجموعه‌های آموزشی و آزمایشی، دو مجموعه مختلف ورودی تقسیم می‌شوند. شما طبقه بندی کننده را تست نمی کنید روی همان مجموعه داده ای که شما آن را آموزش می دهید روی، از آنجایی که مدل قبلاً الگوهای این مجموعه از داده ها را آموخته است و این یک سوگیری شدید خواهد بود.

در عوض، مجموعه داده به مجموعه‌های آموزشی و آزمایشی تقسیم می‌شود، مجموعه‌ای که طبقه‌بندی کننده آموزش می‌دهد روی و مجموعه ای که طبقه بندی کننده قبلاً ندیده است.

انواع مختلف طبقه بندی کننده ها

مروری بر روش های طبقه بندی در پایتون با Scikit-Learn
اعتبار: CreativeMagic

Scikit-Learn دسترسی آسان به چندین الگوریتم طبقه بندی مختلف را فراهم می کند. از جمله این طبقه بندی ها می توان به موارد زیر اشاره کرد:

ادبیات زیاد است روی روش کار این طبقه‌بندی‌کننده‌های مختلف و توضیحات مختصری درباره آن‌ها را می‌توانید در اینجا بیابید وب سایت Scikit-Learn.

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

K-نزدیک ترین همسایه ها

مروری بر روش های طبقه بندی در پایتون با Scikit-Learn
اعتبار: آنتی آجانکی آناج

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

درختان تصمیم

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

هنگامی که شبکه داده ها را به یک مثال تقسیم کرد، مثال در کلاسی قرار می گیرد که با یک کلید مطابقت دارد. هنگامی که چندین طبقه‌بندی تصادفی جنگل به هم مرتبط می‌شوند، فراخوانی می‌شوند طبقه بندی جنگل های تصادفی.

بیز ساده لوح

آ طبقه بندی کننده ساده لوح بیز احتمال تعلق یک مثال به یک کلاس را تعیین می کند، با محاسبه احتمال وقوع یک رویداد با توجه به اینکه یک رویداد ورودی رخ داده است.

هنگامی که این محاسبه را انجام می دهد، فرض می شود که همه پیش بینی کننده های یک کلاس اثر یکسانی دارند روی نتیجه، اینکه پیش بینی کننده ها مستقل هستند.

تحلیل تشخیصی خطی

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

همانطور که ممکن است بتوانید حدس بزنید، تجزیه و تحلیل تفکیک خطی، یک الگوریتم طبقه‌بندی خطی است و زمانی که داده‌ها رابطه‌ای خطی دارند، بهترین استفاده را دارد.

ماشین های بردار پشتیبانی

مروری بر روش های طبقه بندی در پایتون با Scikit-Learn
اعتبار: Qluong2016

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

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

رگرسیون لجستیک

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

هر یک از ویژگی ها فقط دارای یک برچسب 0 یا 1 هستند. رگرسیون لجستیک یک طبقه بندی کننده خطی است و بنابراین زمانی استفاده می شود که نوعی رابطه خطی بین داده ها وجود داشته باشد.

نمونه هایی از وظایف طبقه بندی

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

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

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

پیاده سازی یک طبقه بندی کننده

اکنون که در مورد طبقه‌بندی‌کننده‌های مختلفی که Scikit-Learn دسترسی به آنها را فراهم می‌کند، بحث کردیم، بیایید ببینیم که چگونه یک طبقه‌بندی کننده را پیاده‌سازی کنیم.

اولین گام در پیاده سازی یک طبقه بندی کننده این است که import طبقه بندی کننده ای که به پایتون نیاز دارید. بیایید نگاه کنیم import بیانیه رگرسیون لجستیک:

from sklearn.linear_model import LogisticRegression

اینجا هستند import عباراتی برای سایر طبقه بندی کننده های مورد بحث در این مقاله:

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC

Scikit-Learn طبقه‌بندی‌کننده‌های دیگری نیز دارد، و صفحات اسناد مربوطه نشان می‌دهند که چگونه import آنها را

پس از این، طبقه بندی کننده باید نمونه سازی شود. نمونه سازی است process ایجاد طبقه‌بندی‌کننده در برنامه پایتون – برای ایجاد نمونه‌ای از طبقه‌بندی‌کننده/شیء.

این کار معمولاً فقط با ایجاد یک متغیر و فراخوانی تابع مرتبط با طبقه‌بندی کننده انجام می‌شود:

logreg_clf = LogisticRegression()

اکنون طبقه بندی کننده باید آموزش ببیند. برای انجام این کار، طبقه بندی کننده باید با داده های آموزشی تناسب داشته باشد.

ویژگی های آموزشی و برچسب های آموزشی به طبقه بندی کننده با fit دستور:

logreg_clf.fit(features, labels)

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

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

logreg_clf.predict(test_features)

این مراحل: نمونه‌سازی، برازش/آموزش، و پیش‌بینی، گردش کار اصلی طبقه‌بندی‌کننده‌ها در Scikit-Learn هستند.

با این حال، مدیریت طبقه‌بندی‌کننده‌ها تنها بخشی از انجام طبقه‌بندی با Scikit-Learn است. نیمه دیگر طبقه بندی در Scikit-Learn مدیریت داده ها است.

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

خط لوله یادگیری ماشینی

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

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

هنگامی که داده ها پیش پردازش شدند، داده ها باید به مجموعه های آموزشی و آزمایشی تقسیم شوند. ما قبلاً در مورد منطق ایجاد مجموعه‌های آموزشی و آزمایشی صحبت کرده‌ایم، و این را می‌توان به راحتی در Scikit-Learn با یک تابع مفید به نام انجام داد. train_test_split.

همانطور که قبلاً بحث شد، طبقه‌بندی‌کننده باید نمونه‌سازی و آموزش داده شود روی داده های آموزشی پس از این می توان با طبقه بندی کننده پیش بینی کرد. با مقایسه پیش‌بینی‌های انجام‌شده توسط طبقه‌بندی‌کننده با مقادیر واقعی شناخته‌شده برچسب‌ها در داده‌های آزمایشی خود، می‌توانید اندازه‌گیری میزان دقیق طبقه‌بندی‌کننده را به دست آورید.

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

بیایید به نمونه‌ای از خط لوله یادگیری ماشین نگاه کنیم، که از مدیریت داده‌ها به ارزیابی می‌رود.

پیاده سازی طبقه بندی نمونه


import pandas as pd
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC

از آنجایی که مجموعه داده عنبیه بسیار رایج است، Scikit-Learn در واقع از قبل آن را دارد و برای بارگیری با دستور زیر در دسترس است:

sklearn.datasets.load_iris

با این حال، ما فایل CSV را در اینجا بارگذاری می کنیم، به طوری که شما نگاهی به روش بارگیری و پیش پردازش داده ها خواهید داشت. می توانید فایل CSV را دانلود کنید اینجا.

فقط فایل داده را در همان دایرکتوری فایل پایتون خود قرار دهید. این پانداها کتابخانه راه آسانی برای بارگذاری داده ها دارد، read_csv():

data = pd.read_csv('iris.csv')
    

    
print(data.head(5))

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

از آنجایی که این مفید نیست، می‌توانیم آن را از مجموعه داده با استفاده از drop() تابع:

data.drop('Id', axis=1, inplace=True)

اکنون باید ویژگی ها و برچسب ها را تعریف کنیم. ما می توانیم این کار را به راحتی با پانداها با برش دادن جدول داده ها و انتخاب سطر/ستون های خاص با iloc():


X = data.iloc(:,:-1).values

y = data('Species')

نماد برش در بالا هر سطر و هر ستون را به جز آخرین ستون (که برچسب ما، گونه است) انتخاب می کند.

از طرف دیگر، می‌توانید ویژگی‌های خاصی از مجموعه داده مورد علاقه خود را با استفاده از نماد براکت و انتقال سرصفحه‌های ستون انتخاب کنید:


X = data.iloc('SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm')

اکنون که ویژگی‌ها و برچسب‌هایی را که می‌خواهیم داریم، می‌توانیم داده‌ها را به مجموعه‌های آموزشی و آزمایشی تقسیم کنیم sklearnویژگی مفید train_test_split():




X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=27)

ممکن است بخواهید print نتایج برای اطمینان از اینکه داده های شما همانطور که انتظار دارید تجزیه می شود:

print(X_train)  
print(y_train)

اکنون می‌توانیم مدل‌ها را نمونه‌سازی کنیم. بیایید از دو طبقه‌بندی‌کننده استفاده کنیم، یک طبقه‌بندی کننده بردار پشتیبانی و یک طبقه‌بندی کننده K-Nearest Neighbors:

SVC_model = svm.SVC()


KNN_model = KNeighborsClassifier(n_neighbors=5)

حالا بیایید طبقه بندی کننده ها را برازش کنیم:

SVC_model.fit(X_train, y_train)
KNN_model.fit(X_train, y_train)

فراخوانی مدل را آموزش داده است، بنابراین اکنون می‌توانیم پیش‌بینی را در یک متغیر پیش‌بینی و ذخیره کنیم:

SVC_prediction = SVC_model.predict(X_test)
KNN_prediction = KNN_model.predict(X_test)

اکنون باید روش عملکرد طبقه بندی کننده را ارزیابی کنیم. روش‌های مختلفی برای ارزیابی عملکرد یک طبقه‌بندی‌کننده وجود دارد، و در زیر می‌توانید در مورد روش‌های مختلف آن‌ها بیشتر بخوانید.

در Scikit-Learn شما فقط پیش‌بینی‌های برچسب‌های حقیقت پایه را که در برچسب‌های آزمایشی شما ذخیره شده بودند، پاس می‌کنید:


print(accuracy_score(SVC_prediction, y_test))
print(accuracy_score(KNN_prediction, y_test))

print(confusion_matrix(SVC_prediction, y_test))
print(classification_report(KNN_prediction, y_test))

برای مرجع، در اینجا خروجی ما است روی معیارها:

SVC accuracy: 0.9333333333333333
KNN accuracy: 0.9666666666666667

در نگاه اول به نظر می رسد که KNN بهتر عمل کرده است. در اینجا ماتریس سردرگمی برای SVC آمده است:

(( 7  0  0)
 ( 0 10  1)
 ( 0  1 11))

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

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

precision    recall  f1-score   support
    
Iris-setosa       1.00      1.00      1.00         7
Iris-versicolor       0.91      0.91      0.91        11
Iris-virginica       0.92      0.92      0.92        12
    
micro avg       0.93      0.93      0.93        30
macro avg       0.94      0.94      0.94        30
weighted avg       0.93      0.93      0.93        30

ارزیابی طبقه بندی کننده

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

دقت طبقه بندی

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

در حالی که می‌تواند به شما یک ایده سریع از روش عملکرد طبقه‌بندی کننده شما بدهد، زمانی که تعداد مشاهدات/مثال‌ها در هر کلاس تقریباً معادل باشد، بهترین استفاده از آن است. از آنجایی که اغلب این اتفاق نمی افتد، احتمالاً بهتر است از معیار دیگری استفاده کنید.

از دست دادن لگاریتمی

از دست دادن لگاریتمییا LogLoss، اساساً میزان اطمینان طبقه‌بندی کننده در مورد پیش‌بینی‌های خود را ارزیابی می‌کند. LogLoss احتمالات عضویت یک مثال را در یک کلاس معین برمی گرداند و آنها را با هم جمع می کند تا نمایشی از اطمینان کلی طبقه بندی کننده ارائه دهد.

مقدار پیش‌بینی‌ها از 1 تا 0 است که 1 کاملاً مطمئن و 0 بدون اطمینان است. از دست دادن، یا عدم اطمینان کلی، به عنوان یک عدد منفی با 0 نشان دهنده یک طبقه بندی کننده کامل است، بنابراین مقادیر کوچکتر بهتر هستند.

ناحیه زیر منحنی ROC (AUC)

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

1.0، تمام مساحتی که در زیر منحنی قرار می گیرد، یک طبقه بندی کامل را نشان می دهد. این بدان معنی است که AUC 0.5 اساساً به اندازه حدس زدن تصادفی خوب است. منحنی ROC با توجه به حساسیت (نرخ مثبت واقعی / فراخوان) و ویژگی (نرخ منفی واقعی) محاسبه می شود. می توانید در این مقاله منحنی ROC اطلاعات بیشتری در مورد این محاسبات بخوانید.

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

ماتریس سردرگمی یک جدول یا نمودار است که نشان دهنده دقت یک مدل با توجه به دو یا چند کلاس است. پیش بینی های مدل خواهد بود روی محور X در حالی که نتایج/دقت قرار دارند روی محور y

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

گزارش طبقه بندی

گزارش طبقه بندی یک Scikit-Learn ساخته شده در متریک است که به ویژه برای مشکلات طبقه بندی ایجاد شده است. استفاده از گزارش طبقه‌بندی می‌تواند به شما درک سریعی از عملکرد مدل شما بدهد. Recall تعداد نمونه‌هایی را که مدل شما به‌عنوان کلاس A (برخی از کلاس‌های معین) برچسب‌گذاری کرده است، در مقابل تعداد کل نمونه‌های کلاس A قرار می‌دهد و این در گزارش نشان داده شده است.

این گزارش همچنین پیش‌بینی و امتیاز f1 را برمی‌گرداند. دقت درصد نمونه هایی است که مدل شما به عنوان کلاس A برچسب گذاری کرده است که در واقع متعلق به کلاس A هستند (مثبت های واقعی در برابر مثبت های کاذب)، و امتیاز f1 میانگین دقت و یادآوری است.

نتیجه

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

بسیاری از تفاوت های ظریف طبقه بندی تنها با گذشت زمان و تمرین به دست می آیند، اما اگر مراحل این راهنما را دنبال کنید، خوب خواهید بود. روی راه شما برای تبدیل شدن به یک متخصص در کارهای طبقه بندی با Scikit-Learn.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-23 04:52:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید