معیارهای کیفیت در یادگیری ماشین معیارها در مشکلات یادگیری ماشین

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

رتبه بندی یادگیری هنوز یک زمینه تحقیقاتی نسبتاً جوان است که به سرعت در حال توسعه است و در دهه 2000 با ظهور علاقه در زمینه بازیابی اطلاعات در استفاده از روشهای یادگیری ماشین برای رتبه بندی مشکلات ظاهر شد.

YouTube یونیورسیته

  • 1 / 5

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

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

    • مقادیر اقدامات TF ، TF-IDF ، BM25 و مدل زبان مطابقت با درخواست مناطق مختلف سند (عنوان ، URL ، متن اصلی ، متن پیوند) ؛
    • طول و IDF-مجموع مناطق سند ؛
    • رتبه بندی اسناد توسط انواع مختلف الگوریتم های رتبه بندی پیوند مانند PageRank و HITS به دست می آید.

    رتبه بندی معیارهای کیفیت

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

    نمونه هایی از معیارها:

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

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

    رویکرد نقطه ای

    یادداشت ها (ویرایش)

    1. Tie-Yan Liu (2009) ، آموزش رتبه بندی برای بازیابی اطلاعات، مبانی و روندهای بازیابی اطلاعات: جلد. 3: شماره 3 ، ص. 225-331 ، شابک 978-1-60198-244-5 ، DOI 10.1561 / 1500000016... اسلایدهای سخنرانی تی لو در WWW 2009 در دسترس است.

    در مورد خروج مشتریان یک اپراتور مخابراتی.


    بیایید کتابخانه های لازم را بارگذاری کرده و داده ها را بررسی کنیم

    وارد کردن pandas به عنوان pd واردات matplotlib.pyplot به عنوان plt از matplotlib.pylab import rc، plot import seaborn as sns from sklearn.proproing import import LabelmbleEncoder، OneHotEncoder from sklearn.model_selection import cross_val_score from sklearn.linear_frinal از sklearn.metrics import precision_recall_curve ، classification_report from sklearn.model_selection import import_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")


    df.head (5)

    پیش پردازش داده ها

    # بیایید از ستونهای دوتایی نقشه برداری کنیم # و حالت را با کدگذاری ساختگی رمزگذاری کنیم (برای سادگی ، بهتر است این کار را برای مدلهای چوبی انجام ندهید) d = ("Yes": 1، "No": 0) df ["plan international "] = df [" طرح بین المللی "]. نقشه (d) df [" طرح نامه صوتی "] = df [" طرح نامه پست صوتی "]. نقشه (d) df [" Churn "] = df [" Churn "] . Astype ("int64") le = LabelEncoder () df ["State"] = le.fit_transform (df ["State"]) ohe = OneHotEncoder (sparse = False) encoded_state = ohe.fit_transform (df ["State"] . values.reshape (- 1، 1)) tmp = pd.DataFrame (encoded_state، columns = ["state" + str (i) for i in range (encoded_state.shape)]) df = pd.concat (، axis = 1)

    دقت ، دقت و فراخوانی

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


    واقعی مثبت (TP) مثبت کاذب (FP)
    منفی کاذب (FN) منفی واقعی (TN)

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


    آموزش الگوریتم و ساخت ماتریس خطا

    X = df.drop ("Churn"، axis = 1) y = df ["Churn"] # نمونه را به قطار تقسیم کرده و آزمایش کنید ، همه معیارها در مجموعه داده های آزمون X_train ، X_test ، y_train ، y_test = train_test_split ( X، y، stratify = y، test_size = 0.33، random_state = 42) # رگرسیون لجستیک بومی را آموزش دهید lr = LogisticRegression (random_state = 42) lr.fit (X_train، y_train) # از تابع ساخت ماتریس خطا در sklearn استفاده کنید مستندات def plot_confusion_matrix (cm، class، normalize = False، title = "(! LANG: Confusion matrix", cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ plt.imshow(cm, interpolation="nearest", cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) if normalize: cm = cm.astype("float") / cm.sum(axis=1)[:, np.newaxis] print("Normalized confusion matrix") else: print("Confusion matrix, without normalization") print(cm) thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape), range(cm.shape)): plt.text(j, i, cm, horizontalalignment="center", color="white" if cm > thresh else "black") plt.tight_layout() plt.ylabel("True label") plt.xlabel("Predicted label") font = {"size" : 15} plt.rc("font", **font) cnf_matrix = confusion_matrix(y_test, lr.predict(X_test)) plt.figure(figsize=(10, 8)) plot_confusion_matrix(cnf_matrix, classes=["Non-churned", "Churned"], title="ماتریس گیجی") plt.savefig("conf_matrix.png") plt.show()!}


    دقت

    یک معیار شهودی ، واضح و تقریباً بدون استفاده دقت است - درصد پاسخهای صحیح الگوریتم:



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


    فرض کنید می خواهیم عملکرد فیلتر نامه هرزنامه را ارزیابی کنیم. ما 100 ایمیل غیر هرزنامه داریم که 90 مورد از آنها طبقه بندی کننده ما به درستی شناسایی شده است (منفی منفی = 90 ، کاذب مثبت = 10) و 10 ایمیل هرزنامه ، که 5 مورد از آنها نیز به درستی شناسایی شده اند (مثبت مثبت = 5 ، منفی کاذب = پنج )
    سپس دقت:



    با این حال ، اگر همه ایمیل ها را غیر اسپم پیش بینی کنیم ، دقت بالاتری دریافت خواهیم کرد:



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

    دقت ، فراخوانی و اندازه گیری F

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




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



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


    همانطور که قبلاً اشاره کردیم ، دو نوع خطای طبقه بندی وجود دارد: مثبت کاذب و منفی کاذب. در آمار ، نوع اول خطا خطای نوع اول و نوع دوم خطای نوع دوم نامیده می شود. در مشکل ما در تعیین تعداد مشترکان ، اشتباه نوع اول پذیرش یک مشترک وفادار برای یک مشتری خروجی خواهد بود ، زیرا فرضیه صفر ما این است که هیچ یک از مشترکان ترک نمی کند و ما این فرضیه را رد می کنیم. بر این اساس ، خطای نوع دوم "رد شدن" مشترک خروجی و پذیرش اشتباه فرضیه صفر خواهد بود.


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


    معمولاً هنگام بهینه سازی پارامترهای یک الگوریتم (برای مثال ، در صورت تکرار بیش از یک شبکه GridSearchCV) ، از یک معیار استفاده می شود که انتظار داریم بهبود آن را در نمونه آزمایش مشاهده کنیم.
    چندین روش مختلف برای ترکیب دقت و فراخوانی در اندازه گیری کلی از کیفیت وجود دارد. اندازه گیری F (به طور کلی) - دقت هارمونیک و یادآوری:



    در این مورد ، وزن دقت را در متریک تعیین می کند ، و هنگامی که این میانگین هارمونیک است (با ضریب 2 ، به طوری که در مورد دقت = 1 و فراخوانی = 1 داشتن)
    اندازه گیری F زمانی به حداکثر می رسد که کامل بودن و دقت برابر یک باشد و اگر یکی از آرگومان ها نزدیک به صفر باشد نزدیک به صفر است.
    Sklearn دارای عملکرد مفید _metrics.classification است گزارش، که فراخوان ، دقت و اندازه گیری F را برای هر یک از کلاسها و همچنین تعداد نمونه های هر کلاس را برمی گرداند.


    گزارش = گزارش طبقه بندی (y_test ، lr.predict (X_test) ، target_names = ["Non-churned" ، "Churned"]) چاپ (گزارش)
    کلاس دقت، درستی به خاطر آوردن f1-نمره حمایت کردن
    بدون تکان خوردن 0.88 0.97 0.93 941
    به هم ریخته 0.60 0.25 0.35 159
    میانگین / مجموع 0.84 0.87 0.84 1100

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

    AUC-ROC و AUC-PR

    هنگام تبدیل پاسخ واقعی الگوریتم (به عنوان یک قاعده ، احتمال تعلق به یک کلاس ، SVM را جداگانه ببینید) به یک برچسب باینری ، باید مقداری آستانه انتخاب کنیم که 0 در آن 1 شود. یک آستانه برابر 0.5 طبیعی و نزدیک به نظر می رسد ، اما همیشه مطلوب نیست ، به عنوان مثال ، در عدم تعادل طبقاتی فوق الذکر.


    یکی از راه های ارزیابی مدل به طور کلی ، بدون اتصال به یک آستانه خاص ، منطقه AUC -ROC (یا ROC AUC) است ( آرئا Uاحترام ج urve) زیر منحنی خطا ( Rگیرنده Oچسبیدن جمنحنی مشخصه) این منحنی یک خط از (0،0) تا (1،1) در مختصات نرخ مثبت واقعی (TPR) و نرخ مثبت کاذب (FPR) است:




    ما قبلاً TPR را می شناسیم ، این کامل بودن است و FPR نشان می دهد که الگوریتم چند درصد از اجسام کلاس منفی را به اشتباه پیش بینی کرده است. در حالت ایده آل ، هنگامی که طبقه بندی کننده هیچ اشتباهی نمی کند (FPR = 0 ، TPR = 1) ، مساحت زیر منحنی را برابر یک می گیریم. در غیر این صورت ، هنگامی که طبقه بندی کننده به طور تصادفی احتمالات کلاس را نشان می دهد ، AUC-ROC به 0.5 متمایل می شود ، زیرا طبقه بندی کننده تعداد مشابهی از TP و FP را خروجی می دهد.
    هر نقطه روی نمودار مربوط به انتخاب یک آستانه خاص است. مساحت زیر منحنی در این مورد کیفیت الگوریتم را نشان می دهد (بیشتر بهتر است) ، علاوه بر این ، شیب منحنی خود نیز مهم است - ما می خواهیم با به حداقل رساندن FPR ، TPR را به حداکثر برسانیم ، به این معنی که منحنی ما باید به طور ایده آل تمایل داشته باشد نقطه (0،1)


    کد ترسیم منحنی ROC

    sns.set (font_scale = 1.5) sns.set_color_codes ("muted") plt.figure (figsize = (10، 8)) fpr، tpr، thresholds = roc_curve (y_test، lr.predict_proba (X_test) [:، 1]، pos_label = 1) lw = 2 plt.plot (fpr، tpr، lw = lw، label = "منحنی ROC") plt.plot (،) plt.xlim () plt.ylim () plt.xlabel ("نرخ مثبت کاذب ") plt.ylabel (" نرخ مثبت واقعی ") plt.title (" منحنی ROC ") plt.savefig (" ROC.png ") plt.show ()



    معیار AUC-ROC در برابر کلاسهای نامتعادل مقاوم است (هشدار اسپویلر: افسوس ، همه چیز چندان مبهم نیست) و می توان آن را به عنوان احتمال اینکه یک شیء مثبت به طور تصادفی انتخاب شده توسط طبقه بندی کننده درجه بندی بالاتری داشته باشد (احتمال بیشتری برای بودن) تفسیر شود. مثبت) نسبت به یک شی منفی به طور تصادفی انتخاب شده ...


    مشکل زیر را در نظر بگیرید: ما باید 100 سند مربوطه را از 1 میلیون سند انتخاب کنیم. ما بر دو الگوریتم تسلط داریم:

    • الگوریتم 1 100 سند را برمی گرداند که 90 مورد از آنها مربوط است. بدین ترتیب،

    • الگوریتم 2 2000 سند را برمی گرداند که 90 مورد از آنها مربوط است. بدین ترتیب،


    به احتمال زیاد ، ما اولین الگوریتم را انتخاب می کنیم که در مقایسه با رقیب خود ، تعداد بسیار کمی مثبت کاذب تولید می کند. اما تفاوت در نرخ مثبت کاذب بین این دو الگوریتم فوق العادهکوچک - فقط 0.0019. این یک نتیجه از این واقعیت است که AUC-ROC نسبت مثبت کاذب را نسبت به منفی واقعی اندازه گیری می کند و در مشکلاتی که کلاس دوم (بزرگتر) برای ما اهمیت چندانی ندارد ، ممکن است هنگام مقایسه الگوریتم ها تصویر کاملاً کافی ارائه ندهد. .


    برای اصلاح وضعیت ، بیایید به کامل و دقیق برگردیم:

    • الگوریتم 1

    • الگوریتم 2


    در اینجا ، تفاوت قابل توجهی بین دو الگوریتم از قبل قابل مشاهده است - در دقت 0.855!


    دقت و فراخوانی نیز برای ساخت منحنی مورد استفاده قرار می گیرد و مانند AUC-ROC ، مساحت زیر آن را پیدا می کند.



    در اینجا می توان اشاره کرد که در مجموعه داده های کوچک ، مساحت زیر منحنی PR می تواند بیش از حد خوش بین باشد ، زیرا با استفاده از روش ذوزنقه ای محاسبه می شود ، اما معمولاً داده های کافی در چنین وظایفی وجود دارد. برای اطلاعات بیشتر در مورد رابطه بین AUC-ROC و AUC-PR ، اینجا را ببینید.

    ضرر لجستیکی

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



    در اینجا پاسخ الگوریتم روی شیء -th ، برچسب کلاس واقعی در شیء -th و اندازه نمونه است.


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


    بیایید یک مثال را در نظر بگیریم:


    def logloss_crutch (y_true، y_pred، eps = 1e -15): return - (y_true * np.log (y_pred) + (1 - y_true) * np.log (1 - y_pred)) چاپ ("Logloss با طبقه بندی نامشخص٪ f "٪ logloss_crutch (1، 0.5)) >> Logloss با طبقه بندی نامشخص 0.693147 چاپ (" Logloss با طبقه بندی مطمئن و پاسخ صحیح٪ f "٪ logloss_crutch (1، 0.9)) >> Logloss با طبقه بندی مطمئن و پاسخ صحیح 0.105361 چاپ (" Logloss با طبقه بندی مطمئن و پاسخ اشتباه٪ f "٪ logloss_crutch (1، 0.1)) >> Logloss با طبقه بندی مطمئن و پاسخ اشتباه 2.302585

    توجه داشته باشید که چگونه logloss با پاسخ نادرست و طبقه بندی مطمئن رشد چشمگیری داشته است!
    در نتیجه ، یک خطا در یک جسم می تواند منجر به تخریب قابل توجه خطای نمونه کلی شود. چنین اشیائی غالباً بیرونی هستند ، که باید به خاطر داشت آنها را فیلتر یا جداگانه در نظر گرفت.
    اگر یک نمودار logloss بکشید ، همه چیز سر جایش قرار می گیرد:



    مشاهده می شود که هرچه پاسخ الگوریتم با حقیقت زمین = 1 به صفر نزدیک شود ، مقدار خطا بیشتر و منحنی تندتر رشد می کند.

    بیایید خلاصه کنیم:

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

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

    معیارهای ارزیابی کیفیت

    دقت کامل

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

    دقت ، کامل بودن و اندازه گیری F

    معیارهایی مانند دقت و فراخوانی برای اولین بار به طور گسترده در ارزیابی عملکرد سیستم های حل کننده مشکلات بازیابی اطلاعات استفاده شد. دقت سیستم در یک کلاس نسبت اجسامی است که واقعاً متعلق به یک کلاس خاص هستند نسبت به همه اشیاء که سیستم به این کلاس اختصاص داده است. کامل بودن به عنوان نسبت اجسامی است که توسط طبقه بندی کننده متعلق به یک کلاس نسبت به همه اشیاء این کلاس یافت می شود. جدول 4 یک جدول احتمالی از یک کلاس جداگانه است ، جایی که TP (مثبت مثبت) یک تصمیم مثبت واقعی است ، TN (منفی واقعی) یک تصمیم منفی واقعی است ، FP (مثبت کاذب) یک تصمیم مثبت کاذب است و FN (منفی کاذب) ) یک تصمیم نادرست است.

    جدول 1 - جدول احتمالات یک کلاس از اشیاء

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

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

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

    اعتبار سنجی متقابل

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

    بگذارید فرض کنیم که مجموعه ای از توصیفات ویژگی اشیاء است که بر روی آنها یک نمونه محدود از موارد استفاده مشخص شده است ، جایی که مجموعه ای محدود از کلاس ها وجود دارد. نگاشت داده می شود که یک الگوریتم را به انتخاب دلخواه موارد استفاده اختصاص می دهد. سپس کیفیت الگوریتم برای نمونه ای دلخواه از سابقه ها با استفاده از عملکرد کیفی برآورد می شود:

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

    سلام ، حبر!

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

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

    معیارهای مسائل طبقه بندی

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

    بیایید کتابخانه های لازم را بارگذاری کرده و داده ها را بررسی کنیم

    وارد کردن پانداها به عنوان pd واردات matplotlib.pyplot به عنوان plt از matplotlib.pylab import rc ، طرح واردات seaborn به عنوان sns از sklearn. پردازش واردات Labelmblencoder ، OneHotEncoder از sklearn.model_selection واردات cross_val_score از sklearn.linear_modelization از sklearn.metrics import precision_recall_curve ، classification_report from sklearn.model_selection import import_test_split df = pd.read_csv ("../../ data/ telecom_churn.csv")

    Df.head (5)

    پیش پردازش داده ها

    # بیایید از ستونهای دوتایی نقشه برداری کنیم # و حالت را با کدگذاری ساختگی رمزگذاری کنیم (برای سادگی ، بهتر است این کار را برای مدلهای چوبی انجام ندهید) d = ("Yes": 1، "No": 0) df ["plan international "] = df [" طرح بین المللی "]. نقشه (d) df [" طرح نامه پست صوتی "] = df [" طرح نامه پست صوتی "]. نقشه (d) df [" Churn "] = df [" Churn "] . Astype ("int64") le = LabelEncoder () df ["State"] = le.fit_transform (df ["State"]) ohe = OneHotEncoder (sparse = False) encoded_state = ohe.fit_transform (df ["State"] . values.reshape (- 1، 1)) tmp = pd.DataFrame (encoded_state، columns = ["state" + str (i) for i in range (encoded_state.shape)]) df = pd.concat (، axis = 1)

    دقت ، دقت و فراخوانی

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

    واقعی مثبت (TP) مثبت کاذب (FP)
    منفی کاذب (FN) منفی واقعی (TN)

    این پاسخ الگوریتم روی شی است و

    برچسب کلاس واقعی روی این شیء.
    بنابراین ، دو نوع خطای طبقه بندی وجود دارد: منفی کاذب (FN) و مثبت کاذب (FP).

    آموزش الگوریتم و ساخت ماتریس خطا

    X = df.drop ("Churn"، axis = 1) y = df ["Churn"] # نمونه را به قطار تقسیم کرده و آزمایش کنید ، همه معیارها در مجموعه داده آزمون X_train ، X_test ، y_train ، y_test = train_test_split ( X، y، stratify = y، test_size = 0.33، random_state = 42) # رگرسیون لجستیک بومی را آموزش دهید lr = LogisticRegression (random_state = 42) lr.fit (X_train، y_train) # از تابع برای ساخت ماتریس خطا از sklearn استفاده کنید مستندات def plot_confusion_matrix (cm، class، normalize = False، title = "(! LANG: Confusion matrix", cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ plt.imshow(cm, interpolation="nearest", cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) if normalize: cm = cm.astype("float") / cm.sum(axis=1)[:, np.newaxis] print("Normalized confusion matrix") else: print("Confusion matrix, without normalization") print(cm) thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape), range(cm.shape)): plt.text(j, i, cm, horizontalalignment="center", color="white" if cm > thresh else "black") plt.tight_layout() plt.ylabel("True label") plt.xlabel("Predicted label") font = {"size" : 15} plt.rc("font", **font) cnf_matrix = confusion_matrix(y_test, lr.predict(X_test)) plt.figure(figsize=(10, 8)) plot_confusion_matrix(cnf_matrix, classes=["Non-churned", "Churned"], title="ماتریس گیجی") plt.savefig("conf_matrix.png") plt.show()!}

    دقت

    یک معیار شهودی ، واضح و تقریباً بدون استفاده دقت است - درصد پاسخهای صحیح الگوریتم:

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

    فرض کنید می خواهیم عملکرد فیلتر نامه هرزنامه را ارزیابی کنیم. ما 100 ایمیل غیر هرزنامه داریم که 90 مورد از آنها طبقه بندی کننده ما به درستی شناسایی شده است (منفی منفی = 90 ، کاذب مثبت = 10) و 10 ایمیل هرزنامه ، که 5 مورد از آنها نیز به درستی شناسایی شده اند (مثبت مثبت = 5 ، منفی کاذب = 5) .
    سپس دقت:

    با این حال ، اگر همه ایمیل ها را غیر اسپم پیش بینی کنیم ، دقت بالاتری دریافت خواهیم کرد:

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

    دقت ، فراخوانی و اندازه گیری F

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

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

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

    همانطور که قبلاً اشاره کردیم ، دو نوع خطای طبقه بندی وجود دارد: مثبت کاذب و منفی کاذب. در آمار ، نوع اول خطا خطای نوع اول و نوع دوم خطای نوع دوم نامیده می شود. در مشکل ما در تعیین میزان مشترک ، اشتباه نوع اول پذیرش یک مشترک وفادار برای یک مشتری خروجی خواهد بود ، زیرا فرضیه صفر ما این است که هیچ یک از مشترکان خارج نمی شوند و ما این فرضیه را رد می کنیم. بر این اساس ، خطای نوع دوم "رد شدن" مشترک خروجی و پذیرش اشتباه فرضیه صفر خواهد بود.

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

    معمولاً هنگام بهینه سازی پارامترهای یک الگوریتم (برای مثال ، در صورت تکرار بیش از یک شبکه GridSearchCV) ، از یک معیار استفاده می شود که انتظار داریم بهبود آن را در نمونه آزمایش مشاهده کنیم.
    چندین روش مختلف برای ترکیب دقت و فراخوانی در اندازه گیری کلی از کیفیت وجود دارد. اندازه گیری F (به طور کلی

    ) - هارمونیک به معنی دقت و فراخوانی:

    در این مورد وزن دقت را در متریک و برای تعیین می کند

    این میانگین هارمونیک است (با ضرب 2 ، به طوری که در مورد دقت = 1 و فراخوانی = 1 ، ما

    )
    اندازه گیری F زمانی به حداکثر می رسد که کامل بودن و دقت برابر یک باشد و اگر یکی از آرگومان ها نزدیک به صفر باشد نزدیک به صفر است.
    Sklearn دارای عملکرد مفید _metrics.classification است گزارشبازگشت فراخوان ، دقت و اندازه گیری F برای هر یک از کلاس ها ، و همچنین تعداد نمونه های هر کلاس.

    گزارش = classification_report (y_test ، lr.predict (X_test) ، target_names = ["Non-churned" ، "Churned"]) چاپ (گزارش)

    کلاس دقت، درستی به خاطر آوردن f1-نمره حمایت کردن
    بدون تکان خوردن 0.88 0.97 0.93 941
    به هم ریخته 0.60 0.25 0.35 159
    میانگین / مجموع 0.84 0.87 0.84 1100

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

    AUC-ROC و AUC-PR

    هنگام تبدیل پاسخ واقعی الگوریتم (به عنوان یک قاعده ، احتمال تعلق به یک کلاس ، SVM را جداگانه ببینید) به یک برچسب باینری ، باید مقداری آستانه انتخاب کنیم که 0 در آن 1 شود. یک آستانه برابر 0.5 طبیعی و نزدیک به نظر می رسد ، اما همیشه مطلوب نیست ، به عنوان مثال ، در عدم تعادل طبقاتی فوق الذکر.

    یکی از راه های ارزیابی مدل به طور کلی ، بدون اتصال به یک آستانه خاص ، منطقه AUC -ROC (یا ROC AUC) است ( آرئا Uاحترام ج urve) زیر منحنی خطا ( Rگیرنده Oچسبیدن جمنحنی مشخصه) این منحنی یک خط از (0،0) تا (1،1) در مختصات نرخ مثبت واقعی (TPR) و نرخ مثبت کاذب (FPR) است:

    ما قبلاً TPR را می شناسیم ، این کامل بودن است و FPR نشان می دهد که الگوریتم چند درصد از اجسام کلاس منفی را به اشتباه پیش بینی کرده است. در حالت ایده آل ، هنگامی که طبقه بندی کننده هیچ اشتباهی نمی کند (FPR = 0 ، TPR = 1) ، مساحت زیر منحنی را برابر یک می گیریم ، در غیر این صورت ، هنگامی که طبقه بندی کننده به طور تصادفی احتمالات کلاس را نشان می دهد ، AUC-ROC به 0.5 متمایل می شود ، زیرا طبقه بندی کننده به همان میزان TP و FP صادر می کند.
    هر نقطه روی نمودار مربوط به انتخاب یک آستانه خاص است. مساحت زیر منحنی در این مورد کیفیت الگوریتم را نشان می دهد (بیشتر بهتر است) ، علاوه بر این ، شیب منحنی خود نیز مهم است - ما می خواهیم با به حداقل رساندن FPR ، TPR را به حداکثر برسانیم ، به این معنی که منحنی ما باید به طور ایده آل تمایل داشته باشد نقطه (0،1)

    کد ترسیم منحنی ROC

    Sns.set (font_scale = 1.5) sns.set_color_codes ("muted") plt.figure (figsize = (10، 8)) fpr، tpr، thresholds = roc_curve (y_test، lr.predict_proba (X_test) [:، 1]، pos_label = 1) lw = 2 plt.plot (fpr، tpr، lw = lw، label = "منحنی ROC") plt.plot (،) plt.xlim () plt.ylim () plt.xlabel ("نرخ مثبت کاذب ") plt.ylabel (" نرخ مثبت واقعی ") plt.title (" منحنی ROC ") plt.savefig (" ROC.png ") plt.show ()

    معیار AUC-ROC در برابر کلاسهای نامتعادل مقاوم است (اسپویل: افسوس ، اما همه چیز چندان مبهم نیست) و می توان آن را به عنوان احتمال اینکه یک شیء مثبت به طور تصادفی انتخاب شده توسط طبقه بندی کننده بالاتر رتبه بندی شود (احتمال بالاتری داشته باشد) تفسیر کرد. مثبت) نسبت به یک شیء به طور تصادفی منفی منفی.

    مشکل زیر را در نظر بگیرید: ما باید 100 سند مربوطه را از 1 میلیون سند انتخاب کنیم. ما بر دو الگوریتم تسلط داریم:

    • الگوریتم 1 100 سند را برمی گرداند که 90 مورد از آنها مربوط است. بدین ترتیب،
    • الگوریتم 2 2000 سند را برمی گرداند که 90 مورد از آنها مربوط است. بدین ترتیب،

    به احتمال زیاد ، ما اولین الگوریتم را انتخاب می کنیم که در مقایسه با رقیب خود ، تعداد بسیار کمی مثبت کاذب تولید می کند. اما تفاوت در نرخ مثبت کاذب بین این دو الگوریتم فوق العادهکوچک - فقط 0.0019. این یک نتیجه از این واقعیت است که AUC-ROC نسبت مثبت کاذب را نسبت به منفی واقعی اندازه گیری می کند و در مشکلاتی که کلاس دوم (بزرگتر) برای ما اهمیت چندانی ندارد ، ممکن است هنگام مقایسه الگوریتم ها تصویر کاملاً کافی ارائه ندهد. .

    برای اصلاح وضعیت ، بیایید به کامل و دقیق برگردیم:

    • الگوریتم 1
    • الگوریتم 2

    در اینجا ، تفاوت قابل توجهی بین دو الگوریتم از قبل قابل مشاهده است - در دقت 0.855!

    دقت و فراخوانی نیز برای ساخت منحنی مورد استفاده قرار می گیرد و مانند AUC-ROC ، مساحت زیر آن را پیدا می کند.

    در اینجا می توان اشاره کرد که در مجموعه داده های کوچک ، مساحت زیر منحنی PR می تواند بیش از حد خوش بین باشد ، زیرا با استفاده از روش ذوزنقه ای محاسبه می شود ، اما معمولاً داده های کافی در چنین وظایفی وجود دارد. برای اطلاعات بیشتر در مورد رابطه بین AUC-ROC و AUC-PR ، اینجا را ببینید.

    ضرر لجستیکی

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

    این پاسخ الگوریتم به این است

    شیء اهم ،

    برچسب کلاس واقعی روی

    شیء اهم ، و

    اندازهی نمونه.

    جزئیات در مورد تفسیر ریاضی تابع ضرر لجستیک قبلاً در چارچوب پست در مورد مدلهای خطی نوشته شده است.
    این معیار به ندرت در الزامات تجاری ظاهر می شود ، اما اغلب در کارهای مربوط به kaggle ظاهر می شود.
    از نظر بصری ، به حداقل رساندن logloss می توان به عنوان وظیفه حداکثر کردن دقت با مجازات پیش بینی های اشتباه تصور کرد. با این حال ، باید توجه داشت که logloss برای اطمینان طبقه بندی کننده در پاسخ اشتباه بسیار مجازات می کند.

    بیایید یک مثال را در نظر بگیریم:

    Def logloss_crutch (y_true، y_pred، eps = 1e -15): return - (y_true * np.log (y_pred) + (1 - y_true) * np.log (1 - y_pred)) چاپ ("Logloss با طبقه بندی نامشخص٪ f "٪ logloss_crutch (1، 0.5)) >> Logloss با طبقه بندی نامشخص 0.693147 چاپ (" Logloss با طبقه بندی مطمئن و پاسخ صحیح٪ f "٪ logloss_crutch (1، 0.9)) >> Logloss با طبقه بندی مطمئن و پاسخ صحیح 0.105361 چاپ (" Logloss با طبقه بندی مطمئن و پاسخ اشتباه٪ f "٪ logloss_crutch (1، 0.1)) >> Logloss با طبقه بندی مطمئن و پاسخ اشتباه 2.302585

    توجه داشته باشید که چگونه logloss با پاسخ نادرست و طبقه بندی مطمئن رشد چشمگیری داشته است!
    در نتیجه ، یک خطا در یک جسم می تواند منجر به تخریب قابل توجه خطای نمونه کلی شود. چنین اشیائی غالباً بیرونی هستند ، که باید به خاطر داشت آنها را فیلتر یا جداگانه در نظر گرفت.
    اگر یک نمودار logloss بکشید ، همه چیز سر جایش قرار می گیرد:

    مشاهده می شود که هرچه پاسخ الگوریتم با حقیقت زمین = 1 به صفر نزدیک شود ، مقدار خطا بیشتر و منحنی تندتر رشد می کند.

    جمع بندی:

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

    لینک های مفید

    1. دوره Evgeny Sokolov: سمینار در مورد انتخاب مدل (اطلاعاتی در مورد معیارهای مشکلات رگرسیون وجود دارد)
    2. مشکلات AUC-ROC از A.G. دیاکونوا
    3. می توانید درباره معیارهای دیگر در kaggle بیشتر بخوانید. پیوندی به مسابقه ای که در آن استفاده شده است به توضیحات هر معیار اضافه شده است
    4. ارائه توسط بوگدان ملنیک معروف به ld86 در مورد آموزش نمونه های نامتعادل

    UDC 519.816

    S. V. SEMENIKHIN L. A. DENISOVA

    دانشگاه فنی دولتی اومسک

    روش یادگیری ماشین های محدود

    مبتنی بر الگوریتم ژنتیک اصلاح شده برای متری YRSO

    مشکل رتبه بندی اسناد در صفحه نتایج جستجوی اطلاعات و مسائل مربوط به یادگیری ماشین رتبه بندی در نظر گرفته شده است. روشی برای بهینه سازی عملکرد رتبه بندی با استفاده از معیار کیفیت NOCO بر اساس الگوریتم ژنتیک اصلاح شده پیشنهاد شده است. تحقیق در مورد الگوریتم های توسعه یافته (در مجموعه آزمون LETO ^ انجام شد و اثربخشی آنها برای یادگیری ماشین رتبه بندی نشان داده شد.

    کلمات کلیدی: بازیابی اطلاعات ، رتبه بندی یادگیری ماشین ، ارتباط ، بهینه سازی ، الگوریتم های ژنتیک.

    1. معرفی. در سیستم های بازیابی اطلاعات مدرن (ISS) ، حجم داده هایی که توسط سیستم کار می کنند آنقدر زیاد است که وظیفه اصلی رتبه بندی اسناد مربوطه در پاسخ به پرسش جستجوی کاربر است. در این مرحله از توسعه ISS ، رتبه بندی یادگیری ماشین (ML) بیشترین علاقه را دارد. رویکردهای موجود برای ML ، بر اساس روشهای عددی (به ویژه روشهای گرادیان) یا بر اساس محاسبات تحلیلی ، دارای معایب متعددی است که بر کیفیت بازیابی اطلاعات و زمان مورد نیاز برای رتبه بندی اسناد مربوطه تأثیر بسزایی دارد.

    در ابتدای تحقیق ، رویکردهای لیست رتبه بندی یادگیری ماشین در نظر گرفته شد که اکثر آنها از روش نزول گرادیان استفاده می کنند. در آثار در نظر گرفته شده ، ML به بهینه سازی معیارهای کیفیت جستجو (SEQ) کاهش می یابد ، اما فقط از معیارهای نشان داده شده با توابع پیوسته استفاده می شود. این محدودیت اغلب به این واقعیت منجر می شود که در نتیجه بهینه سازی ، عملکرد رتبه بندی برای بسیاری از شاخص های مهم پذیرفته شده (DCG ، nDCG ، رتبه متقابل رتبه بندی متوسط ​​، و غیره) که توابع گسسته هستند دارای امتیازات پایین تری است. این مقاله استفاده از الگوریتم های ژنتیک (GA) را در رتبه بندی آموزش برای به حداقل رساندن عملکرد زیان هوبر با استفاده از ارزیابی های تخصصی مربوط به ارتباط به عنوان مقادیر مرجع پیشنهاد می کند. رویکردی برای ML بر اساس بهینه سازی معیارهای گسسته کیفیت بازیابی اطلاعات نیز پیشنهاد شد.

    2. بیان مشکل رتبه بندی یادگیری ماشین. در اکثر سیستم های بازیابی اطلاعات مدرن ، تابع رتبه بندی بر اساس n توابع رتبه بندی ساده (PRF) ساخته شده است و می تواند به صورت زیر نوشته شود:

    جایی که SRF¡ تابع رتبه بندی ساده برای سند d و پرس و جو q است ، WCi ضریب وزن تابع رتبه بندی ساده پنجم ، n تعداد PRF در سیستم رتبه بندی است.

    در دوره یادگیری ماشین برای رتبه بندی ، مجموعه ای از اسناد جستجو B و پرسش های O از مجموعه آزمون LBTOY استفاده شد. برای همه درخواست های deO ، یک جفت با هر سند deD تشکیل می شود. برای هر یک از این جفت ها ، IRS مقادیر مرتبطی را که برای رتبه بندی نتایج جستجو استفاده می شود ، تعیین می کند. به منظور ارزیابی کیفیت رتبه بندی ، سیستم به مقادیر مربوط به مرجع E برای هر جفت سند-پرس و جو ^، ه) نیاز دارد. برای این اهداف ، ارزیابی های مربوط به ارتباط استفاده می شود.

    برای انجام مطالعه ، از ISS استفاده شد ، که در آن رتبه بندی بر اساس N = 5 عملکرد ساده رتبه بندی SRFi (WC) l г = 1 ، N ، که معیار بردار بهینه را تشکیل می دهند ، انجام می شود:

    جایی که WCе (WC) بردار پارامترهای متغیر است. (ШС) ، (ЯБ) به ترتیب فضاهای پارامترها و معیارهای بردار هستند.

    استفاده از الگوریتم های ژنتیک برای رتبه بندی ML این امکان را می دهد که معیارهای کیفیت مجزا مانند nDCG را به حداکثر برسانیم. معیار nDCG برای رتبه بندی اسناد در موتور جستجو مطابق عبارت زیر تعیین می شود:

    DCG @ n = X 2 ---

    RF (q ، d) = X WC R SRF. ، I = 1 1 1

    جایی که نمره (p) میانگین نمره ارتباطی است که توسط متخصصان به سند واقع شده است در موقعیت p در لیست نتایج ، gradee ؛ 1 / log2 (2 + p) - ضریب بسته به موقعیت سند (اولین اسناد دارای وزن بیشتری هستند).

    سپس نسخه عادی NDCG به صورت نوشته می شود

    N000 @ n = RSD @ n / g ،

    جایی که r ضریب عادی سازی است که برابر حداکثر مقدار ممکن 0С است [ایمیل محافظت شده] n برای یک پرس و جو معین (یعنی برابر با OOO رتبه بندی ایده آل).

    بنابراین ، به منظور بهینه سازی (به حداکثر رساندن) معیار OSS ، تابع هدف (YM) به شکل زیر نوشته می شود

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

    1. ملاک صحت بازیابی اطلاعات

    جایی که a تعداد اسناد مربوطه است ، b تعداد اسنادی است که با موارد مرتبط اشتباه گرفته شده اند.

    2. معیار Bpref ، که ارتباط بازیابی اطلاعات را ارزیابی می کند ، برای پردازش یک کار با اسناد مربوط به R استفاده می شود و با فرمول محاسبه می شود.

    Bpref = - ^ (1 - Non Re ¡Before (r) / R). (4)

    در اینجا ، r نشان دهنده یک سند مربوطه شناخته شده است ، و NonRelBefore (r) - تعداد اسناد نامربوط شناخته شده بالاتر از r (فقط R اول از اسناد نامربوط برآورد شده در اجرا در محاسبه در نظر گرفته می شود).

    3. معیار کامل بودن نتایج جستجو

    r = a / (a+ c) ،

    جایی که a تعداد اسناد مربوطه یافت شده است ، c تعداد اسناد مربوطه پیدا نشده است.

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

    رتبه بندی نتایج جستجو توسط سیستم. در فرایند ML ، مجموعه های آزمایشی به عنوان مجموعه آموزشی استفاده می شوند و بنابراین ، تأثیر قابل توجهی بر نتایج دارند. از مجموعه آزمایشی اسناد و درخواستهای LETOR برای تحقیق استفاده شد. این مجموعه برای تحقیقات بازیابی اطلاعات توسط Microsoft Research استفاده می شود. جدول 1 ویژگی های مجموعه های آزمون LETOR را نشان می دهد.

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

    لازم به ذکر است که GA ها در جستجوی ناحیه ای از یک اکستروم جهانی م areثرتر هستند ، اما زمانی که لازم است حداقل محلی را در این زمینه پیدا کنید ، می توانند به آرامی کار کنند. راه پیشنهادی برای جلوگیری از این عیب ، ایجاد یک الگوریتم ژنتیک اصلاح شده (MGA) است که پس از یافتن منطقه مطلوب جهانی با استفاده از GA اساسی ، به یک الگوریتم بهینه سازی محلی (با سرعت بالا) تغییر می کند. MGA پیشنهادی یک روش ترکیبی بر اساس GA کلاسیک و روش Nelder - Mead (الگوریتم سیمپلکس) است. روش نلدر - مید ، یک الگوریتم بهینه سازی غیر خطی که اغلب استفاده می شود ، یک روش عددی برای یافتن حداقل یک تابع هدف در یک فضای چند بعدی است. الگوریتم ترکیبی MGA ارائه شده در این مقاله پس از برآورده شدن شرایط متوقف کردن GA به روش Nelder - Mead تغییر می کند. نمودار بلوک الگوریتم MGA در شکل نشان داده شده است. یکی

    هنگام انجام تحقیقات ، محدودیتی در تعداد محاسبات تابع هدف (Nrf = 16000) هنگام جستجوی منطقه اکستروم جهانی و شرط تغییر به الگوریتم بهینه سازی محلی بر اساس روش نلدر - مید (پس از الگوریتم ژنتیک اساسی 75 درصد از عملیات Nrf را انجام داده است).

    6. نتایج. در نتیجه تحقیقات انجام شده با استفاده از الگوریتم یادگیری ماشین

    میز 1

    تعداد اسناد و پرسش ها در مجموعه آزمون

    نام مجموعه آزمایش نام زیر سیستم تعداد درخواستها تعداد اسناد

    LETOR 4.0 MQ2007 1692 69623

    LETOR 4.0 MQ2008 784 15211

    LETOR 3.0 OHSUMED 106 16140

    LETOR 3.0 Gov03td 50 49058

    LETOR 3.0 Gov03np 150 148657

    LETOR 3.0 Gov03hp 150 147606

    LETOR 3.0 Gov04td 75 74146

    LETOR 3.0 Gov04np 75 73834

    LETOR 3.0 Gov04hp 75 74409

    برنج. 1. نمودار بلوک الگوریتم ترکیبی MVL بر اساس الگوریتم های ژنتیک و روش Nelder-Mead

    برای رتبه بندی LTR-MGA ، بردار وزن های WC * برای تابع رتبه بندی بدست می آید. علاوه بر این ، بر اساس داده های مجموعه آزمون LETOYA ، کیفیت رتبه بندی ارزیابی شد ، که معیارهای کیفیت برای آن محاسبه شد. معیار گسسته کیفیت رتبه بندی [ایمیل محافظت شده]کیفیت اولین اسناد n پاسخ سیستم را ارزیابی می کند. معیارهای متداول برای ارزیابی کیفیت رتبه بندی عبارتند از: [ایمیل محافظت شده], [ایمیل محافظت شده]و [ایمیل محافظت شده]با این حال ، برای بررسی دقیق تر تغییرات متریک بسته به مقادیر [ایمیل محافظت شده]برای مقایسه کارایی الگوریتم توسعه یافته با راه حل های موجود ، تجزیه و تحلیل مقایسه ای با استفاده از الگوریتم های رتبه بندی ارائه شده در مجموعه LETOIA 3.0 انجام شد. نتایج اجرای الگوریتم ها برای مجموعه های آزمایش TB2003 و TB2004 برای متریک NDCG در شکل نشان داده شده است. 2. نتایج نشان می دهد که الگوریتم LTR-MGA از الگوریتم های آزمایش بهتر عمل می کند ، با بالاترین مقادیر

    برای هستند [ایمیل محافظت شده](در سطح سند اول). برتری الگوریتم LTR-MGA به این دلیل است که بر خلاف توابع رتبه بندی آزمون در نظر گرفته شده در آزمایشات ، در رویکرد پیشنهادی برای بهینه سازی تابع رتبه بندی ، این متریک NDCG است که به عنوان تابع هدف استفاده می شود.

    به منظور ارزیابی کیفیت رتبه بندی هنگام استفاده از الگوریتم پیشنهادی LTR-MGA ، مقادیر معیارهای کیفیت برای رتبه بندی اسناد در نتایج جستجو محاسبه شد (شکل 3). مقایسه نتایج رتبه بندی (جدول 2) هنگام استفاده از تابع رتبه بندی پایه ، الگوریتم اساسی LTR-GA و الگوریتم اصلاح شده LTR-MGA مزیت دومی را نشان می دهد.

    علاوه بر این ، این مطالعه زمان مورد نیاز برای رتبه بندی MO را تخمین زده است. این امر برای تأیید اینکه روش پیشنهادی LTR-MGA در این شاخص نسبت به رویکرد مبتنی بر روش سنتی برتری دارد

    برنج. 2. مقایسه الگوریتم های یادگیری ماشین برای رتبه بندی

    با معیار NDCG برای مجموعه های آزمایشی: در سمت چپ - مجموعه داده Gov03td ، در سمت راست - مجموعه داده Gov04td

    برنج. 3. ارزیابی معیارهای کیفیت رتبه بندی برای فرمول رتبه بندی پایه و الگوریتم های یادگیری LTR-GA و LTR-MGA

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

    جدول 2

    رتبه بندی معیارهای کیفیت تابع رتبه بندی پایه LTR-GA LTR-MGA افزایش مقدار متریک ،٪

    دقت 0.201 0.251 0.267 26.81

    [ایمیل محافظت شده](5 سند اول) 0.149 0.31 0.339 90.47

    [ایمیل محافظت شده](10 سند اول) 0.265 0.342 0.362 29.14

    Bpref 0.303 0.316 0.446 51.49

    کامل بودن 0.524 0.542 0.732 39.03

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

    الگوریتم ژنتیک onnogo (LTA-OL) نتایج مقایسه زمان صرف شده برای اجرای الگوریتم های LTY-OL و LTY-MOL در جدول نشان داده شده است. 3

    7. نتیجه گیری. بنابراین ، مطالعات انجام شده نشان داده است که هنگام استفاده از روش پیشنهادی ، مقادیر معیارهای رتبه بندی در نظر گرفته شده در ISS افزایش می یابد (به طور متوسط ​​19.55٪ در مقایسه با الگوریتم LTL-OL). این تأیید می کند که LITA-MOL به درستی کار می کند و عملکرد رتبه بندی را به میزان قابل توجهی بهبود می بخشد ، به عبارت دیگر ، مشکل بهینه سازی را با موفقیت حل می کند. استفاده از الگوریتم اصلاح شده

    به دلیل استفاده از روش بهینه سازی محلی و محدودیت های معرفی شده در تعداد محاسبات تابع هدف ، زمان یادگیری ماشین کاهش یافته است (به طور متوسط ​​17.71٪ در مقایسه با استفاده از الگوریتم ژنتیک سنتی LTIAOL).

    الگوریتم توسعه یادگیری ماشین برای رتبه بندی LTY-MOL را می توان در ISS استفاده کرد که از مدل رتبه بندی بر اساس ترکیبی از توابع رتبه بندی ساده استفاده می کند. با این حال ، برخی از محدودیت ها در مورد استفاده از روش پیشنهادی باید در نظر گرفته شود. مستقر

    برآورد زمان اجرای رتبه بندی یادگیری ماشین بسته به اندازه نمونه آموزش

    جدول 3

    اندازه مجموعه سند متن

    زمان اجرای LTR-GA

    زمان اجرا LTR-MGA

    کاهش زمان اجرا ،٪

    مقدار متوسط

    * بهترین مقادیر برای اندازه مجموعه آزمون مربوطه با رنگ خاکستری مشخص شده است

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

    فهرست کتابشناسی

    1. تای یان لیو. یادگیری رتبه بندی برای بازیابی اطلاعات // مبانی مجله و روندهای بازیابی اطلاعات. جلد 3 ، شماره 3. مارس 2009. ص 225-331.

    2. کریستوفر جی سی برگز ، تال شاکد ، ارین رنشاو. یادگیری رتبه بندی با استفاده از گرادیان تبار // ادامه ICML "05 مجموعه مقالات بیست و دومین کنفرانس بین المللی یادگیری ماشین. 2005. ص. 89-96.

    3. Semenikhin ، SV بررسی رویکردهای یادگیری ماشین برای رتبه بندی اسناد توسط یک سیستم جستجو بر اساس الگوریتم های ژنتیک / SV Semenikhin // روسیه جوان: فناوری های پیشرفته در صنعت. - 2013. - شماره 2. - ص 82 - 85.

    4. بهینه سازی چند معیاره بر اساس الگوریتم های ژنتیک در سنتز سیستم های کنترل: تک نگاری. / L. A. Denisova. - Omsk: انتشارات OmSTU ، 2014.- 170 ص. -شابک 978-5-8149-1822-2.

    5. دنیسوا ، L. A. اتوماسیون سنتز پارامتری سیستم کنترل با استفاده از الگوریتم ژنتیک / L. A. Denisova، V. A. Meshcheryakov // اتوماسیون در صنعت. - 2012. - شماره 7. - ص 34 - 38.

    6. هوبر ، پیتر ج. برآورد قوی پارامتر مکان // سالنامه آمار. - 1964. - شماره 53. - ص 73-101.

    7. Semenikhin، S. V. اتوماسیون بازیابی اطلاعات بر اساس بهینه سازی چند معیاره و الگوریتم های ژنتیک / S. V. Semenikhin، L. A. Denisova // دینامیک سیستم ها ، مکانیسم ها و ماشین ها. - 2014. - شماره 3. - ص 224 - 227.

    8. تی یان لیو ، جون شو ، تائو چین ، ونینگ شیونگ و هنگ لی. LETOR: Benchmark Dataset برای تحقیق در مورد یادگیری رتبه بندی برای بازیابی اطلاعات // SIGIR 2007 کارگاه آموزشی یادگیری رتبه بندی برای بازیابی اطلاعات. - 2007 .-- S. 3-10.

    9. ایگیف ، MS معیارهای رسمی RMIP "2004 / MS Ageev ، IE Kuralenok // II سمینار روسی در مورد ارزیابی روش های بازیابی اطلاعات (ROMIP 2004) ، پوشچینو ، 2004: tr. ؛ ویرایش S. S. Nekrest'yanova. - سن پترزبورگ: موسسه تحقیقات شیمی ، دانشگاه دولتی سن پترزبورگ. - ص 142-150.

    10. J. A. Nelder، R. Mead، A simplex method for minimization function، The Computer Journal 7 (1965). 308-313.

    اسویاتوسلاو ویتالیویچ SEMENIKHIN ، دانشجوی کارشناسی ارشد گروه پردازش اطلاعات و سیستم های کنترل خودکار. آدرس مکاتبات: [ایمیل محافظت شده] DENISOVA لیودمیلا آلبرتوونا ، دکترای علوم فنی ، دانشیار گروه پردازش و کنترل خودکار اطلاعات سیستم ها. آدرس مکاتبات: [ایمیل محافظت شده]