Takip et

Makine Öğrenmesi Algoritmalarının Friedman Testi ve Kritik Fark Diyagramları ile Karşılaştırılması

Makine Öğrenmesi Algoritmalarının Friedman Testi ve Kritik Fark Diyagramları ile Karşılaştırılması

Makine öğrenmesinde, farklı algoritmaların performansını karşılaştırmak ve en uygun olanı seçmek oldukça önemlidir. Bu karşılaştırmayı yaparken, tek bir deneyle kesin sonuçlar elde etmek zor olabilir. Çünkü verilerin yapısı, algoritmaların parametre ayarları gibi faktörler sonuçları etkiler. Bu nedenle, istatistiksel testler kullanarak algoritmaları anlamlı bir şekilde karşılaştırmak gerekir. Bu makalede, Friedman testi ve Kritik Fark Diyagramları (Critical Difference Diagrams – CDD) kullanarak makine öğrenmesi algoritmalarının performansını nasıl karşılaştırabileceğimizi Python ile göstereceğiz.

Friedman Testi Nedir?

Friedman testi, bağımlı örnekler (repeated measures) için kullanılan non-parametrik bir testtir. Birden fazla algoritmanın aynı veri kümesi üzerindeki performansını karşılaştırmak için uygundur. Test, her algoritmanın performans sıralamasını kullanarak, algoritmalar arasında anlamlı bir fark olup olmadığını belirler. Basitçe söylemek gerekirse, Friedman testi, algoritmaların performanslarında şans eseri oluşan farklılıklardan mı yoksa gerçek bir performans farkından mı kaynaklandığını anlamamızı sağlar. Eğer p-değeri belirli bir anlamlılık seviyesinden (örneğin, 0.05) düşük ise, algoritmalar arasında istatistiksel olarak anlamlı bir fark olduğu sonucuna varabiliriz.

Kritik Fark Diyagramları (CDD) Nedir?

Friedman testi, algoritmalar arasında genel bir fark olup olmadığını söyler. Ancak, hangi algoritmaların birbirlerinden istatistiksel olarak farklı olduğunu göstermez. İşte burada Kritik Fark Diyagramları devreye girer. CDD, Friedman testinin sonucuna dayanarak, algoritmaların performans sıralamalarını ve aralarındaki istatistiksel olarak anlamlı farklılıkları görselleştiren bir diyagramdır. Bu diyagram sayesinde, hangi algoritmanın diğerlerinden daha iyi performans gösterdiğini kolayca görebiliriz.

Python ile Uygulama

Şimdi, Python kullanarak Friedman testi ve CDD’yi nasıl uygulayabileceğimize bakalım. Öncelikle gerekli kütüphaneleri içe aktarmalıyız:

python
import scikit_posthocs as sp
import pandas as pd
from scipy.stats import friedmanchisquare
import matplotlib.pyplot as plt

Daha sonra, algoritmaların performans sonuçlarını içeren bir DataFrame oluşturmamız gerekiyor. Bu DataFrame’de, her satır bir veri kümesini, her sütun ise bir algoritmayı temsil eder. Hücreler ise ilgili algoritmanın o veri kümesindeki performans skorunu içerir. Örneğin, doğruluk oranı veya ortalama kare hatası olabilir. Aşağıdaki kod parçası örnek bir DataFrame oluşturur:

python
data = {‘Algoritma A’: [0.8, 0.7, 0.9, 0.85],
‘Algoritma B’: [0.75, 0.65, 0.8, 0.7],
‘Algoritma C’: [0.9, 0.85, 0.95, 0.92]}
df = pd.DataFrame(data)

Friedman testini uygulamak için:

python
statistic, p_value = friedmanchisquare(*df.values.T)
print(f”Friedman Testi İstatistiği: {statistic:.2f}”)
print(f”P-değeri: {p_value:.3f}”)

Eğer p-değeri anlamlılık seviyesinden düşükse (örneğin, 0.05), algoritmalar arasında istatistiksel olarak anlamlı bir fark vardır. Bu durumda, CDD oluşturarak hangi algoritmaların birbirinden farklı olduğunu belirleyebiliriz. Bunun için scikit_posthocs kütüphanesini kullanabiliriz:

python
posthoc_results = sp.posthoc_nemenyi_friedman(df)
print(posthoc_results)

Bu kod, Nemenyi post-hoc testini kullanarak CDD için gerekli verileri üretir. Sonucu görselleştirmek için matplotlib kütüphanesi kullanılabilir. Daha detaylı bir görselleştirme için, buraya bakabilirsiniz.

Sonuç

Friedman testi ve Kritik Fark Diyagramları, makine öğrenmesi algoritmalarının performansını istatistiksel olarak karşılaştırmak için güçlü araçlardır. Bu yöntemler, tek bir deneyin sonuçlarına dayanarak kesin yargılara varmak yerine, daha güvenilir ve anlamlı sonuçlar elde etmemizi sağlar. Bu sayede, verilen bir problem için en uygun algoritmayı seçme sürecinde daha bilinçli kararlar alabiliriz. Daha fazla bilgi için web sitemi ziyaret edebilirsiniz.

#Etiketler: Friedman Testi, Kritik Fark Diyagramları, Makine Öğrenmesi, Algoritma Karşılaştırması, Python, İstatistiksel Testler, Veri Bilimi, CDD, Nemenyi Testi, Performans Değerlendirmesi

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.