Kaynak: Data Pigeon
Bu makale hakkında 1500 kelime, Önerilen Okuma 5 dakika.
Bu makalede, tahmin sonuçlarının kalitesini ölçmek için makine öğreniminde tıbbi yanlış negatiflerin nasıl kullanıldığına bir göz atalım.
Son günlerde, yeni koroner pnömoni için "yanlış negatif" nükleik asit testi dikkat çekti. Sözde yanlış negatif, hastanın yeni koronavirüs ile enfekte olduğu, ancak nükleik asidin tespit edilmediği ve raporun negatif olduğu anlamına gelir. Bazı uzmanlar, herhangi bir nükleik asit testinin tespit oranının% 100'e ulaşamayacağını ve yanlış negatiflerin kaçınılmaz olduğunu analiz ettiler, bu da teknolojinin kendisinin sınırlamasıdır.
Makine Öğrenmesine aşina olan meraklılar için Yanlış Negatif (FN), hastanın enfekte olduğu, ancak yanlış tahmin nedeniyle tahmin edilen sonucun hastalıksız veya enfekte olmadığı anlamına gelir. Bu makalede, makine öğreniminde tahmin sonuçlarının kalitesini ölçmek için yanlış negatiflerin nasıl kullanıldığına bir göz atalım.
Burada "doğru veya yanlış" aslında (tıpta) tespitin doğru veya yanlış olduğunu, (makine öğrenmesinde) tahminin doğru veya yanlış olduğunu ifade eder.
Eğer biraz başın dönüyorsa, özetlemek için aşağıdaki tabloya bakman yeterli:
TP (Gerçek Pozitif): Hasta ve tespit / tahmin doğru
FN (yanlış negatif): Hasta, ancak yanlış tespit / tahmin nedeniyle hastalık yok şeklinde yanlış değerlendiriliyor
FP (yanlış pozitif): Hastalıklı değil, ancak tespit / tahmin hatalarından dolayı hastalıklı olarak yanlış değerlendiriliyor
TN (Gerçek Negatif): Tek başına hastalık yok ve doğru tespit / tahmin
O zaman makine öğreniminde tahmin değerinin pozitif (1) ve negatif (0) olarak yargılanması problemi, tipik bir ikili sınıflandırma problemidir. Bunu çözmek için birçok makine öğrenimi algoritmasını kullanabiliriz. Burada örnek olarak sadece Naif Bayes kullanılmıştır.
Naive Bayes, bilinmeyen sınıfları tahmin etmek için Bayes olasılık teoremini kullanan bir sınıflandırma algoritmasıdır. Bir test noktasının hangi sınıfa ait olduğunu belirlemek için olasılığı kullanır. Naive Bayes, tamamen istatistiksel bir modeldir. Veri setindeki özelliklerin / özniteliklerin birbirinden bağımsız olduğu varsayıldığından, bu algoritmaya naif algoritma denir.
Bu makalede, veri kümesindeki hastalarda diyabet olup olmadığını tahmin etmek için saf bir Bayes sınıflandırıcı kullanacağız. Veri seti, UCI Machine Learning web sitesinden veya Kaggle web sitesinden indirilebilen UCI Pima Indians Diyabet Veritabanı'dır (California Üniversitesi, Irvine Diyabet Açık Veri Seti).
Bunu yapmak için Python kullanalım.
Önce ilgili paketleri tanıtın:
numpy'i npimport pandaları pd olarak sklearn.naive_bayes'den sklearn.naive_bayes'den pd olarak içe aktarınVerileri okuyun ve ilk beş satırı görüntüleyin:
df_input = pd.read_csv ("./ data / diabetes.csv") df_input.head ()Veri setinin dokuz sütunu olduğunu görebilirsiniz: gebelik sayısı, kan şekeri, kan basıncı, sebum kalınlığı, insülin, BMI vücut kitle indeksi, diyabetin genetik işlevi, yaş ve sonuç. İlk sekizi özelliklerdir ve sonuncusu (sonuç) bir etikettir. Sonuçların iki etiketi vardır: 0 (negatif, diyabetik olmayan) ve 1 (pozitif, diyabetik).
Veri türüne bir göz atın:
df_input.dtypesVeri özetini göster (temel istatistikler):
df_input.describe ()Tüm sütunları bağımlı değişkenlere (sonuç veya etiket verileri) ve bağımsız değişkenlere (sekiz özellik) bölmemiz gerekir. X bağımsız değişkenler içerir ve y bağımlı değişkenler içerir. Ardından, bu değişkenleri eğitim ve test setlerine ayırıyoruz:
array = df_input.valuesX = array # öznitelikler olan tüm satırları ve ilk 7 sütunu seçin Y = array # tüm satırları ve diabetiest_size = 0.3 için "Yes", "No" sınıflandırması olan 8. sütunu seçin # 70:30 eğitim alıyor ve test setseed = 1 # Kodun yeniden kaydedilebilirliği için rastgele numbmer tohumlama X_train, X_test, Y_train, Y_test = model_selection.train_test_split (X, Y, test_size = test_size, random_state = seed)Verileri eğitim ve teste böldükten sonra, eğitim setinde bir Naive Bayes modeli oluşturacağız ve test veri seti üzerinde tahminler yapacağız:
model = GaussianNB () model.fit (X_train, Y_train) print (model) # make predictionsexpected = Y_testpredicted = model.predict (X_test) # modelprint (metrics.classification_report (beklenen, tahmin edilen)) baskısının (metrikler. confusion_matrix (beklenen, tahmin edilen))Naive Bayes model tahmininin etkisini ölçmek için bir sınıflandırma raporu oluşturulur:
Bu göstergelerin gerçek pozitif / TP (diyabet hastası, diyabet olduğu tahmin edilen), gerçek negatif / TN (diyabet hastası olmayan, diyabet olmadığı tahmin edilen), yanlış pozitif / FP (diyabeti olmayan ancak diyabet olduğu tahmin edilen kişiler) kullandığı görülebilir ve Yanlış negatif / FN (bir kişinin diyabeti var ancak diyabet olduğu tahmin edilmiyor) hesaplanacak.
Doğruluk: Tahmin çiftli örneklerin sayısının toplam örnek sayısına oranı:
Doğruluk = (TP + TN) / (TP + TN + FP + FN)
Doğruluk: Pozitif olacağı tahmin edilen örneklerin kaç tanesi gerçekten pozitif:
Hassasiyet = TP / (TP + FP)
Hatırlama oranı: Kaç tane pozitif vaka bulduk, yani örnekteki kaç pozitif vaka doğru tahmin edildi:
Geri çağırma = TP / (TP + FN)
F1 skoru: Dengeli F skoru olarak da bilinir, hassasiyet ve geri çağırmanın harmonik ortalaması olarak tanımlanır. İstatistikte iki sınıflı bir modelin doğruluğunu ölçmek için kullanılan bir indekstir. Ayrıca, sınıflandırma modelinin doğruluğunu ve hatırlanmasını da hesaba katar. Maksimum değeri 1 ve minimum değeri 0'dır.
F1 puanı = 2 * (Geri Çağırma * Kesinlik) / (Geri Çağırma + Kesinlik)
Yukarıda herkes kendine iyi baksın.
Editör: Wang Jing
Redaksiyon: Lin Yilin
-Bitiş-
Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.