Makine öğreniminde kalite metriği. Makine Öğrenimi Problemlerinde Metrikler

Her listenin içindeki öğelerde. Kısmi sıra genellikle her öğe için bir puan belirtilerek belirtilir (örneğin, "ilgili" veya "ilgili değil"; ikiden fazla not mümkündür). Sıralama modelinin amacı, yeni veriler için eğitim kümesindeki sıralama yöntemini (bir anlamda) en iyi şekilde tahmin etmek ve genelleştirmektir.

Sıralama öğrenme, 2000'li yıllarda makine öğrenmesi yöntemlerinin sıralama problemlerine uygulanmasında bilgi erişimi alanına ilginin ortaya çıkmasıyla ortaya çıkmış, hala oldukça genç, hızla gelişen bir araştırma alanıdır.

Üniversite YouTube'u

  • 1 / 5

    Sıralama modelinin eğitimi sırasında ve çalışması sırasında, her belge-sorgu çifti, belgenin, sorgunun ve ilişkilerinin özelliklerini karakterize eden sayısal bir sıralama özellikleri vektörüne (sıralama faktörleri veya sinyalleri de denir) çevrilir. Bu tür işaretler üç gruba ayrılabilir:

    Teknikte iyi bilinen LETOR veri setinde kullanılan bazı sıralama özellikleri örnekleri aşağıdadır:

    • Ölçü değerleri TF, TF-IDF, BM25 ve belgenin çeşitli alanlarının isteğine uygun dil modeli (başlık, URL, gövde metni, bağlantı metni);
    • Belge bölgelerinin uzunlukları ve IDF toplamları;
    • PageRank ve HITS gibi çeşitli bağlantı sıralama algoritmaları tarafından elde edilen belge sıraları.

    Sıralama kalitesi metrikleri

    Bir örnek üzerindeki sıralama algoritmalarının performansının değerlendirildiği ve değerlendiricilerle karşılaştırıldığı çeşitli ölçütler vardır. Çoğu zaman, bir sıralama modelinin parametreleri, bu metriklerden birinin değerini maksimize edecek şekilde ayarlanma eğilimindedir.

    Metrik örnekleri:

    Algoritma sınıflandırması

    "Learning to Rank to Rank for Information Retrieval" adlı makalesinde ve tematik konferanslardaki konuşmalarında, Microsoft Research Asia'dan Tai-Yang Liu, öğretim sıralaması sorununu çözmek için mevcut yöntemleri analiz etti ve kullanılan girdi temsiline bağlı olarak bunların sınıflandırmasını üç yaklaşımda önerdi. . veri ve ceza işlevleri:

    Noktasal yaklaşım

    Notlar (düzenle)

    1. Tie-Yan Liu (2009), Bilgi Erişimi için Sıralamayı Öğrenmek, Bilgi Erişiminde Temeller ve Eğilimler: Cilt. 3: Hayır 3, s. 225-331, ISBN 978-1-60198-244-5, DOI 10.1561/1500000016... T. Lew'in WWW 2009'daki konuşmasından slaytlar mevcuttur.

    Bir telekom operatörünün müşterilerinin çıkışı hakkında.


    Gerekli kütüphaneleri yükleyelim ve verilere bakalım

    pandaları pd olarak içe aktar matplotlib.pyplot'u matplotlib.pylab'dan plt olarak içe aktar rc'yi içe aktar, arsayı sklearn.preprocessing'den sns olarak al sklearn.metrics'den hassas_recall_curve'u içe aktar, sklearn.model_selection'dan sınıflandırma_reportunu içe aktar train_test_split'i içe aktar df = pd.read_csv ("../../ data / telecom_churn.csv")


    df.kafa (5)

    Veri ön işleme

    # İkili sütunların bir eşlemesini yapalım # ve durumu kukla kodlama ile kodlayalım (basitlik için bunu ahşap modeller için yapmamak daha iyidir) d = ("Evet": 1, "Hayır": 0) df ["Uluslararası plan "] = df [" Uluslararası plan "]. Harita (d) df [" Sesli posta planı "] = df [" Sesli posta planı "]. Harita (d) df [" Churn "] = df [" Churn "] Astype (" int64 " ) le = LabelEncoder () df ["State"] = le.fit_transform (df ["State"]) ohe = OneHotEncoder (sparse = False) encoding_state = ohe.fit_transform (df ["State"] .value.reshape (- 1, 1)) tmp = pd.DataFrame (encoding_state, column = ["state" + str (i) for i in range (encoding_state.shape)]) df = pd.concat (, axis = 1)

    Doğruluk, kesinlik ve hatırlama

    Metriklerin kendilerine geçmeden önce, bu metrikleri sınıflandırma hataları açısından tanımlamak için önemli bir kavramı tanıtmak gerekir - karışıklık matrisi(hata matrisi).
    İki sınıfımız ve her nesnenin sınıflardan birine ait olduğunu tahmin eden bir algoritmamız olduğunu varsayalım, o zaman sınıflandırma hatası matrisi şöyle görünecektir:


    Gerçek Pozitif (TP) Yanlış Pozitif (FP)
    Yanlış Negatif (FN) Gerçek Negatif (TN)

    İşte algoritmanın nesne üzerindeki yanıtı ve o nesne üzerindeki gerçek sınıf etiketi.
    Dolayısıyla, iki tür sınıflandırma hatası vardır: Yanlış Negatif (FN) ve Yanlış Pozitif (FP).


    Algoritma eğitimi ve hata matrisinin oluşturulması

    X = df.drop ("Churn", eksen = 1) y = df ["Churn"] # Örneği tren ve teste bölün, tüm metrikler test veri kümesinde değerlendirilecektir X_train, X_test, y_train, y_test = train_test_split ( X, y , stratify = y, test_size = 0.33, random_state = 42) # Yerel lojistik regresyonu eğitin lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Sklearn'den hata matrisi oluşturma işlevini kullanın dokümantasyon def plot_confusion_matrix (cm, sınıflar , normalize = False, title = "(! LANG: Karışıklık matrisi)", 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="karışıklık matrisi") plt.savefig("conf_matrix.png") plt.show()!}


    Kesinlik

    Sezgisel, açık ve neredeyse kullanılmayan bir metrik doğruluktur - algoritmanın doğru cevaplarının yüzdesi:



    Bu metrik, eşit olmayan sınıflarla ilgili problemlerde işe yaramaz ve bir örnekle göstermek kolaydır.


    Bir spam posta filtresinin performansını değerlendirmek istediğimizi varsayalım. 90'ı sınıflandırıcımızın doğru tanımladığı (Doğru Negatif = 90, Yanlış Pozitif = 10) ve 5'i sınıflandırıcının da doğru tanımladığı 10 spam e-postamız (Doğru Olumlu = 5, Yanlış Negatif = beş) spam olmayan 100 e-postamız var. ).
    Sonra doğruluk:



    Ancak, tüm e-postaların istenmeyen posta olmadığını tahmin edersek daha yüksek bir doğruluk elde ederiz:



    Aynı zamanda, başlangıçta spam mesajlarını belirlemek istediğimiz için modelimizin hiçbir tahmin gücü yoktur. Bunun üstesinden gelmek için, tüm sınıflar için ortak bir metrikten sınıfların kalitesinin ayrı göstergelerine geçiş bize yardımcı olacaktır.

    Hassasiyet, geri çağırma ve F-ölçümü

    Algoritmanın performansını sınıfların her birinde ayrı ayrı değerlendirmek için kesinlik ve geri çağırma metriklerini sunuyoruz.




    Kesinlik, sınıflandırıcı tarafından pozitif ve aynı zamanda gerçekten pozitif olarak adlandırılan nesnelerin oranı olarak yorumlanabilir ve geri çağırma, algoritmanın bulduğu pozitif bir sınıfın tüm nesnelerinden pozitif bir sınıfın nesnelerinin ne kadarını gösterir.



    Tüm nesneleri tek bir sınıfa yazmamıza izin vermeyen kesinlik girişidir, çünkü bu durumda Yanlış Pozitif düzeyinde bir artış elde ederiz. Geri çağırma, algoritmanın genel olarak belirli bir sınıfı algılama yeteneğini gösterir ve kesinlik, bu sınıfı diğer sınıflardan ayırt etme yeteneğini gösterir.


    Daha önce de belirttiğimiz gibi, iki tür sınıflandırma hatası vardır: Yanlış Pozitif ve Yanlış Negatif. İstatistikte, ilk hata tipine tip I hata, ikinci tip hata ise tip II hata olarak adlandırılır. Abone kaybını belirleme sorunumuzda, ilk türdeki hata sadık bir abonenin giden bir abone olarak kabul edilmesi olacaktır, çünkü sıfır hipotezimiz hiçbir abonenin ayrılmamasıdır ve biz bu hipotezi reddederiz. Buna göre, ikinci türden bir hata, giden abonenin "atlanması" ve sıfır hipotezinin hatalı kabulü olacaktır.


    Kesinlik ve geri çağırma, doğruluğun aksine, sınıfların oranına bağlı değildir ve bu nedenle dengesiz numune koşullarında uygulanabilir.
    Genellikle gerçek uygulamada, görev bu iki metrik arasındaki (müşteri için) optimal dengeyi bulmaktır. Klasik bir örnek, müşteri kaybını belirleme sorunudur.
    Belli ki bulamıyoruz tümünden giden müşteriler ve sadece onlara. Ancak, müşteriyi elde tutmak için strateji ve kaynağı belirledikten sonra, kesinlik ve geri çağırma için gerekli eşikleri seçebiliriz. Örneğin, yalnızca yüksek getirili müşterileri veya sınırlı çağrı merkezi kaynaklarımız olduğu için ayrılma olasılığı daha yüksek olan müşterileri elde tutmaya odaklanabilirsiniz.


    Genellikle, bir algoritmanın hiperparametrelerini optimize ederken (örneğin, bir ızgara üzerinde yineleme durumunda IzgaraAramaCV), iyileştirilmesini test örneğinde görmeyi umduğumuz bir metrik kullanılır.
    Kesinliği ve geri çağırmayı toplu bir kalite ölçüsünde birleştirmenin birkaç farklı yolu vardır. F-ölçümü (genel olarak) - harmonik ortalama kesinlik ve hatırlama:



    Bu durumda, metrikteki doğruluğun ağırlığını ve bu olduğunda harmonik ortalamayı belirler (2 faktörü ile, böylece hassasiyet = 1 ve hatırlama = 1 olması durumunda)
    F ölçüsü, tamlık ve kesinlik bire eşit olduğunda maksimum değerine ulaşır ve bağımsız değişkenlerden biri sıfıra yakınsa sıfıra yakındır.
    Sklearn'in kullanışlı bir _metrics.classification işlevi vardır bildiri, her sınıf için geri çağırma, kesinlik ve F-ölçüsünün yanı sıra her sınıfın örnek sayısını döndürür.


    rapor = sınıflandırma_raporu (y_test, lr.predict (X_test), target_names = ["Churned", "Churned"]) yazdır (rapor)
    sınıf kesinlik hatırlamak f1-skoru destek
    olmayan 0.88 0.97 0.93 941
    çalkalanmış 0.60 0.25 0.35 159
    ort / toplam 0.84 0.87 0.84 1100

    Burada, gerçek uygulamada geçerli olan dengesiz sınıflarla ilgili problemlerde, sınıfların oranını eşitlemek için veri kümesinin yapay modifikasyon tekniklerine başvurmanın sıklıkla gerekli olduğu belirtilmelidir. Birçoğu var ve onlara dokunmayacağız, bazı yöntemlere bakabilir ve görevinize uygun olanı seçebilirsiniz.

    AUC-ROC ve AUC-PR

    Algoritmanın gerçek cevabını (kural olarak, bir sınıfa ait olma olasılığı, ayrıca SVM'ye bakınız) ikili etikete dönüştürürken, 0'ın 1 olduğu bir eşik seçmeliyiz. 0,5'e eşit bir eşik doğal ve yakın görünüyor. , ancak örneğin yukarıda belirtilen sınıf dengesi eksikliğinde her zaman optimal olmadığı ortaya çıkıyor.


    Modeli belirli bir eşiğe bağlı kalmadan bir bütün olarak değerlendirmenin yollarından biri AUC-ROC (veya ROC AUC) - alan ( A rea sen alt C urve) hata eğrisinin altında ( r alıcı Ö perating C karakteristik eğri). Bu eğri, True Positive Rate (TPR) ve False Positive Rate (FPR) koordinatlarında (0,0) ile (1,1) arasında bir çizgidir:




    TPR'yi zaten biliyoruz, bu tamlıktır ve FPR, algoritmanın yanlış tahmin ettiği negatif sınıftaki nesnelerin ne kadarını gösterir. İdeal durumda, sınıflandırıcı hata yapmadığında (FPR = 0, TPR = 1), eğrinin altındaki alanı bire eşit alırız; aksi halde, sınıflandırıcı sınıf olasılıklarını rasgele çıktıladığında, sınıflandırıcı aynı sayıda TP ve FP çıktısı vereceğinden AUC-ROC 0,5 olma eğiliminde olacaktır.
    Grafikteki her nokta, belirli bir eşiğin seçimine karşılık gelir. Bu durumda eğrinin altındaki alan algoritmanın kalitesini gösterir (daha fazlası daha iyidir), ayrıca eğrinin dikliği de önemlidir - FPR'yi en aza indirerek TPR'yi en üst düzeye çıkarmak istiyoruz, bu da eğrimizin ideal olarak eğilmesi gerektiği anlamına gelir. (0,1) noktası.


    ROC eğrisi çizim kodu

    sns.set (font_scale = 1.5) sns.set_color_codes ("sessiz") plt.figure (figsize = (10, 8)) fpr, tpr, eşikler = roc_curve (y_test, lr.predict_proba (X_test) [:, 1], pos_label = 1) lw = 2 plt.plot (fpr, tpr, lw = lw, label = "ROC eğrisi") plt.plot (,) plt.xlim () plt.ylim () plt.xlabel ("Yanlış Pozitif Oran" ") plt.ylabel (" True Positive Rate ") plt.title (" ROC eğrisi ") plt.savefig (" ROC.png ") plt.show ()



    AUC-ROC kriteri, dengesiz sınıflara karşı dirençlidir (spoiler uyarısı: ne yazık ki, her şey o kadar açık değildir) ve rastgele seçilen bir pozitif nesnenin sınıflandırıcı tarafından daha yüksek derecelendirilme olasılığı (daha yüksek olma olasılığı daha yüksek olacaktır) olarak yorumlanabilir. pozitif) rastgele seçilmiş bir negatif nesneden daha ...


    Şu problemi ele alalım: 1 milyon belgeden 100 ilgili belgeyi seçmemiz gerekiyor. İki algoritmada ustalaştık:

    • algoritma 1 90'ı ilgili olmak üzere 100 belge döndürür. Böylece,

    • Algoritma 2 90'ı ilgili olan 2000 belgeyi döndürür. Böylece,


    Büyük olasılıkla, rakibine kıyasla çok az Yanlış Pozitif üreten ilk algoritmayı seçerdik. Ancak bu iki algoritma arasındaki Yanlış Pozitif Oran farkı son derece küçük - sadece 0,0019. Bunun nedeni, AUC-ROC'nin Gerçek Negatif'e göre Yanlış Pozitif oranını ölçmesidir ve ikinci (daha büyük) sınıfın bizim için çok önemli olmadığı problemlerde, algoritmaları karşılaştırırken tamamen yeterli bir resim vermeyebilir.


    Durumu düzeltmek için eksiksizliğe ve doğruluğa dönelim:

    • algoritma 1

    • Algoritma 2


    Burada, iki algoritma arasındaki önemli bir fark zaten göze çarpıyor - 0.855 doğruluk!


    Hassasiyet ve geri çağırma da eğriyi oluşturmak ve AUC-ROC gibi onun altındaki alanı bulmak için kullanılır.



    Burada, küçük veri kümelerinde, PR eğrisinin altındaki alanın, yamuk yöntemi kullanılarak hesaplandığından aşırı iyimser olabileceği, ancak genellikle bu tür görevlerde yeterli veri bulunduğu belirtilebilir. AUC-ROC ve AUC-PR arasındaki ilişki hakkında ayrıntılar için buraya bakın.

    Lojistik Kayıp

    Lojistik kayıp fonksiyonu şu şekilde tanımlanır:



    işte algoritmanın -th nesnesine yanıtı, -th nesnesindeki gerçek sınıf etiketi ve örnek boyutu.


    Lojistik kayıp fonksiyonunun matematiksel yorumuyla ilgili ayrıntılar, doğrusal modeller hakkındaki yazı çerçevesinde zaten yazılmıştır.
    Bu ölçüm nadiren iş gereksinimlerinde, ancak genellikle kaggle'daki görevlerde görünür.
    Sezgisel olarak, mantık hatasının en aza indirilmesini, yanlış tahminleri cezalandırarak doğruluğu en üst düzeye çıkarma görevi olarak düşünebilirsiniz. Bununla birlikte, sınıflandırıcının yanlış cevaba olan güveni için logloss'un son derece güçlü bir şekilde cezalandırıldığına dikkat edilmelidir.


    Bir örnek düşünelim:


    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)) print ("Belirsiz sınıflandırma% f ile Logloss "% logloss_crutch (1, 0.5)) >> Sınıflandırması belirsiz Logloss 0.693147 yazdır (" Güvenilir sınıflandırma ve doğru cevap% f "% logloss_crutch (1, 0.9)) >> Güvenilir sınıflandırma ve doğru cevap ile Logloss 0.105361 yazdır (" Güvenilir sınıflandırma ve Yanlış cevap% f "% logloss_crutch (1, 0.1)) >> Güvenilir sınıflandırma ve Yanlış cevap ile Logloss 2.302585

    Yanlış bir cevap ve kendinden emin bir sınıflandırma ile mantık kelimesinin nasıl dramatik bir şekilde büyüdüğüne dikkat edin!
    Sonuç olarak, bir nesnedeki bir hata, genel numune hatasının önemli ölçüde bozulmasına neden olabilir. Bu tür nesneler genellikle aykırı değerlerdir ve filtrelenmeleri veya ayrı olarak değerlendirilmeleri gerektiği unutulmamalıdır.
    Bir mantık grafiği çizerseniz her şey yerine oturur:



    Algoritmanın temel gerçeği = 1 olan yanıtı sıfıra yaklaştıkça hata değerinin arttığı ve eğrinin daha dik büyüdüğü görülebilir.

    Özetleyelim:

    • Çok sınıflı bir sınıflandırma durumunda, her bir sınıfın metriklerini dikkatlice izlemeniz ve kararın mantığını takip etmeniz gerekir. görevler metriği optimize etmek yerine
    • Eşit olmayan sınıflar durumunda, eğitim için bir sınıf dengesi ve sınıflandırmanın kalitesini doğru bir şekilde yansıtacak bir metrik seçmek gerekir.
    • ve bu makaleyle ilgili yardım için madrugado.

    Bu bölüm, diğer şeylerin yanı sıra bu konudaki diğer çalışmalarda kullanılan sınıflandırma modelinin kalitesini değerlendirmek için popüler yöntemler sunmaktadır. Bu değerlendirme için kullanılan metriklerin açıklamaları ve gerekçeleri verilmiştir.

    Kalite değerlendirme metrikleri

    Tam doğruluk

    Bu metrik, sınıflandırma algoritmalarının performansını değerlendirmek için en basit ve aynı zamanda evrensel metriklerden biridir. Bu katsayının değeri, numunedeki toplam nesne sayısından doğru sınıflandırılmış nesnelerin oranı olarak hesaplanır. Bu metrik, basitliği ve herhangi bir sayıda sınıfa genişletilebilmesi nedeniyle popülerdir. Bu metriğin ana dezavantajı, tüm belgelere aynı ağırlığı atamasıdır; bu, eğitim kümesindeki belgelerin bir veya daha fazla sınıfa yönelik güçlü bir şekilde yer değiştirmesi durumunda yanlış olabilir. Bu metrik yüksek bir değere sahip olabilir, ancak aynı sınıf içindeki sınıflandırıcı son derece düşük iş kalitesi gösterebilir. Aynı zamanda, metrik bunu hiçbir şekilde göstermez.

    Hassasiyet, eksiksizlik ve F-ölçü

    Kesinlik ve geri çağırma gibi metrikler, bilgi alma sorunlarını çözen sistemlerin performansını değerlendirmede ilk kez yaygın olarak kullanıldı. Bir sınıf içindeki sistemin doğruluğu, sistem tarafından bu sınıfa atanan tüm nesnelere göre, gerçekten belirli bir sınıfa ait olan nesnelerin oranıdır. Tamlık, bir sınıfa ait sınıflandırıcı tarafından bulunan nesnelerin bu sınıfın tüm nesnelerine oranı olarak ifade edilir. Tablo 4, TP'nin (gerçek pozitif) gerçek bir pozitif karar olduğu, TN'nin (gerçek negatif) gerçek bir negatif karar olduğu, FP'nin (yanlış pozitif) bir yanlış pozitif karar olduğu ve FN'nin (yanlış negatif) olduğu ayrı bir sınıfın beklenmedik durum tablosudur. ) yanlış bir karardır. -olumsuz karar.

    Tablo 1 - Bir nesne sınıfının olasılık tablosu

    Böylece, kesinlik ve tamlık şu şekilde hesaplanır:

    F-ölçü, değerlendirilen algoritmanın doğruluğu ve eksiksizliği hakkındaki bilgileri birleştirir. Doğruluk ve eksiksizlik göstergelerinin harmonik ortalaması olarak hesaplanır:

    F-ölçümünün her sınıf için ayrı ayrı hesaplanması nedeniyle, algoritmanın belirli hatalarını araştırmak ve analiz etmek, birkaç sınıflı bir sınıflandırmayı değerlendirmek için kullanmak uygundur. Ayrıca, çok sayıda sınıf olması durumunda, tüm sınıflar için tamlığı ve doğruluğu toplayacak ve sistemin genel davranışını karakterize edecek bir karakteristik gereklidir. Bu çalışmada, bu amaçla aşağıdaki toplu değerler kullanılmıştır: tüm sınıflar için doğruluğun aritmetik ortalaması olarak hesaplanan makro kesinlik, tüm sınıflar için tamlığın aritmetik ortalaması olarak hesaplanan makro geri çağırma, ve aralarındaki harmonik ortalama olan makro F-ölçümü (Makro F-skoru).

    Çapraz doğrulama

    Çapraz doğrulama, tam test yapmak ve çeşitli makine öğrenimi algoritmalarının performansını değerlendirmek için en yaygın yöntemlerden biridir. Bağımsız bir örnek için, bu yöntem, algoritmanın fazla takılmasından dolayı hata olasılığının önyargılı bir tahmini olabilen, eğitilmiş örnek üzerindeki ortalama hatanın aksine, hata olasılığının yansız bir tahminini elde etmeyi sağlar. Bu prosedürün bir başka avantajı, test için özel olarak tasarlanmış bir kontrol örneğinin yokluğunda bir algoritma hatası olasılığına ilişkin bir tahmin elde etme yeteneğidir.

    Bunun, üzerinde sonlu bir kullanım durumu örneğinin belirtildiği, sonlu bir sınıflar kümesi olan nesnelerin bir dizi özellik tanımları olduğunu varsayalım. Kullanım durumlarının keyfi seçimine bir algoritma atayan bir eşleme verilmiştir. Ardından, keyfi bir emsal örneği için algoritmanın kalitesi, kalite işlevi kullanılarak tahmin edilir:

    doğru sınıf etiketi ile algoritma hatasının değerini döndüren bazı negatif olmayan işlev nerede.

    Merhaba Habr!

    Makine öğrenimi görevlerinde, modellerin kalitesini değerlendirmek ve çeşitli algoritmaları karşılaştırmak için metrikler kullanılır ve bunların seçimi ve analizi, bir veri satıcısının işinin vazgeçilmez bir parçasıdır.

    Bu yazıda, sınıflandırma problemlerinde bazı kalite kriterlerine bakacağız, bir metrik seçerken nelerin önemli olduğunu ve nelerin yanlış gidebileceğini tartışacağız.

    Sınıflandırma problemlerinde metrikler

    Yararlı özellikleri göstermek için sklearn ve metriklerin görsel bir temsili olarak, veri setimizi kursun ilk makalesinde tanıştığımız bir telekom operatörünün müşteri kaybı üzerinde kullanacağız.

    Gerekli kütüphaneleri yükleyelim ve verilere bakalım

    Pandaları pd olarak içe aktarın matplotlib.pyplot'u matplotlib.pylab'dan plt olarak içe aktarın rc'yi içe aktarın, çizimi sklearn.preprocessing'den sns olarak alın sklearn.metrics'den hassas_recall_curve'u içe aktar, sklearn.model_selection'dan sınıflandırma_reportunu içe aktar train_test_split'i içe aktar df = pd.read_csv ("../../ data / telecom_churn.csv")

    Df.kafa (5)

    Veri ön işleme

    # İkili sütunların bir eşlemesini yapalım # ve durumu kukla kodlama ile kodlayalım (basitlik için bunu ahşap modeller için yapmamak daha iyidir) d = ("Evet": 1, "Hayır": 0) df ["Uluslararası plan "] = df [" Uluslararası plan "]. Harita (d) df [" Sesli posta planı "] = df [" Sesli posta planı "]. Harita (d) df [" Churn "] = df [" Churn "] Astype (" int64 " ) le = LabelEncoder () df ["State"] = le.fit_transform (df ["State"]) ohe = OneHotEncoder (sparse = False) encoding_state = ohe.fit_transform (df ["State"] .value.reshape (- 1, 1)) tmp = pd.DataFrame (encoding_state, column = ["state" + str (i) for i in range (encoding_state.shape)]) df = pd.concat (, axis = 1)

    Doğruluk, kesinlik ve hatırlama

    Metriklerin kendilerine geçmeden önce, bu metrikleri sınıflandırma hataları açısından tanımlamak için önemli bir kavramı tanıtmak gerekir - karışıklık matrisi(hata matrisi).
    İki sınıfımız ve her nesnenin sınıflardan birine ait olduğunu tahmin eden bir algoritmamız olduğunu varsayalım, o zaman sınıflandırma hatası matrisi şöyle görünecektir:

    Gerçek Pozitif (TP) Yanlış Pozitif (FP)
    Yanlış Negatif (FN) Gerçek Negatif (TN)

    bu, algoritmanın nesne üzerindeki yanıtıdır ve

    Bu nesnedeki gerçek sınıf etiketi.
    Bu nedenle, iki tür sınıflandırma hatası vardır: Yanlış Negatif (FN) ve Yanlış Pozitif (FP).

    Algoritma eğitimi ve hata matrisinin oluşturulması

    X = df.drop ("Churn", eksen = 1) y = df ["Churn"] # Örneği tren ve teste bölün, tüm metrikler test veri kümesinde değerlendirilecektir X_train, X_test, y_train, y_test = train_test_split ( X, y , stratify = y, test_size = 0.33, random_state = 42) # Yerel lojistik regresyonu eğitin lr = LogisticRegression (random_state = 42) lr.fit (X_train, y_train) # Sklearn'den hata matrisi oluşturmak için işlevi kullanın dokümantasyon def plot_confusion_matrix (cm, sınıflar , normalize = False, title = "(! LANG: Karışıklık matrisi)", 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="karışıklık matrisi") plt.savefig("conf_matrix.png") plt.show()!}

    Kesinlik

    Sezgisel, açık ve neredeyse kullanılmayan bir metrik doğruluktur - algoritmanın doğru cevaplarının yüzdesi:

    Bu metrik, eşit olmayan sınıflarla ilgili problemlerde işe yaramaz ve bir örnekle göstermek kolaydır.

    Bir spam posta filtresinin performansını değerlendirmek istediğimizi varsayalım. 90'ı sınıflandırıcımızın doğru tanımladığı (Doğru Negatif = 90, Yanlış Olumlu = 10) ve 5'i sınıflandırıcının da doğru tanımladığı 10 spam e-postamız (Doğru Olumlu = 5, Yanlış Negatif = 5) 100 istenmeyen e-posta olmayan e-postamız var. .
    Sonra doğruluk:

    Ancak, tüm e-postaların istenmeyen posta olmadığını tahmin edersek daha yüksek bir doğruluk elde ederiz:

    Aynı zamanda, başlangıçta spam iletilerini tanımlamak istediğimiz için modelimizin hiçbir tahmin gücü yoktur. Bunun üstesinden gelmek için, tüm sınıflar için ortak bir metrikten sınıfların kalitesinin ayrı göstergelerine geçiş bize yardımcı olacaktır.

    Hassasiyet, geri çağırma ve F-ölçümü

    Algoritmanın performansını sınıfların her birinde ayrı ayrı değerlendirmek için kesinlik ve geri çağırma metriklerini sunuyoruz.

    Kesinlik, sınıflandırıcı tarafından pozitif ve aynı zamanda gerçekten pozitif olarak adlandırılan nesnelerin oranı olarak yorumlanabilir ve geri çağırma, algoritmanın bulduğu pozitif bir sınıfın tüm nesnelerinden pozitif bir sınıfın nesnelerinin ne kadarını gösterir.

    Tüm nesneleri tek bir sınıfa yazmamıza izin vermeyen kesinlik girişidir, çünkü bu durumda Yanlış Pozitif düzeyinde bir artış elde ederiz. Geri çağırma, algoritmanın genel olarak belirli bir sınıfı algılama yeteneğini gösterir ve kesinlik, bu sınıfı diğer sınıflardan ayırt etme yeteneğini gösterir.

    Daha önce belirttiğimiz gibi, iki tür sınıflandırma hatası vardır: Yanlış Pozitif ve Yanlış Negatif. İstatistikte, ilk hata tipine Tip I hata, ikinci tip hata ise Tip II hata olarak adlandırılır. Abone kaybını belirleme sorunumuzda, birinci tür hata sadık bir abonenin giden abone olarak kabul edilmesi olacaktır, çünkü sıfır hipotezimiz abonelerin hiçbirinin dışarı akmadığıdır ve biz bu hipotezi reddediyoruz. Buna göre, ikinci türden bir hata, giden abonenin "atlanması" ve sıfır hipotezinin hatalı kabulü olacaktır.

    Kesinlik ve geri çağırma, doğruluğun aksine, sınıfların oranına bağlı değildir ve bu nedenle dengesiz numune koşullarında uygulanabilir.
    Genellikle gerçek uygulamada, görev bu iki metrik arasındaki (müşteri için) optimal dengeyi bulmaktır. Klasik bir örnek, müşteri kaybını belirleme sorunudur.
    Belli ki bulamıyoruz tümünden giden müşteriler ve sadece onlara. Ancak müşteriyi elde tutmak için strateji ve kaynağı belirledikten sonra, gerekli kesinlik ve geri çağırma eşiklerini seçebiliriz. Örneğin, çağrı merkezi kaynağımızla sınırlı olduğumuz için yalnızca yüksek getirili müşterileri veya rapor verme olasılığı daha yüksek olan müşterileri elde tutmaya odaklanabilirsiniz.

    Genellikle, bir algoritmanın hiperparametrelerini optimize ederken (örneğin, bir ızgara üzerinde yineleme durumunda IzgaraAramaCV), iyileştirilmesini test örneğinde görmeyi umduğumuz bir metrik kullanılır.
    Kesinliği ve geri çağırmayı toplu bir kalite ölçüsünde birleştirmenin birkaç farklı yolu vardır. F ölçüsü (genel olarak

    ) - harmonik ortalama kesinlik ve hatırlama:

    bu durumda, metrikteki doğruluğun ağırlığını belirler ve

    bu harmonik ortalamadır (2 çarpanıyla, böylece kesinlik = 1 ve hatırlama = 1 durumunda,

    )
    F ölçüsü, tamlık ve doğruluk bire eşit olduğunda maksimum değerine ulaşır ve bağımsız değişkenlerden biri sıfıra yakınsa sıfıra yakındır.
    Sklearn'in kullanışlı bir _metrics.classification işlevi vardır bildiri her sınıf için geri çağırma, kesinlik ve F-ölçüsünün yanı sıra her sınıfın örnek sayısı.

    Rapor = sınıflandırma_raporu (y_test, lr.predict (X_test), target_names = ["Churned", "Churned"]) yazdır (rapor)

    sınıf kesinlik hatırlamak f1-skoru destek
    olmayan 0.88 0.97 0.93 941
    çalkalanmış 0.60 0.25 0.35 159
    ort / toplam 0.84 0.87 0.84 1100

    Burada, gerçek uygulamada geçerli olan dengesiz sınıflarla ilgili problemlerde, sınıfların oranını eşitlemek için veri kümesinin yapay modifikasyon tekniklerine başvurmanın sıklıkla gerekli olduğu belirtilmelidir. Birçoğu var ve onlara dokunmayacağız, bazı yöntemlere bakabilir ve işinize uygun olanı seçebilirsiniz.

    AUC-ROC ve AUC-PR

    Algoritmanın gerçek cevabını (kural olarak, bir sınıfa ait olma olasılığı, ayrıca SVM'ye bakınız) ikili etikete dönüştürürken, 0'ın 1 olduğu bir eşik seçmeliyiz. 0,5'e eşit bir eşik doğal ve yakın görünüyor. , ancak örneğin yukarıda belirtilen sınıf dengesi eksikliğinde her zaman optimal olmadığı ortaya çıkıyor.

    Modeli belirli bir eşiğe bağlı kalmadan bir bütün olarak değerlendirmenin yollarından biri AUC-ROC (veya ROC AUC) - alan ( A rea sen alt C urve) hata eğrisinin altında ( r alıcı Ö perating C karakteristik eğri). Bu eğri, True Positive Rate (TPR) ve False Positive Rate (FPR) koordinatlarında (0,0) ile (1,1) arasında bir çizgidir:

    TPR'yi zaten biliyoruz, bu tamlıktır ve FPR, algoritmanın yanlış tahmin ettiği negatif sınıftaki nesnelerin ne kadarını gösterir. İdeal olarak, sınıflandırıcı hata yapmadığında (FPR = 0, TPR = 1), eğrinin altındaki alanı bire eşit alacağız, aksi halde sınıflandırıcı sınıf olasılıklarını rasgele çıktıladığında, AUC-ROC 0,5 olma eğiliminde olacaktır. sınıflandırıcı aynı miktarda TP ve FP verecektir.
    Grafikteki her nokta, belirli bir eşiğin seçimine karşılık gelir. Bu durumda eğrinin altındaki alan algoritmanın kalitesini gösterir (daha fazlası daha iyidir), ayrıca eğrinin dikliği de önemlidir - FPR'yi en aza indirerek TPR'yi en üst düzeye çıkarmak istiyoruz, bu da eğrimizin ideal olarak eğilmesi gerektiği anlamına gelir. (0,1) noktası.

    ROC eğrisi çizim kodu

    Sns.set (font_scale = 1.5) sns.set_color_codes ("sessiz") plt.figure (figsize = (10, 8)) fpr, tpr, eşikler = roc_curve (y_test, lr.predict_proba (X_test) [:, 1], pos_label = 1) lw = 2 plt.plot (fpr, tpr, lw = lw, label = "ROC eğrisi") plt.plot (,) plt.xlim () plt.ylim () plt.xlabel ("Yanlış Pozitif Oran" ") plt.ylabel (" True Positive Rate ") plt.title (" ROC eğrisi ") plt.savefig (" ROC.png ") plt.show ()

    AUC-ROC kriteri, dengesiz sınıflara karşı dirençlidir (spoiler: ne yazık ki, ancak her şey o kadar açık değildir) ve rastgele seçilen bir pozitif nesnenin sınıflandırıcı tarafından daha yüksek derecelendirilme olasılığı (daha yüksek olma olasılığı daha yüksek olacaktır) olarak yorumlanabilir. pozitif) rastgele seçilmiş bir negatif nesneden daha fazladır.

    Şu problemi ele alalım: 1 milyon belgeden 100 ilgili belgeyi seçmemiz gerekiyor. İki algoritmada ustalaştık:

    • algoritma 1 90'ı ilgili olmak üzere 100 belge döndürür. Böylece,
    • Algoritma 2 90'ı ilgili olan 2000 belgeyi döndürür. Böylece,

    Büyük olasılıkla, rakibine kıyasla çok az Yanlış Pozitif üreten ilk algoritmayı seçerdik. Ancak bu iki algoritma arasındaki Yanlış Pozitif Oran farkı son derece küçük - sadece 0,0019. Bunun nedeni, AUC-ROC'nin Gerçek Negatif'e göre Yanlış Pozitif oranını ölçmesidir ve ikinci (daha büyük) sınıfın bizim için çok önemli olmadığı problemlerde, algoritmaları karşılaştırırken tamamen yeterli bir resim vermeyebilir.

    Durumu düzeltmek için eksiksizliğe ve doğruluğa dönelim:

    • algoritma 1
    • Algoritma 2

    Burada, iki algoritma arasındaki önemli bir fark zaten göze çarpıyor - 0.855 doğruluk!

    Hassasiyet ve geri çağırma da eğriyi oluşturmak ve AUC-ROC gibi onun altındaki alanı bulmak için kullanılır.

    Burada, küçük veri kümelerinde, PR eğrisinin altındaki alanın, yamuk yöntemi kullanılarak hesaplandığından aşırı iyimser olabileceği, ancak genellikle bu tür görevlerde yeterli veri bulunduğu belirtilebilir. AUC-ROC ve AUC-PR arasındaki ilişki hakkında ayrıntılar için buraya bakın.

    Lojistik Kayıp

    Lojistik kayıp fonksiyonu şu şekilde tanımlanır:

    bu algoritmanın cevabı

    Ohm nesnesi,

    gerçek sınıf etiketi

    Ohm nesnesi ve

    örnek boyut.

    Lojistik kayıp fonksiyonunun matematiksel yorumuyla ilgili ayrıntılar, doğrusal modeller hakkındaki yazı çerçevesinde zaten yazılmıştır.
    Bu ölçüm nadiren iş gereksinimlerinde, ancak genellikle kaggle'daki görevlerde görünür.
    Sezgisel olarak, mantık hatasının en aza indirilmesi, yanlış tahminleri cezalandırarak doğruluğu en üst düzeye çıkarma görevi olarak düşünülebilir. Bununla birlikte, sınıflandırıcının yanlış cevaba olan güveni için logloss'un son derece güçlü bir şekilde cezalandırıldığına dikkat edilmelidir.

    Bir örnek düşünelim:

    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)) print ("Belirsiz sınıflandırma% f ile logos" "% logloss_crutch (1, 0,5)) >> Sınıflandırması belirsiz Logloss 0.693147 yazdır (" Güvenilir sınıflandırma ve doğru cevap% f "% logloss_crutch (1, 0.9)) >> Güvenilir sınıflandırma ve doğru yanıt ile Logloss 0.105361 yazdır (" Güvenilir sınıflandırma ve Yanlış cevap% f "% logloss_crutch (1, 0.1)) >> Güvenilir sınıflandırma ve Yanlış cevap ile Logloss 2.302585

    Yanlış bir cevap ve kendinden emin bir sınıflandırma ile mantık kelimesinin nasıl dramatik bir şekilde büyüdüğüne dikkat edin!
    Sonuç olarak, bir nesnedeki bir hata, genel numune hatasının önemli ölçüde bozulmasına neden olabilir. Bu tür nesneler genellikle aykırı değerlerdir ve filtrelenmeleri veya ayrı olarak değerlendirilmeleri gerektiği unutulmamalıdır.
    Bir mantık grafiği çizerseniz her şey yerine oturur:

    Algoritmanın temel gerçeği = 1 olan yanıtı sıfıra yaklaştıkça hata değerinin arttığı ve eğrinin daha dik büyüdüğü görülebilir.

    Özetliyor:

    • Çok sınıflı bir sınıflandırma durumunda, her bir sınıfın metriklerini dikkatlice izlemeniz ve kararın mantığını takip etmeniz gerekir. görevler metriği optimize etmek yerine
    • Eşit olmayan sınıflar durumunda, eğitim için bir sınıf dengesi ve sınıflandırmanın kalitesini doğru bir şekilde yansıtacak bir metrik seçmek gerekir.
    • Metrik seçimi, konu alanına odaklanarak, verileri önceden işleyerek ve muhtemelen bölümlere ayırarak (zengin ve fakir müşterilere bölünme durumunda olduğu gibi) yapılmalıdır.

    kullanışlı bağlantılar

    1. Evgeny Sokolov'un kursu: Model seçimi üzerine seminer (regresyon problemlerinin metrikleri hakkında bilgi var)
    2. A.G.'den AUC-ROC ile ilgili sorunlar Dyakonova
    3. Kaggle'daki diğer metrikler hakkında daha fazla bilgi edinebilirsiniz. Her metriğin açıklamasına, kullanıldığı yarışmaya bir bağlantı eklendi
    4. Bogdan Melnik namı diğer ld86 tarafından dengesiz numuneler üzerine eğitim hakkında sunum

    UDC 519.816

    S.V. SEMENIKHIN L.A. DENISOVA

    Omsk Devlet Teknik Üniversitesi

    RANGE MAKİNE ÖĞRENME YÖNTEMİ

    YRSO METRİK İÇİN DEĞİŞTİRİLMİŞ BİR GENETİK ALGORİTMAYA DAYALI

    Bilgi arama sonuçları sayfasındaki belgeleri sıralama sorunu ve sıralamanın makine öğrenimi sorunları ele alınmaktadır. Değiştirilmiş bir genetik algoritmaya dayalı NOCO kalite metriğini kullanarak sıralama fonksiyonunu optimize etmek için bir yaklaşım önerilmiştir. Geliştirilen algoritmaların (LETO ^ test koleksiyonlarında) araştırması yapıldı ve sıralamanın makine öğrenimi için etkinlikleri gösterildi.

    Anahtar kelimeler: bilgi alma, makine öğrenimi sıralaması, alaka düzeyi, optimizasyon, genetik algoritmalar.

    1. Giriş. Modern bilgi erişim sistemlerinde (ISS), sistem tarafından işletilen veri hacimleri o kadar büyüktür ki, temel görev, bir kullanıcının arama sorgusuna yanıt olarak ilgili belgeleri sıralamaktır. ISS'nin geliştirilmesinin bu aşamasında, makine öğrenimi (ML) sıralaması büyük ilgi görmektedir. Sayısal yöntemlere (özellikle gradyan yöntemlerine) veya analitik hesaplamalara dayanan ML'ye yönelik mevcut yaklaşımların, bilgi erişim kalitesini ve ilgili belgeleri sıralamak için gereken süreyi önemli ölçüde etkileyen bir dizi dezavantajı vardır.

    Araştırmanın başında, çoğu gradyan iniş yöntemini kullanan makine öğrenimi sıralamasına yönelik liste yaklaşımları dikkate alındı. İncelenen çalışmalarda ML, arama kalitesi metriklerinin (SEQ) optimizasyonuna indirgenir, ancak yalnızca sürekli işlevlerle temsil edilen metrikler kullanılır. Bu sınırlama genellikle, optimizasyonun bir sonucu olarak, sıralama fonksiyonunun ayrık fonksiyonlar olan birçok önemli kabul edilen gösterge (DCG, nDCG, Graded Mean Reciprocal Rank, vb.) için daha düşük puanlara sahip olmasına yol açar. Makale, referans değerleri olarak ilgili uzman değerlendirmelerini kullanarak Huber'in kayıp fonksiyonunu en aza indirmek için sıralama öğretiminde genetik algoritmaların (GA) kullanımını önermektedir. Bilgi alma kalitesinin ayrık ölçümlerinin optimizasyonuna dayalı bir makine öğrenimi yaklaşımı da önerildi.

    2. Makine öğrenimi sıralaması sorununun ifadesi. Çoğu modern bilgi erişim sisteminde, sıralama işlevi n basit sıralama işlevi (PRF) temelinde oluşturulur ve şu şekilde yazılabilir:

    burada SRF¡, d belgesi ve q sorgusu için ¡'inci basit sıralama fonksiyonudur, WCi ¡'inci basit sıralama fonksiyonunun ağırlık katsayısıdır, n, sıralama sistemindeki PRF'lerin sayısıdır.

    Sıralama için makine öğrenimi sırasında, bir dizi arama belgesi B ve LBTOY test koleksiyonundan O sorguları kullanıldı. Tüm deO istekleri için, her bir deD belgesi ile bir çift oluşturulur. Bu tür her bir çift için IRS, arama sonuçlarını sıralamak için kullanılan alaka düzeylerini belirler. Sıralamanın kalitesini değerlendirmek için sistem, her bir belge-sorgu çifti ^, e) için referans uygunluk değerleri E gerektirir. Bu amaçlar için, ilgili uzman değerlendirmeleri kullanılır.

    Çalışmayı gerçekleştirmek için, sıralamanın bir vektör optimallik kriteri oluşturan N = 5 basit sıralama fonksiyonu SRFi (WC) l г = 1, N bazında yapıldığı bir ISS kullanıldı:

    burada WCе (WC) değişken parametrelerin vektörüdür; (ШС), (ЯБ) sırasıyla parametre ve vektör kriterlerinin uzaylarıdır.

    ML sıralaması için genetik algoritmaların uygulanması, nDCG gibi ayrık kalite ölçümlerini en üst düzeye çıkarmayı mümkün kılar. Arama motorunda belgeleri sıralamak için nDCG metriği şu ifadeye göre belirlenir:

    DCG @ n = X 2 ---

    RF (q, d) = X WC. ■ SRF., I = 1 1 1

    (p) notu, sonuçlar listesinde p konumunda yer alan belgeye uzmanlar tarafından verilen ortalama alaka düzeyi puanıdır; 1 / log2 (2 + p) - belgenin konumuna bağlı olarak katsayı (ilk belgelerin ağırlığı daha fazladır).

    Daha sonra NDCG'nin normalleştirilmiş versiyonu şu şekilde yazılacaktır:

    N000 @ n = RSD @ n / g,

    burada r, mümkün olan maksimum 0С değerine eşit olan normalleştirme faktörüdür. [e-posta korumalı] n belirli bir sorgu için (yani ideal sıralamanın OOO'sine eşittir).

    Böylece, ÖSS metriğini optimize etmek (maksimize etmek) için amaç fonksiyonu (YM) aşağıdaki biçimde yazılacaktır.

    3. Arama sonuçlarının sıralamasının kalite metrikleri. Belgeleri arama sonuçlarında sıralarken, kalite ölçütleri ölçüt görevi görür. ISS'nin kalitesini değerlendirmek için genel kabul görmüş metrikler listesinden, bilgi alımının doğruluğunu, uygunluğunu ve eksiksizliğini değerlendiren üç ana metrik seçildi.

    1. Bilgi alımının doğruluğu için kriter

    a, bulunan ilgili belgelerin sayısı olduğunda, b, yanlışlıkla ilgili olduğu düşünülen belgelerin sayısıdır.

    2. Bilgi alımının uygunluğunu değerlendiren Bpref kriteri, R ile ilgili belgelere sahip bir işi işlemek için kullanılır ve formülle hesaplanır.

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

    Burada, r, bilinen bir ilgili belgeyi ve NonRelBefore (r) - r'den daha yüksek derecelendirilen bilinen alakasız belgelerin sayısı (hesaplamada çalıştırmadan tahmini alakasız belgelerin yalnızca ilk R'si dikkate alınır).

    3. Arama sonuçlarının eksiksizlik kriteri

    r = a / (a ​​​​+ c),

    a, bulunan ilgili belgelerin sayısı ise, c, bulunamayan ilgili belgelerin sayısıdır.

    4. Test koleksiyonları. Bir makine öğrenimi probleminde, sıralama, uzmanlar tarafından belirlenen ilgili uygunluk puanlarına sahip bir dizi belge ve sorgu gerektirir. Bu veriler, kalite değerlendirmesinin yanı sıra sıralama işlevinin makine öğrenimi için kullanılır.

    sistem tarafından arama sonuçlarının sıralaması. ML sürecinde test koleksiyonları bir eğitim seti olarak kullanılır ve bu nedenle sonuçlar üzerinde önemli bir etkiye sahiptir. Araştırma için belge ve isteklerden oluşan bir test koleksiyonu LETOR kullanıldı. Bu koleksiyon, Microsoft Research tarafından bilgi alma araştırması için kullanılır. Tablo 1, LETOR test koleksiyonlarının özelliklerini gösterir.

    5. Değiştirilmiş genetik algoritma. Makine öğrenimi sıralamasında genetik algoritmaları kullanmak için, problem, her genin bir bit, sayı veya başka bir nesne olabileceği bir vektör (genotip) olarak kodlanacak şekilde formüle edilmelidir. Bu durumda, genotip, karşılık gelen sıralama faktörleri için bir ağırlıklandırma faktörleri vektörü ile temsil edilir. Genetik algoritmanın yürütülmesini durdurmanın koşulu, optimal çözümün bulunması, nesillerin sayısının veya evrim için ayrılan zamanın tükenmesidir.

    GA'ların küresel ekstremum bölgesini aramada en etkili olduğu, ancak bu bölgede yerel bir minimum bulmak gerektiğinde yavaş çalışabilecekleri belirtilmelidir. Bu dezavantajdan kaçınmanın önerilen yolu, temel GA'yı kullanarak global optimum bölgeyi bulduktan sonra yerel (yüksek hızlı) bir optimizasyon algoritmasına geçecek olan değiştirilmiş bir genetik algoritma (MGA) oluşturmaktır. Önerilen MGA, klasik GA ve Nelder - Mead yöntemine (simpleks algoritma) dayalı hibrit bir yöntemdir. Sık kullanılan bir doğrusal olmayan optimizasyon algoritması olan Nelder - Mead yöntemi, çok boyutlu bir uzayda bir amaç fonksiyonunun minimumunu bulmak için sayısal bir yöntemdir. Bu çalışmada önerilen hibrit MGA algoritması, GA'yı durdurma koşulları sağlandıktan sonra Nelder - Mead yöntemine geçer. MGA algoritmasının blok diyagramı Şekil 1'de gösterilmektedir. bir.

    Araştırma yapılırken, global ekstremum bölgesi aranırken amaç fonksiyonunun hesaplama sayısı (Nrf = 16.000) üzerinde bir sınırlama ve Nelder - Mead yöntemine dayalı bir yerel optimizasyon algoritmasına geçiş koşulu (Nrf = 16.000) kabul edilmiştir. temel genetik algoritma, Nrf işlemlerinin %75'ini gerçekleştirmiştir).

    6. Sonuçlar. Makine öğrenmesi algoritması kullanılarak yapılan araştırma sonucunda

    tablo 1

    Test koleksiyonlarındaki belge ve sorgu sayısı

    Test koleksiyonu adı Alt sistem adı İstek sayısı Belge sayısı

    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

    Pirinç. 1. Genetik algoritmalara ve Nelder-Mead yöntemine dayalı hibrit MVL algoritmasının blok şeması

    LTR-MGA'yı sıralamak için, sıralama işlevi için WC * ağırlıklarının bir vektörü elde edilir. Ayrıca, LETOYA test koleksiyonundan elde edilen verilere dayanarak, kalite metriklerinin hesaplandığı sıralama kalitesi değerlendirildi. Sıralama kalitesinin ayrı metriği [e-posta korumalı] sistem yanıtının ilk n belgesinin kalitesini değerlendirir. Sıralamanın kalitesini değerlendirmek için genel kabul görmüş ölçütler şunlardır: [e-posta korumalı], [e-posta korumalı] ve [e-posta korumalı] Ancak, değerlere bağlı olarak metrikteki değişikliklerin daha ayrıntılı bir değerlendirmesi için [e-posta korumalı] 1'den 10'a kadar tüm n için. Geliştirilen algoritmanın verimliliğini mevcut çözümlerle karşılaştırmak için LETOIA 3.0 koleksiyonlarında sağlanan sıralama algoritmaları kullanılarak karşılaştırmalı bir analiz yapıldı. NDCG metriği için TB2003 ve TB2004 test koleksiyonları için algoritmaların çalıştırılmasının sonuçları Şekil 2'de gösterilmektedir. 2. Sonuçlar, LTR-MGA algoritmasının, en yüksek değerler olmak üzere test algoritmalarından daha iyi performans gösterdiğini göstermektedir.

    için [e-posta korumalı](ilk belge düzeyinde). LTR-MGA algoritmasının üstünlüğü, deneylerde dikkate alınan test sıralama fonksiyonlarının aksine, sıralama fonksiyonunu optimize etmek için önerilen yaklaşımda amaç fonksiyonu olarak kullanılan NDCG metriği olmasından kaynaklanmaktadır.

    Önerilen LTR-MGA algoritmasını kullanırken sıralama kalitesini değerlendirmek için, arama sonuçlarında belgeleri sıralamak için kalite metriklerinin değerleri hesaplandı (Şekil 3). Temel sıralama işlevi, temel LTR-GA algoritması ve değiştirilmiş LTR-MGA algoritması kullanılarak sıralama sonuçlarının karşılaştırılması (Tablo 2), ikincisinin avantajını gösterir.

    Ek olarak, çalışma MO sıralaması için gereken süreyi tahmin etti. Bu, önerilen LTR-MGA yönteminin bu göstergede geleneksel kullanımına dayalı yaklaşımdan üstün olduğunu doğrulamak için gereklidir.

    Pirinç. 2. Sıralama için makine öğrenimi algoritmalarının karşılaştırılması

    test koleksiyonları için NDCG metriğine göre: solda - Gov03td veri kümesi, sağda - Gov04td veri kümesi

    Pirinç. 3. Temel sıralama formülü ve öğrenme algoritmaları LTR-GA ve LTR-MGA için sıralama kalitesi metriklerinin değerlendirilmesi

    Farklı sıralama makine öğrenimi algoritmaları için sıralama kalitesi metrikleri

    Tablo 2

    Sıralama kalitesi metriği Temel sıralama işlevi LTR-GA LTR-MGA Metrik değerini artırma,%

    Doğruluk 0,201 0,251 0,267 26,81

    [e-posta korumalı](ilk 5 belge) 0,149 0,31 0,339 90,47

    [e-posta korumalı](ilk 10 belge) 0,265 0,342 0,362 29,14

    Bpref 0.303 0.316 0.446 51.49

    Tamlık 0,524 0,542 0,732 39,03

    * Karşılık gelen metrik için en iyi değerler gri renkle vurgulanmıştır

    onnogo genetik algoritma (LTA-OL). LТЯ-ОЛ ve ЛТЯ-МОЛ algoritmalarının yürütülmesi için harcanan süreyi karşılaştırmanın sonuçları tabloda gösterilmiştir. 3.

    7. Karar. Böylece yapılan çalışmalar, önerilen yaklaşımı kullanırken, ISS'de dikkate alınan sıralama metriklerinin değerlerinin arttığını göstermiştir (LTS-OL algoritmasına kıyasla ortalama olarak% 19,55). Bu, LITA-MOL'un doğru çalıştığını ve sıralama işlevini önemli ölçüde iyileştirdiğini doğrular, başka bir deyişle optimizasyon problemini başarıyla çözer. Değiştirilmiş bir algoritma kullanma

    Yerel optimizasyon yönteminin uygulanması ve amaç fonksiyonunun hesaplama sayısına getirilen kısıtlamalar nedeniyle, makine öğrenimi süresi azaldı (geleneksel genetik algoritma LTIAOL kullanımına kıyasla ortalama olarak %17,71).

    LТY-MOL sıralaması için geliştirilmiş makine öğrenme algoritması, basit sıralama fonksiyonlarının bir kombinasyonuna dayalı bir sıralama modeli kullanan ISS'de kullanılabilir. Ancak, önerilen yaklaşımın uygulanmasına ilişkin bazı sınırlamalar dikkate alınmalıdır. Temelli

    Eğitim örneğinin boyutuna bağlı olarak makine öğrenimi sıralamasının yürütme süresinin tahmin edilmesi

    Tablo 3

    Metin belgesi koleksiyonunun boyutu

    LTR-GA yürütme süresi

    LTR-MGA Çalışma Zamanı

    Yürütme süresinin azaltılması,%

    Ortalama değer

    * Karşılık gelen test koleksiyonu boyutu için en iyi değerler gri renkle vurgulanmıştır

    Elde edilen sonuçlardan MO'dan sonra en yüksek artışın değeri amaç fonksiyonu olarak alınan sıralama kalite metriğinde gözlendiği ortaya çıkmıştır. Aynı zamanda, diğer metriklerde önemli bir gelişme olmayabilir ve bazı durumlarda değerlerini daha da kötüleştirebilir. Bu eksikliği gidermeye yönelik olası yaklaşımlardan biri olarak, optimizasyon probleminin çok kriterli bir problem olarak çözülmesi önerilmiştir: bir tanesini optimize etmek yerine, arama sonuçlarının birkaç ana sıralama metriğini tekdüze bir şekilde iyileştirmek. Ek olarak, daha sonraki çalışmalarda, bilgi erişim sürecini iyileştirmek için ana sıralama kalite ölçütlerinin doğrusal bir evrişimine dayalı bir amaç fonksiyonu oluşturmak için bir metodoloji geliştirilmesi planlanmaktadır.

    bibliyografik liste

    1. Tie-Yan Liu. Bilgi Erişimi için Sıralamayı Öğrenme // Bilgi Erişiminde Dergi Temelleri ve Eğilimler. Cilt 3, sayı 3. Mart 2009. S. 225-331.

    2. Christopher J.C. Burges, Tal Shaked, Erin Renshaw. Gradient Descent Kullanarak Sıralamayı Öğrenme // Proceeding ICML "05 Makine öğrenimi üzerine 22. uluslararası konferansın bildirileri. 2005. S. 89-96.

    3. Semenikhin, S. V. Genetik algoritmalara dayalı bir arama sistemi ile belgeleri sıralamak için makine öğrenimi yaklaşımlarının araştırılması / S. V. Semenikhin // Genç Rusya: endüstride ileri teknolojiler. - 2013. - No. 2. - S. 82 - 85.

    4. Kontrol sistemlerinin sentezinde genetik algoritmalara dayalı çok kriterli optimizasyon: monograf. / L.A. Denisova. - Omsk: OmSTU yayınevi, 2014 .-- 170 s. - ISBN 978-5-8149-1822-2.

    5. Denisova, L. A. Genetik bir algoritma kullanarak kontrol sisteminin parametrik sentezinin otomasyonu / L. A. Denisova, V. A. Meshcheryakov // Endüstride otomasyon. - 2012. - No. 7. - S. 34 - 38.

    6. Huber, Peter J. Bir Konum Parametresinin Sağlam Tahmini // İstatistik Annals. - 1964. - No. 53. - S. 73-101.

    7. Semenikhin, S. V. Çok kriterli optimizasyon ve genetik algoritmalara dayalı bilgi alma otomasyonu / S. V. Semenikhin, L. A. Denisova // Sistem, mekanizma ve makinelerin dinamiği. - 2014. - No. 3. - S. 224 - 227.

    8. Tie-Yan Liu, Jun Xu, Tao Qin, Wenying Xiong ve Hang Li. LETOR: Bilgi Erişimi için Sıralamayı Öğrenme Araştırması için Karşılaştırma Veri Kümesi // SIGIR 2007 Bilgi Erişimi için Sıralamayı Öğrenme Çalıştayı. - 2007 .-- S. 3-10.

    9. Ageev, MS Official metrics of RMIP "2004 / MS Ageev, IE Kuralenok // II Rus bilgi alma yöntemlerinin değerlendirilmesi semineri (ROMIP 2004), Pushchino, 2004: tr.; Ed. S. Nekrest'yanova. - Petersburg: Kimya Araştırma Enstitüsü, St. Petersburg Devlet Üniversitesi - S. 142-150.

    10. J. A. Nelder, R. Mead, Fonksiyon minimizasyonu için bir tek yönlü yöntem, The Computer Journal 7 (1965). 308-313.

    Svyatoslav Vitalievich SEMENIKHIN, Otomatik Bilgi İşleme ve Kontrol Sistemleri Bölümü yüksek lisans öğrencisi. Yazışma adresi: [e-posta korumalı] DENISOVA Lyudmila Albertovna, Teknik Bilimler Doktoru, Otomatik Bilgi İşleme ve Kontrol Sistemleri Bölümü Doçenti. Yazışma adresi: [e-posta korumalı]