Menü
ücretsiz
Kayıt
ev  /  ÜZERİNDE/ Modern bilim ve eğitim sorunları. Sınıflandırma Problemlerinde Metrikler Makine Öğrenimi Çerçevesi

Bilim ve eğitimin modern sorunları. Sınıflandırma Problemlerinde Metrikler Makine Öğrenimi Çerçevesi

1

Son yıllarda, görüntünün yeniden yapılandırılmasına çok dikkat edilmiştir; bu nedenle, kalite değerlendirmesi, çeşitli görüntü restorasyon yöntemlerini karşılaştırmak için önemli bir görevdir. Çoğu durumda, yeniden oluşturma teknikleri, bozulmuş piksel değerlerine sahip geniş alanları yeniden oluştururken doku ve yapının bulanıklaşmasına neden olur. Şu anda restorasyon sonuçlarının objektif bir nicel değerlendirmesi yoktur ve bu nedenle birçok yaklaşımda uzman değerlendirmesi kullanılmaktadır. Bu makale, görüntülerin yerel alanlarının bazı parametrik dağılımlar biçiminde tanımlayıcılarla temsil edilebileceği gerçeğinde yatan, bir insan görme modeli kullanarak makine öğrenimine dayalı görüntü restorasyonunun kalitesini değerlendirmeye yönelik yeni bir yaklaşımı tartışıyor. Ayrıca, regresyon destek vektör makinesi, yeniden oluşturulmuş görüntülerin algılanan kalitesini uzman görüşüne göre tahmin etmeyi mümkün kılar. Makale, yukarıdaki yaklaşım kullanılarak elde edilen kalite puanının öznel kalite puanı ile ilişkili olduğunu göstermektedir.

makine öğrenme

görsel kalite

yeniden yapılanma

görüntü işleme

1. Gastaldo P. Objektif görsel kalite değerlendirmesi için makine öğrenimi çözümleri / Tüketici elektroniği için video işleme ve kalite ölçümleri konulu 6. uluslararası çalıştay, VPQM. - Cilt 12. - 2012.

2. Bertalmio M., Bertozzi A., Sapiro G. Navier-Stokes, Fluid dynamics, and image and video inpainting/ Hawaii: Proc. IEEE Bilgisayarla Görü ve Örüntü Tanıma (CVPR). - 2001.-PP. 213–226.

3. Criminisi A., Perez P., Toyama K. Sampler-based image inpainting ile bölge doldurma ve nesne çıkarma / IEEE Trans. görüntü işleme. - 13(9) . - 2004. - PP. 28–34.

4. Vijay M., Cheung, S.S. Göz izleme tabanlı algısal görüntü iç boyama kalite analizi/Görüntü İşleme (ICIP), 17. IEEE Uluslararası IEEE Konferansı. - 2010. - PP. 1109 - 1112.

5. Ardis P.A., Singhal A. Görüntü iç boyama / SPIE Elektronik Görüntüleme için görsel belirginlik ölçümleri. Uluslararası Optik ve Fotonik Derneği. - 2009.

6. Cheung S.S., Zhao J., Venkatesh V. Efficient object-based video inpainting / Image Processing, 2006 IEEE International Conference on. - 2006. - PP. 705-708.

7. Peretyagin G.I. Görüntülerin Gauss rasgele alanları / Otometri ile temsili. - 6. - 1984. - S. 42 - 48.

8. Frantc V.A., Voroni V.V., Marchuk V.I., Sherstobitov A.I., Agaian S., Egiazarian K. Objektif boyama kalite değerlendirmesi için makine öğrenimi yaklaşımı/ Proc. SPIE 9120, Mobil Multimedya/Görüntü İşleme, Güvenlik ve Uygulamalar. – cilt 91200S. – 2014.

9. Paul A., Singhal A. ve. Brown C. Boyama kalitesi değerlendirmesi / Journal of Electronic Imaging. – cilt 19. - 2010. - S. 011002-011002.

Nesnel bir görüntü kalitesi metriği, görüntü işleme sistemlerinin önemli bir parçasıdır. Objektif görüntü kalitesi değerlendirme ölçütlerinin önemli bir uygulaması, görüntü işleme algoritmalarının ve sistemlerinin performansını değerlendirmektir. Bu konudaki çok sayıda yayına rağmen, yeniden oluşturulmuş görüntülerin kalitesini değerlendirme sorunu yalnızca birkaçında ele alınmaktadır. Aynı zamanda, son zamanlarda, kaybolan görüntü alanlarını geri yükleme sorunu büyük ilgi görmüştür.

Görüntü kalitesini değerlendirmeye yönelik iki yaklaşım vardır: matematiksel yöntemleri kullanan nicel değerlendirme (kök ortalama kare hatası, Lp-norm, insan görsel sistemi tarafından görüntü algısının özelliklerini hesaba katan ölçümler) ve uzman değerlendirmelerine dayalı öznel değerlendirme.

Mevcut yaklaşımlar kullanılarak elde edilen kalite değerlendirmesi, insan uzmanların yardımıyla elde edilen değerlendirmeden önemli ölçüde farklı olabilir. Kalite değerlendirmesi için mevcut yaklaşımların çoğu bir referans görüntü kullanır. Ancak ne yazık ki birçok durumda referans görsel mevcut değildir. Bu görevler, kayıp pikselleri yeniden oluşturma problemini içerir. Bu nedenle, yeniden oluşturulmuş görüntülerin kalitesini değerlendirmek için nicel bir ölçüm geliştirme görevi önemlidir.

Görüntü kalitesinin nicel değerlendirmelerinin geliştirilmesinde önemli ilerleme kaydedilmiştir. Ancak getirilen kriterler yeterince mükemmel değil. Kabul edilebilir görüntü kalitesi tahminleri bulma girişimlerinin çoğu özel durumlarla ilgilidir. Bazı fizyolojik ön koşullara dayalı olarak belirli bir değerlendirme önerilir ve daha sıklıkla sadece analiz ve hesaplamalar için uygundur ve ardından özellikleri değerlendirilir. Daha iyi görüntü kalitesi değerlendirmeleri oluşturmak, insan görsel sisteminin özelliklerinin daha derinlemesine incelenmesiyle ilişkilidir.

Bu çalışmanın amacı makine öğrenimine dayalı yeniden oluşturma yöntemleriyle işleme sırasında görüntülerin kalitesini değerlendirmek için bir ölçütün geliştirilmesidir.

Matematiksel model

Makale, eserde benimsenen notasyona benzer notasyon kullanır. Görüntünün tamamı birbiriyle örtüşmeyen iki bölgeden oluşur: yeniden oluşturulmuş bölge ve bilinen bölge. Şekil 1, bu alanların konumunun bir örneğini göstermektedir.

Şekil 1. Görüntü modeli

Görüntü ve içindeki Ω bölgesi bilinmektedir. Yeniden oluşturma görevi, bölgenin Ω içindeki görüntünün piksel değerlerini değiştirmektir, böylece bölge çevreleyen görüntünün arka planında öne çıkmaz. Yeniden oluşturmanın amacı, görüntünün zarar görmüş kısımlarını onarmak (eski fotoğraflardaki çizikler ve çatlaklar gibi) veya görüntüdeki istenmeyen nesneleri kaldırmak olabilir. Şekil 1'de gösterilen Ω bölgesi her zaman kullanıcı tanımlıdır, örn. Ω alanının tanımı, yeniden yapılandırma probleminin bir parçası değildir.

Görüntü restorasyonunun kalitesini değerlendirmek için algoritma

Genel olarak, makine öğrenimine dayalı bir görüntü kalitesi metriğini başarılı bir şekilde oluşturmak için aşağıdaki üç görev gereklidir:

1. Girdi sinyallerinin tanımı olarak hizmet eden özelliklerin uzayının belirlenmesi.

2. Özellikler alanından kalite değerlendirmeleri alanına eşleme işlevinin seçimi.

3. Sistemi eğitin ve kararlılığını kontrol edin (yeniden eğitim için kontrol, vb.).

Seçilen yaklaşımın blok diyagramı Şekil 2'de gösterilmektedir ve aşağıdaki adımları içermektedir:

1. Bir ilgi alanı seçmek (bir dikkat haritası kullanarak);

2. Görüntünün alt düzey özelliklerinin hesaplanması;

3. Alt düzey özelliklere dayalı olarak restore edilmiş alanın bir tanımlayıcısının oluşturulması;

4. Elde edilen tanımlayıcı vektöre dayalı olarak kalitenin sayısal bir tahminini elde etmek için regresyon problemini çözme.

Pirinç. 2. Algoritmanın blok diyagramı

Makale, görsel dikkatin insanın görsel algısında önemli bir rol oynadığını göstermektedir. Herhangi bir anda insan gözü, sahnenin yalnızca küçük bir bölümünü net bir şekilde görürken, sahnenin çok daha geniş bir alanı "bulanık" olarak algılanır. Bu "belirsiz bilgi", sahnenin farklı alanlarının önemini değerlendirmek ve görsel alanın önemli alanlarına dikkat çekmek için yeterlidir. Çoğu yöntem, bir dikkat haritası - her pikselin değerinin karşılık gelen alanın önemi ile ilişkilendirildiği iki boyutlu bir görüntü - elde etmenizi sağlar.

Dikkat haritalarını elde etmek için, içinde açıklanan Belirginlik Araç Kutusu kullanılır. Bu araç seti, insan görsel sisteminin bir modelini kullanır. Genel içerik önemli ölçüde değişebileceğinden, orijinal ve geri yüklenen görüntüdeki geri yüklenen alanı karşılaştırmanın hiçbir anlamı olmadığına dikkat etmek önemlidir. İlgi alanlarını seçmek için aşağıdaki ifadenin kullanılması önerilir:

.

Burada, yeniden oluşturulan görüntü için dikkat haritası ve piksele karşılık gelen dikkat haritasının değeridir. Yukarıdaki ifadede, yeniden oluşturulmuş görüntü alanının içindeki ve dışındaki bakış yoğunluğu hesaplanır. Değer, görüntünün hangi bölümlerinin değerlendirmede kullanılıp hangilerinin kullanılmayacağına karar vermede eşik değer olarak kullanılır. Sadece alanlar için .

Spektral gösterimler, yerel alanların düşük seviyeli özellikleri olarak kullanılır. Daha sonra, verimlilik vektörünü kullanarak aşağıdaki Fourier, Walsh, Haar bazlarının bir analizini öneriyoruz. Girişim ve bozulma varlığında sistem verimliliği kriterinin bileşenlerinin doğru hesaplanması için istatistiksel ortalama gereklidir.

Sinyal işleme algoritmalarının ve sistemlerinin sentezinde, girişim ve sinyal istatistiklerinin dikkate alınmasına izin veren minimum ortalama risk kriteri sıklıkla kullanılır. Frekans dönüşümlerini uygularken ve hesaplama maliyetlerini tahmin ederken, spektral ayrıştırma temelinin seçimi esastır. Sinyal ayrıştırma temeli seçimini optimize etmek için minimum ortalama risk kriterinin kullanılması tavsiye edilir. Bunun için kullanılan sinyallerin ve süreçlerin sınıfının verilmesi ve olasılıksal özelliklerinin bilinmesi gerekmektedir.

Belirli bir iki boyutlu süreçler sınıfı için, alt sınıfların her birinin olasılığının bilindiği varsayılır; burada indeks, bazı ortak özelliklere sahip alt sınıf sayısıdır ve i'nci alt sınıfın işlem uygulama numarasıdır. Belirli bir temel sistem setini karşılaştıracağız Genel formda i'inci temel sistem açısından genelleştirilmiş bir Fourier serisine genişleme şu şekildedir: .

Fourier serisinin sonlu sayıda üyesiyle, bir hata ile karakterize edilebilir: bazı metriklerdeki mesafe, Fourier serisinin üyelerinin kısmi toplamıdır.

Fourier serisinin katsayılarının donanımsal olarak belirlenmesi veya bunların hesaplanması, belirli hesaplama maliyetleriyle ilişkilidir. Hem Fourier serisinin kesme hatasıyla ilişkili kayıpları hem de donanım ve bilgi işlem kaynaklarının maliyetlerini hesaba katan bir kayıp fonksiyonu sunuyoruz:

.

Koşullu risk değeri hem sinyal alt sınıfına hem de temele bağlıdır ve uygulamalar üzerinden kayıp fonksiyonunun ortalaması alınarak hesaplanır:

analiz edilen sinyallerin ve gürültünün olasılık yoğunluğu nerede; ve köşeli parantezler, istatistiksel ortalama alma işlemini gösterir.

Ortalama risk, sinyal alt sınıfları üzerinden koşullu riskin ortalaması alınarak belirlenir:

,

sinyallerin inci alt sınıfının olasılığı nerede.

Minimum ortalama risk kriterine göre, bazlardan ortalama riskin minimum olduğu baz seçilir.

Görüntü işleme kalitesine ilişkin sistem kriterinin etkinliğini değerlendirmek için, verilen korelasyon fonksiyonlarıyla Gauss alanlarının modellenmesine dayalı olarak elde edilen dokular biçimindeki test görüntülerini dikkate alıyoruz. Homojen normal rasgele alanların yanı sıra durağan normal rasgele süreçlerin oluşturulması, en basit şekilde şekillendirme filtresi yöntemiyle yapılır.

Örnek olarak makale, trigonometrik fonksiyonlar (Fourier), Walsh ve Haar bazında rastgele gerçekleşmelerin farklı korelasyon fonksiyonları ile temsilini ele almaktadır. 256 x 256 piksel boyutunda oluşturulan görüntü modelleri için seçilen bazlarda analiz yapalım. Ayrıca kendimize üç tür alt sınıf olasılık dağılımı belirledik: 1) tekdüze: ; 2) azalan: ;
3) artan: . Maliyet fonksiyonunu şu şekilde seçiyoruz: .

Ortalama risk, sinyal alt sınıflarının kabul edilen a priori olasılıkları kullanılarak sinyal alt sınıfları üzerindeki koşullu riskin ortalaması alınarak belirlenir, hesaplanan değerler Tablo 1'de sunulur.

tablo 1

Ortalama risk değerleri

Olasılık dağılımı türleri

Tabloda sunulan hesaplama sonuçları, iki boyutlu sinyallerin kabul edilen modelleri ve bunların olasılık dağılımları için, Haar bazının en düşük ortalama riske sahip olduğunu ve Fourier bazının en yüksek ortalama riske sahip olduğunu göstermektedir.

Yapılan analize dayanarak, görüntülerin yerel alanlarını temsil etmek için Haar bazını seçiyoruz. Yeniden oluşturulan alanın boyutunun farklı görüntüler için farklı olduğu unutulmamalıdır. Bu bağlamda, alt düzey özniteliklere dayalı olarak, sabit bir boyutun üst düzey temsili oluşturulmalıdır. "Kelime torbası" yaklaşımı, üst düzey bir temsil olarak kullanılır. Yeniden yapılandırılmış alanın bir tanımlayıcısını (imzasını) oluşturma prosedürü iki adımdan oluşur. İlk adım bir sözlük oluşturmaktır. Bunun için eğitim görüntü setinin tüm görüntülerinden çıkarılan alt düzey öznitelikler kullanılır. Bir sözlük oluşturmak için, çıkarılan öznitelikler k-means kümeleme algoritması kullanılarak 100 sınıfa bölünür. Sözlüğün her öğesi, kümeleme prosedürü tarafından bulunan sınıflardan biri için bir merkezdir. Sözlükteki her sözcük, 8x8 görüntü bloğundaki bir Haar dönüşümünü temsil eder. Ortaya çıkan sözlük, ikinci aşamada, sözlükteki kelimeler için bir özellik vektörü - yeniden yapılandırılmış alanın bir tanımlayıcısı (Şekil 3) olarak frekans histogramları oluşturulurken kullanılır. Ortaya çıkan tanımlayıcı seti, regresyon makinesini eğitmek için kullanılır (Destek Vektörü Regresyonu). Kelime frekanslarının bir histogramını elde etmek için, belirli bir görüntünün görsel olarak fark edilebilen tüm alanları (görünürlük, dikkat haritaları kullanılarak belirlenir) sözlükten çıkarılır. Daha sonra çıkarılan blokların her birine bir Haar dönüşümü uygulanır ve ortaya çıkan sözlüğe göre Öklid mesafesine dayalı bir sınıflandırma yapılır.

Ortaya çıkan histogramın her kutusu, belirli bir yeniden yapılandırılmış bölgedeki belirli bir sınıfın düşük seviyeli özelliklerinin sayısını içerir. Histogramı normalleştirdikten sonra, görüntünün "imzası" elde edilir - yeniden oluşturulmuş alanın üst düzey bir temsili.

Şekil 3. histogram oluşturma

Görüntü restorasyonunun kalitesini değerlendirmek için algoritmanın etkinliğinin tahmini

Geliştirilen metriğin etkinliğini değerlendirmek için bir dizi test görüntüsü kullanılmıştır. Set 300 resimden oluşmaktadır. Restorasyon yöntemleri olarak şu yaklaşımlar seçilmiştir: kendine benzer bölgelerin aranmasına dayalı bir yöntem, spektral dönüşümlere dayalı bir yöntem, kısmi türevlerin hesaplanmasına dayalı bir yöntem. Her görüntü için 30 kişinin katılımıyla uzman değerlendirmesi yapılmıştır. Sonuçlar birbiriyle örtüşmeyen iki kümeye ayrıldı. İlki eğitim için, ikincisi sonucu kontrol etmek için kullanıldı.

Uzmanlar kaliteyi, 5'in "Mükemmel" ve 1'in "Çok kötü" ye karşılık geldiği bir ölçekte derecelendirdi. Elde edilen metriklerin etkinliğini değerlendirmek için objektif metrikler kullanılarak elde edilen vektörler arasındaki korelasyon katsayısı ve uzman kalite değerlendirme yöntemi kullanılır. Tablo 2'deki sonuçların analizi, önerilen yaklaşımın seçilen test veri seti üzerinde bilinen kalite ölçütlerinden daha iyi performans gösterdiğini göstermektedir.

Tablo 2

Hedefi hesaplamanın çeşitli yöntemleri için korelasyon katsayısı
görüntü kalitesi metrikleri

Önerilen Yaklaşım

Çözüm

Makale, makine öğrenimine dayalı olarak görüntü kalitesini değerlendirmek için nesnel bir ölçüm sunar. Görüntü kalitesinin nicel ölçümleri, görüntü çoğaltma sistemlerinin tasarımı ve değerlendirilmesi için gereklidir. Bu önlemler, öznel inceleme yoluyla görüntüleri değerlendirmenin zahmetli ve yanlış modern yöntemlerinden büyük ölçüde kurtulmaya yardımcı olacaktır. Ayrıca nicel ölçümler temelinde, görüntü işleme sistemlerini optimize etmek için yöntemler geliştirmek mümkündür. Yukarıdaki yaklaşım kullanılarak elde edilen kalite puanının sübjektif kalite puanı ile ilişkili olduğu gösterilmiştir.

Çalışma, "2014-2020 için Rusya'nın bilimsel ve teknolojik kompleksinin öncelikli gelişme alanlarında araştırma ve geliştirme" Federal Hedef Programı çerçevesinde Rusya Eğitim ve Bilim Bakanlığı tarafından desteklenmiştir (sözleşme No. 14.586.21.0013) ).

İnceleyenler:

Fedosov V.P., Teknik Bilimler Doktoru, Profesör, Rostov-on-Don Güney Federal Üniversitesi Mühendislik ve Teknoloji Akademisi TOP Bölümü Başkanı;

Marchuk V.I., Teknik Bilimler Doktoru, Profesör, Radyoelektronik ve Elektrik Sistemleri ve Kompleksleri Bölüm Başkanı, ISOiP (DSTU şubesi), Shakhty.

bibliyografik bağlantı

Voronin V.V. MAKİNE ÖĞRENİMİNE DAYALI GÖRÜNTÜ KURTARMA KALİTESİNİN DEĞERLENDİRİLMESİ // Modern Bilim ve Eğitim Sorunları. - 2014. - 6 numara;
URL: http://science-education.ru/ru/article/view?id=16294 (erişim tarihi: 01.02.2020). "Academy of Natural History" yayınevi tarafından yayınlanan dergileri dikkatinize sunuyoruz.

Makine öğrenimi görevlerinde, modellerin kalitesini değerlendirmek ve farklı algoritmaları karşılaştırmak için metrikler kullanılır ve bunların seçimi ve analizi, bir veri bilimcinin 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 neyin önemli olduğunu ve neyin yanlış gidebileceğini tartışacağız.

Sınıflandırma problemlerinde metrikler

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

Gerekli kütüphaneleri indirin ve verilere bakın

Pandaları pd olarak içe aktar matplotlib.pyplot'u matplotlib.pylab'dan plt olarak içe aktar rc'yi içe aktar, seaborn'u sklearn.preprocessing'den sns olarak içe aktar sklearn.metrics'ten sklearn.model_selection'dan Precision_recall_curve, sınıflandırma_reportunu içe aktar

Df.kafa(5)


Veri ön işleme

# İkili sütunları eşleyin # ve durumu kukla kodlayın (basitlik açısından, bunu ahşap modeller için yapmamak daha iyidir) d = ("Evet" : 1, "Hayır" : 0) df["Uluslararası plan"] = df [" Uluslararası plan"].map(d) df["Sesli posta planı"] = df["Sesli posta planı"].map(d) df["Kayık"] = df["Kayık"].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(kodlanmış_durum, sütunlar=["durum " + str(i) for i in range(kodlanmış_durum.şekil)]) df = pd.concat(, eksen=1)

Doğruluk, kesinlik ve hatırlama

Metriklere geçmeden önce, bu metrikleri sınıflandırma hataları açısından açıklamak için önemli bir kavramın tanıtılması gerekir - karışıklık matrisi(hata matrisi).
İki sınıfımız ve her nesnenin sınıflardan birine ait olup olmadığını 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)

Burada, algoritmanın nesne üzerindeki yanıtı ve bu nesne üzerindeki sınıfın gerçek etiketidir.
Bu nedenle, iki tür sınıflandırma hatası vardır: Yanlış Negatif (FN) ve Yanlış Pozitif (FP).

Algoritma eğitimi ve hata matrisi oluşturma

X = df.drop("Churn", axis=1) y = df["Churn"] # Örneği tren ve test olarak 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 belgelerinden hata matrisini oluşturmak için işlevi kullanın 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, bariz ve neredeyse kullanılmayan bir ölçüm doğruluktur - algoritmanın doğru cevaplarının yüzdesi:

Bu metrik, eşit olmayan sınıflara sahip problemlerde işe yaramaz ve bir örnekle gösterilmesi kolaydır.

Diyelim ki bir posta spam filtresinin performansını değerlendirmek istiyoruz. Sınıflandırıcımızın doğru olarak belirlediği (Gerçek Negatif = 90, Yanlış Pozitif = 10) 90 spam olmayan 100 e-postamız ve sınıflandırıcı tarafından da doğru şekilde belirlenen 10 spam e-postamız var (Gerçek Pozitif = 5, Yanlış Negatif = 5 ).
Daha 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 e-postaları tespit etmek istediğimizden, modelimizin herhangi bir tahmin gücü yoktur. Tüm sınıflar için ortak bir ölçütten bireysel sınıf kalitesi göstergelerine geçiş, bunun üstesinden gelmemize yardımcı olacaktır.

Kesinlik, geri çağırma ve F-ölçüsü

Algoritmanın kalitesini sınıfların her birinde değerlendirmek için kesinlik (doğruluk) ve hatırlama (tamlık) ölçümlerini ayrı ayrı tanıtıyoruz.

Kesinlik, sınıflandırıcı tarafından pozitif olarak adlandırılan ve aynı zamanda gerçekten pozitif olan nesnelerin oranı olarak yorumlanabilir ve hatırlama, algoritmanın bulduğu pozitif sınıftaki tüm nesneler arasından pozitif sınıftaki nesnelerin ne kadarını gösterdiğini gösterir.

Tüm nesneleri tek bir sınıfa yazmamıza izin vermeyen kesinliğin getirilmesidir, çünkü bu durumda Yanlış Pozitif seviyesinde bir artış elde ederiz. Geri çağırma, algoritmanın belirli bir sınıfı algılama yeteneğini gösterirken, 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, birinci tip hata tip I hata, ikinci tip hata ise tip II hata olarak adlandırılır. Abonelerin çıkışını belirleme görevimizde, birinci türden hata, sadık bir abonenin ayrılan aboneyle yaptığı hata olacaktır, çünkü sıfır hipotezimiz abonelerden hiçbirinin ayrılmadığıdır ve biz bu hipotezi reddediyoruz. Buna göre, ikinci türden bir hata, giden abonenin "geçişi" 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 ölçüt arasında en uygun (müşteri için) dengeyi bulmaktır. Klasik bir örnek, müşterilerin çıkışını belirleme sorunudur.
bulamayacağımız çok açık herşeyçalkantılı müşteriler ve bir tek onlara. Ancak müşteriyi elde tutma stratejisini ve kaynağını belirledikten sonra, kesinlik ve geri çağırma için gerekli eşikleri seçebiliriz. Örneğin, çağrı merkezi kaynaklarımız sınırlı olduğundan, yalnızca yüksek marjlı veya ayrılma olasılığı daha yüksek olan müşterileri elde tutmaya odaklanabiliriz.

Genellikle, bir algoritmanın hiperparametrelerini optimize ederken (örneğin, bir ızgara üzerinde yineleme durumunda) GridSearchCV), gelişimini test örneğinde görmeyi beklediğimiz bir metrik kullanır.
Kesinliği ve geri çağırmayı toplu bir kalite ölçüsünde birleştirmenin birkaç farklı yolu vardır. F ölçüsü (genellikle ) - harmonik ortalama kesinlik ve geri çağırma:

Bu durumda, metrikteki doğruluğun ağırlığını ve aynı zamanda harmonik ortalamayı belirler (2 faktörü ile, böylece kesinlik = 1 ve geri çağırma = 1 olması durumunda )
F-ölçüsü maksimum değerine geri çağırmada ulaşır ve kesinlik bire eşittir ve bağımsız değişkenlerden biri sıfıra yakınsa sıfıra yakındır.
sklearn, kullanışlı bir _metrics.classification işlevine sahiptir raporlamak bu, sınıfların her biri için hatırlama, kesinlik ve F ölçüsünü ve ayrıca her sınıfın örnek sayısını döndürür.

Rapor = sınıflandırma_report(y_test, lr.predict(X_test), target_names=["Çalkalanmamış", "Çalkalanmış"]) print(rapor)

sınıf hassas hatırlamak f1 puanı destek
çalkalanmamış 0.88 0.97 0.93 941
Çalkalanmış 0.60 0.25 0.35 159
ortalama/toplam 0.84 0.87 0.84 1100

Burada, gerçek uygulamada hakim olan dengesiz sınıflarla ilgili sorunlar olması durumunda, sınıf oranını eşitlemek için genellikle yapay veri seti değiştirme tekniklerine başvurmanın gerekli olduğuna dikkat edilmelidir. Birçoğu var ve onlara değinmeyeceğiz, bazı yöntemlere bakabilir ve görevinize uygun olanı seçebilirsiniz.

AUC-ROC ve AUC-PR

Algoritmanın gerçek yanıtını (genellikle bir sınıfa ait olma olasılığı, ayrıca DVM'ye bakın) ikili bir etikete dönüştürürken, 0'ın 1 olduğu bir eşik seçmeliyiz. örneğin yukarıda belirtilen sınıf dengesi eksikliğinde her zaman optimal olmadığı ortaya çıkıyor.

Belirli bir eşiğe bağlı kalmadan modeli bir bütün olarak değerlendirmenin bir yolu, AUC-ROC (veya ROC AUC) - alan ( A gerçek sen ner C urve) hata eğrisinin altında ( R alıcı Öçalışmak C karakteristik eğri). Bu eğri, Gerçek Pozitif Oran (TPR) ve Yanlış Pozitif Oran (FPR) koordinatlarında (0,0) ile (1,1) arasındaki bir çizgidir:

TPR'yi zaten biliyoruz, bu tamlıktır ve FPR, algoritmanın negatif sınıftaki nesnelerin ne kadarını yanlış tahmin ettiğini gösterir. İdeal durumda, sınıflandırıcı hata yapmadığında (FPR = 0, TPR = 1), eğrinin altındaki alanı bire eşitleyeceğiz; aksi takdirde, sınıflandırıcı sınıf olasılıklarını rasgele olarak verdiğinde, sınıflandırıcı aynı miktarda TP ve FP çıkaracağı için AUC-ROC 0,5 olma eğiliminde olacaktır.
Grafikteki her nokta, bir eşik seçimine karşılık gelir. Bu durumda eğrinin altındaki alan, algoritmanın kalitesini gösterir (daha fazlası daha iyidir), ek olarak, eğrinin kendisinin dikliği önemlidir - FPR'yi en aza indirirken TPR'yi en üst düzeye çıkarmak istiyoruz, bu da eğrimizin ideal olarak eğilimli olması gerektiği anlamına gelir. nokta (0,1).

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("Gerçek Pozitif Oran") plt.title("ROC eğrisi") plt.savefig("ROC.png") plt.show()


AUC-ROC kriteri, dengesiz sınıflara karşı dayanıklıdır (spoiler: ne yazık ki, her şey o kadar basit değil) ve rastgele seçilen pozitif bir nesnenin sınıflandırıcı tarafından daha üst sıralarda yer alma olasılığı olarak yorumlanabilir (pozitif olma olasılığı daha yüksek olacaktır) ) rastgele seçilmiş bir negatif nesneden daha fazla.

Şu sorunu ele alalım: 1 milyon belgeden 100 ilgili belgeyi seçmemiz gerekiyor. Makine tarafından öğrenilen iki algoritmamız var:

  • Algoritma 1 90'ı ilgili olan 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 - yalnızca 0,0019. Bu, AUC-ROC'nin Yanlış Pozitifin Gerçek Negatife göre oranını ölçmesinin bir sonucudur ve ikinci (daha büyük) sınıfın bizim için çok önemli olmadığı görevlerde, 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

İki algoritma arasında zaten önemli bir fark var - doğrulukta 0,855!

Kesinlik ve geri çağırma da eğriyi çizmek ve AUC-ROC'ye benzer şekilde altındaki alanı bulmak için kullanılır.


Burada, küçük veri kümelerinde, PR eğrisinin altındaki alanın çok iyimser olabileceği not edilebilir, çünkü yamuk yöntemi kullanılarak hesaplanır, ancak genellikle bu tür görevlerde yeterli veri vardır. AUC-ROC ve AUC-PR arasındaki ilişkinin ayrıntıları için buraya bakın.

Lojistik Kayıp

Ayrı duran, şu şekilde tanımlanan lojistik kayıp fonksiyonudur:

algoritmanın -th nesnesindeki 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 gönderide zaten yazılmıştı.
Bu ölçüm genellikle iş gereksinimlerinde değil, genellikle kaggle görevlerinde görünür.
Sezgisel olarak, logloss'u en aza indirmeyi, yanlış tahminleri cezalandırarak doğruluğu en üst düzeye çıkarma sorunu olarak düşünebiliriz. Bununla birlikte, logloss'un sınıflandırıcının yanlış cevaba olan güvenini ciddi şekilde cezalandırdığına dikkat edilmelidir.

Bir örnek düşünün:

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ırmaya sahip logloss %f " % logloss_crutch(1, 0.5)) >> Belirsiz sınıflandırma ile logloss 0.693147 print("Güvenilir sınıflandırma ve doğru cevap ile logloss %f" % logloss_crutch(1, 0.9)) >> Güvenilir sınıflandırma ve doğru cevap ile logloss 0.105361 print(" Kesin sınıflandırma ve yanlış cevap için logloss %f" % logloss_crutch(1, 0.1)) >> Kesin sınıflandırma ve yanlış cevap için logloss 2.302585

Yanlış cevap ve kendinden emin sınıflandırma ile logloss'un ne kadar önemli ölçüde arttığına dikkat edin!
Bu nedenle, bir nesnedeki hata, numunedeki genel hatada önemli bir bozulma verebilir. Bu tür nesneler genellikle, filtrelemek veya ayrı olarak değerlendirmek için hatırlanması gereken aykırı değerlerdir.
Bir logloss grafiği çizerseniz her şey yerine oturur:


Algoritmanın yer gerçeği = 1 yanıtı sıfıra yaklaştıkça hata değerinin arttığı ve eğrinin dikleştiği görülmektedir.

Özetlemek:

  • Çok sınıflı sınıflandırma durumunda, her sınıfın metriklerini dikkatlice izlemeniz ve karar verme mantığını izlemeniz gerekir. görevler, metriği optimize etmek yerine
  • Eşit olmayan sınıflar söz konusu olduğunda, 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.
  • mephistopheies ve madrugado'ya makalenin hazırlanmasındaki yardımları için teşekkür ederim.

Her listedeki öğelerde. Kısmi sıralama genellikle her madde için bir puan belirtilerek belirtilir (örneğin, "ilgili" veya "ilgili değil"; ikiden fazla derecelendirme mümkündür). Bir sıralama modelinin amacı, eğitim setindeki sıralamaların yeni verilere uyma şeklini (bir anlamda) en iyi şekilde tahmin etmek ve genellemektir.

Sıralamalı öğrenme, 2000'lerde makine öğrenimi yöntemlerini sıralama problemlerine uygulayarak bilgi alma alanına ilginin ortaya çıkmasıyla ortaya çıkan oldukça genç ve hızla gelişen bir araştırma alanıdır.

Ansiklopedik YouTube

  • 1 / 5

    Sıralama modelinin eğitimi ve işleyişi sırasında, her bir belge-istek çifti, belgenin özelliklerini, sorguyu ve bunların ilişkisini karakterize eden sıralama özelliklerinin (sıralama faktörleri veya sinyalleri olarak da adlandırılır) sayısal bir vektörüne dönüştürülür. Bu işaretler üç gruba ayrılabilir:

    Aşağıda, alanda iyi bilinen LETOR veri setinde kullanılan bazı sıralama özelliklerine örnekler verilmiştir:

    • Ölçü değerleri TF, TF-IDF , BM25 ve çeşitli belge bölgelerinin (başlık, URL, gövde metni, bağlantı metni) talebini eşleştirme dil modeli;
    • Belge bölgelerinin uzunlukları ve IDF toplamları;
    • PageRank ve HITS gibi bağlantı sıralama algoritmalarının çeşitli varyasyonlarıyla elde edilen belge sıralamaları.

    Sıralama kalitesi metrikleri

    Sıralama algoritmalarının bir örnek üzerindeki performansını akran incelemeleriyle değerlendiren ve karşılaştıran birkaç ölçüm vardır. Genellikle sıralama modelinin parametreleri, bu ölçütlerden birinin değerini maksimize edecek şekilde ayarlanma eğilimindedir.

    Metrik örnekleri:

    Algoritmaların sınıflandırılması

    Microsoft Research Asia'dan Tai-Yan Liu, "Bilgi Erişimi için Derecelendirmeyi Öğrenme" adlı makalesinde ve tematik konferanslardaki konuşmalarında, sıralamayı öğrenme sorununu çözmek için şu anda mevcut olan yöntemleri analiz etti ve bunların girdiye bağlı olarak üç yaklaşım halinde sınıflandırılmasını önerdi. temsili kullanılan veri ve işlev iyi:

    Noktasal yaklaşım

    notlar

    1. Kravat Yan Liu (2009) Bilgi Alımı İçin Derecelendirmeyi Öğrenin, 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 konferansındaki konuşmasından slaytlar mevcuttur.

    Telekom operatörünün müşterilerinin çıkışına göre.


    Gerekli kütüphaneleri indirin ve verilere bakın

    pandaları pd olarak içe aktar matplotlib.pyplot'u matplotlib.pylab'dan plt olarak içe aktar rc, çizimi sklearn'den sns olarak seaborn'u içe aktar. ../data/telecom_churn.csv")


    df.kafa(5)

    Veri ön işleme

    # İkili sütunları eşleyin # ve durumu kukla kodlayın (basitlik açısından, bunu ahşap modeller için yapmamak daha iyidir) d = ("Evet" : 1, "Hayır" : 0) df["Uluslararası plan"] = df [" Uluslararası plan"].map(d) df["Sesli posta planı"] = df["Sesli posta planı"].map(d) df["Kayık"] = df["Kayık"].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(kodlanmış_durum, sütunlar=["durum " + str(i) for i in range(kodlanmış_durum.şekil)]) df = pd.concat(, eksen=1)

    Doğruluk, kesinlik ve hatırlama

    Metriklere geçmeden önce, bu metrikleri sınıflandırma hataları açısından açıklamak için önemli bir kavramın tanıtılması gerekir - karışıklık matrisi(hata matrisi).
    İki sınıfımız ve her nesnenin sınıflardan birine ait olup olmadığını 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)

    Burada, algoritmanın nesne üzerindeki yanıtı ve bu nesne üzerindeki sınıfın gerçek etiketidir.
    Bu nedenle, iki tür sınıflandırma hatası vardır: Yanlış Negatif (FN) ve Yanlış Pozitif (FP).


    Algoritma eğitimi ve hata matrisi oluşturma

    X = df.drop("Churn", axis=1) y = df["Churn"] # Örneği tren ve test olarak 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 belgelerinden hata matrisini oluşturmak için işlevi kullanın 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, bariz ve neredeyse kullanılmayan bir ölçüm doğruluktur - algoritmanın doğru cevaplarının yüzdesi:



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


    Diyelim ki bir posta spam filtresinin performansını değerlendirmek istiyoruz. 90 tanesini sınıflandırıcımızın doğru belirlediği (Gerçek Negatif = 90, Yanlış Pozitif = 10) ve 5 tanesi yine sınıflandırıcı tarafından doğru bir şekilde belirlenen (Gerçek Pozitif = 5, Yanlış Negatif) 10 spam olmayan 100 e-postamız var. = beş).
    Daha 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 e-postaları tespit etmek istediğimiz için modelimizin herhangi bir tahmin gücü yoktur. Tüm sınıflar için ortak bir ölçütten bireysel sınıf kalitesi göstergelerine geçiş, bunun üstesinden gelmemize yardımcı olacaktır.

    Kesinlik, geri çağırma ve F-ölçüsü

    Algoritmanın kalitesini sınıfların her birinde değerlendirmek için kesinlik (doğruluk) ve hatırlama (tamlık) ölçümlerini ayrı ayrı tanıtıyoruz.




    Kesinlik, sınıflandırıcı tarafından pozitif olarak adlandırılan ve aynı zamanda gerçekten pozitif olan nesnelerin oranı olarak yorumlanabilir ve hatırlama, algoritmanın bulduğu pozitif sınıftaki tüm nesneler arasından pozitif sınıftaki nesnelerin ne kadarını gösterdiğini gösterir.



    Tüm nesneleri tek bir sınıfa yazmamıza izin vermeyen kesinliğin getirilmesidir, çünkü bu durumda Yanlış Pozitif seviyesinde bir artış elde ederiz. Geri çağırma, algoritmanın belirli bir sınıfı algılama yeteneğini gösterirken, 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, birinci tip hata tip I hata, ikinci tip hata ise tip II hata olarak adlandırılır. Abonelerin çıkışını belirleme görevimizde, birinci türden hata, sadık bir abonenin ayrılan aboneyle yaptığı hata olacaktır, çünkü sıfır hipotezimiz abonelerden hiçbirinin ayrılmadığıdır ve biz bu hipotezi reddediyoruz. Buna göre, ikinci türden bir hata, giden abonenin "geçişi" 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 ölçüt arasında en uygun (müşteri için) dengeyi bulmaktır. Klasik bir örnek, müşterilerin çıkışını belirleme sorunudur.
    bulamayacağımız çok açık herşeyçalkantılı müşteriler ve bir tek onlara. Ancak, müşteriyi elde tutma stratejisini ve kaynağını belirledikten sonra, kesinlik ve geri çağırma için gerekli eşikleri seçebiliriz. Örneğin, çağrı merkezi kaynaklarımız sınırlı olduğundan, yalnızca yüksek marjlı veya ayrılma olasılığı daha yüksek olan müşterileri elde tutmaya odaklanabiliriz.


    Genellikle, bir algoritmanın hiperparametrelerini optimize ederken (örneğin, bir ızgara üzerinde yineleme durumunda) GridSearchCV), gelişimini test örneğinde görmeyi beklediğimiz bir metrik kullanır.
    Kesinliği ve geri çağırmayı toplu bir kalite ölçüsünde birleştirmenin birkaç farklı yolu vardır. F ölçüsü (genellikle ) - harmonik ortalama kesinlik ve geri çağırma:



    Bu durumda, metrikteki doğruluğun ağırlığını ve aynı zamanda harmonik ortalamayı belirler (2 faktörü ile, böylece kesinlik = 1 ve geri çağırma = 1 olması durumunda )
    F-ölçüsü maksimum değerine geri çağırmada ulaşır ve kesinlik bire eşittir ve bağımsız değişkenlerden biri sıfıra yakınsa sıfıra yakındır.
    sklearn, kullanışlı bir _metrics.classification işlevine sahiptir raporlamak sınıfların her biri için hatırlama, kesinlik ve F-ölçüsünün yanı sıra her sınıfın örnek sayısını da döndürür.


    rapor = sınıflandırma_report(y_test, lr.predict(X_test), target_names=["Çalkalanmamış", "Çalkalanmış"]) print(rapor)
    sınıf hassas hatırlamak f1 puanı destek
    çalkalanmamış 0.88 0.97 0.93 941
    Çalkalanmış 0.60 0.25 0.35 159
    ortalama/toplam 0.84 0.87 0.84 1100

    Burada, gerçek uygulamada hakim olan dengesiz sınıflarla ilgili sorunlar olması durumunda, sınıf oranını eşitlemek için genellikle yapay veri seti değiştirme tekniklerine başvurmanın gerekli olduğuna dikkat edilmelidir. Birçoğu var ve onlara değinmeyeceğiz, bazı yöntemlere bakabilir ve görevinize uygun olanı seçebilirsiniz.

    AUC-ROC ve AUC-PR

    Algoritmanın gerçek yanıtını (genellikle bir sınıfa ait olma olasılığı, ayrıca DVM'ye bakın) ikili bir etikete dönüştürürken, 0'ın 1 olduğu bir eşik seçmeliyiz. örneğin yukarıda belirtilen sınıf dengesi eksikliğinde her zaman optimal olmadığı ortaya çıkıyor.


    Belirli bir eşiğe bağlı kalmadan modeli bir bütün olarak değerlendirmenin bir yolu, AUC-ROC (veya ROC AUC) - alan ( A gerçek sen ner C urve) hata eğrisinin altında ( R alıcı Öçalışmak C karakteristik eğri). Bu eğri, Gerçek Pozitif Oran (TPR) ve Yanlış Pozitif Oran (FPR) koordinatlarında (0,0) ile (1,1) arasındaki bir çizgidir:




    TPR'yi zaten biliyoruz, bu tamlıktır ve FPR, algoritmanın negatif sınıftaki nesnelerin ne kadarını yanlış tahmin ettiğini gösterir. İdeal durumda, sınıflandırıcı hata yapmadığında (FPR = 0, TPR = 1), eğrinin altındaki alanı bire eşitleyeceğiz; aksi takdirde, sınıflandırıcı sınıf olasılıklarını rasgele olarak verdiğinde, sınıflandırıcı aynı miktarda TP ve FP çıkaracağı için AUC-ROC 0,5 olma eğiliminde olacaktır.
    Grafikteki her nokta, bir eşik seçimine karşılık gelir. Bu durumda eğrinin altındaki alan, algoritmanın kalitesini gösterir (daha fazlası daha iyidir), ek olarak, eğrinin kendisinin dikliği önemlidir - FPR'yi en aza indirirken TPR'yi en üst düzeye çıkarmak istiyoruz, bu da eğrimizin ideal olarak eğilimli olması gerektiği anlamına gelir. nokta (0,1).


    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("Gerçek Pozitif Oran") plt.title("ROC eğrisi") plt.savefig("ROC.png") plt.show()



    AUC-ROC kriteri, dengesiz sınıflara karşı dayanıklıdır (spoiler: ne yazık ki, her şey o kadar basit değil) ve rastgele seçilen pozitif bir nesnenin sınıflandırıcı tarafından daha üst sıralarda yer alma olasılığı olarak yorumlanabilir (pozitif olma olasılığı daha yüksek olacaktır) ) rastgele seçilmiş bir negatif nesneden daha fazla.


    Şu sorunu ele alalım: 1 milyon belgeden 100 ilgili belgeyi seçmemiz gerekiyor. Makine tarafından öğrenilen iki algoritmamız var:

    • Algoritma 1 90'ı ilgili olan 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 - yalnızca 0,0019. Bu, AUC-ROC'nin Yanlış Pozitifin Gerçek Negatife göre oranını ölçmesinin bir sonucudur ve ikinci (daha büyük) sınıfın bizim için çok önemli olmadığı görevlerde, 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


    İki algoritma arasında zaten önemli bir fark var - doğrulukta 0,855!


    Kesinlik ve geri çağırma da eğriyi çizmek ve AUC-ROC'ye benzer şekilde altındaki alanı bulmak için kullanılır.



    Burada, küçük veri kümelerinde, PR eğrisinin altındaki alanın çok iyimser olabileceği not edilebilir, çünkü yamuk yöntemi kullanılarak hesaplanır, ancak genellikle bu tür görevlerde yeterli veri vardır. AUC-ROC ve AUC-PR arasındaki ilişkinin ayrıntıları için buraya bakın.

    Lojistik Kayıp

    Ayrı duran, şu şekilde tanımlanan lojistik kayıp fonksiyonudur:



    i. nesnedeki algoritma yanıtı nerede, i. nesnedeki gerçek sınıf etiketi ve örnek boyutudur.


    Lojistik kayıp fonksiyonunun matematiksel yorumuyla ilgili ayrıntılar, doğrusal modeller hakkındaki gönderide zaten yazılmıştı.
    Bu ölçüm genellikle iş gereksinimlerinde değil, genellikle kaggle görevlerinde görünür.
    Sezgisel olarak, logloss'u en aza indirmeyi, yanlış tahminleri cezalandırarak doğruluğu en üst düzeye çıkarma sorunu olarak düşünebiliriz. Bununla birlikte, logloss'un sınıflandırıcının yanlış cevaba olan güvenini ciddi şekilde cezalandırdığına dikkat edilmelidir.


    Bir örnek düşünün:


    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ırmaya sahip logloss %f " % logloss_crutch(1, 0.5)) >> Belirsiz sınıflandırma ile logloss 0.693147 print("Güvenilir sınıflandırma ve doğru cevap ile logloss %f" % logloss_crutch(1, 0.9)) >> Güvenilir sınıflandırma ve doğru cevap ile logloss 0.105361 print(" Kesin sınıflandırma ve yanlış cevap için logloss %f" % logloss_crutch(1, 0.1)) >> Kesin sınıflandırma ve yanlış cevap için logloss 2.302585

    Yanlış cevap ve kendinden emin sınıflandırma ile logloss'un ne kadar önemli ölçüde arttığına dikkat edin!
    Bu nedenle, bir nesnedeki hata, numunedeki genel hatada önemli bir bozulma verebilir. Bu tür nesneler genellikle, filtrelemek veya ayrı olarak değerlendirmek için hatırlanması gereken aykırı değerlerdir.
    Bir logloss grafiği çizerseniz her şey yerine oturur:



    Algoritmanın yer gerçeği = 1 yanıtı sıfıra yaklaştıkça hata değerinin arttığı ve eğrinin dikleştiği görülmektedir.

    Özetlemek:

    • Çok sınıflı sınıflandırma durumunda, her sınıfın metriklerini dikkatlice izlemeniz ve karar verme mantığını izlemeniz gerekir. görevler, metriği optimize etmek yerine
    • Eşit olmayan sınıflar söz konusu olduğunda, 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 makalenin hazırlanmasındaki yardımları için madrugado. 

    Bu bölüm, bir sınıflandırma modelinin kalitesini değerlendirmek için bu konudaki diğer çalışmalarda da kullanılan popüler yöntemleri sunar. Bu değerlendirme için kullanılan ölçütlerin açıklamaları ve gerekçeleri verilmiştir.

    Kalite değerlendirme metrikleri

    Tam hassasiyet (doğruluk)

    Bu metrik, sınıflandırma algoritmalarının kalitesini 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 örneğindeki belgelerin bir veya daha fazla sınıfa yönelik güçlü bir önyargısı olması durumunda doğru olmayabilir. 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 bir çalışma kalitesi gösterebilir. Aynı zamanda, metrik bunu hiçbir şekilde işaret etmez.

    Doğruluk, hatırlama ve F-ölçüsü

    Kesinlik (kesinlik) ve hatırlama (hatırlama) gibi metrikler ilk kez bilgi alma sorununu çözen sistemlerin iş kalitesini değerlendirmede yaygın olarak kullanılmaya başlandı. Sistemin bir sınıf içindeki doğruluğu, gerçekte belirli bir sınıfa ait olan nesnelerin, sistem tarafından bu sınıfa atanan tüm nesnelere göre oranıdır. Tamlık, sınıflandırıcı tarafından bulunan sınıfa ait nesnelerin bu sınıftaki tüm nesnelere göre oranı olarak ifade edilir. Tablo 4, ayrı bir sınıfın beklenmedik durum tablosudur; burada TP (gerçek pozitif) gerçek pozitif çözümdür, TN (gerçek negatif) gerçek negatif çözümdür, FP (yanlış pozitif) yanlış pozitif çözümdür ve FN (yanlış negatif) yanlış-negatif karardır.

    Tablo 1 - Nesne sınıfı olasılık tablosu

    Kesinlik ve geri çağırma şu şekilde hesaplanır:

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

    F ölçüsünün her sınıf için ayrı ayrı hesaplanması nedeniyle, belirli algoritma hatalarını aramak ve analiz etmek, birkaç sınıfla bir sınıflandırmayı değerlendirmek için kullanmak uygundur. Aynı zamanda, çok sayıda sınıf olması durumunda, tüm sınıflar üzerinde tamlığı ve doğruluğu toplayacak ve sistemin genel davranışını karakterize edecek bir özelliğe ihtiyaç vardır. 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 geri çağırmanın aritmetik ortalaması olarak hesaplanan makro hatırlama, ve aralarındaki harmonik ortalama olan makro F-ölçüsü (Makro F-skoru).

    Çapraz doğrulama

    Tam teşekküllü testler yapmak ve çeşitli makine öğrenimi algoritmalarının performansını değerlendirmek için en yaygın yöntemlerden biri çapraz doğrulamadır. Bağımsız bir örnek için, bu yöntem, eğitim örneğindeki ortalama hatanın aksine, hata olasılığının tarafsız bir tahminini elde etmenizi sağlar; bu, algoritmanın aşırı uyarlanması nedeniyle hata olasılığının önyargılı bir tahmini olabilir. Bu prosedürün diğer bir avantajı, test için özel olarak tasarlanmış bir kontrol örneğinin yokluğunda, bir algoritma hatası olasılığının bir tahminini elde etme yeteneğidir.

    Bunun, sonlu bir emsal örneğinin belirtildiği, sonlu bir sınıf kümesinin olduğu, nesnelerin bir özellik açıklamaları kümesi olduğunu varsayalım. Rastgele bir emsal örneğini bir algoritma ile ilişkilendiren bir eşleme verilir. Ardından, keyfi bir emsal örneği için algoritmanın performansı, kalite işlevi kullanılarak tahmin edilir:

    doğru sınıf etiketi verilen algoritmanın hata değerini döndüren negatif olmayan bir işlev nerede.