Python Makine Öğrenimi Kullanan Diyabetik Tahmin Modeli

Feb 27 2023
Giriş Bu makalede, bir veri setini dört parçaya bölmek, bir tahmin modeli geliştirmek ve ayrıca bir kullanım durumu aracılığıyla tahminleri ve veri setini analiz etmek için Train Test Split modelini nasıl kullanacağımızı öğreneceğiz. Kullanım Örneği — Sorun Bildirimi Bu makaledeki amacımız, hastaların diyabet hastası olup olmadığını tahmin etmektir.

giriiş

Bu makalede, bir veri setini dört parçaya bölmek, bir tahmin modeli geliştirmek ve ayrıca bir kullanım durumu aracılığıyla tahminleri ve veri setini analiz etmek için Train Test Split modelini nasıl kullanacağımızı öğreneceğiz.

Kullanım Örneği — Sorun Bildirimi

Bu makaledeki amacımız hastaların diyabet hastası olup olmadığını tahmin etmektir . Tüm hastalarımız, verili verileri (örn. gebelik sayısı, glikoz seviyeleri ve VKİ) diyabeti tahmin etmek için kullanılacak olan genç kadınlardır. Bu, kullanacağımız veri kümesidir .

Makine Öğreniminde Verileri Eğitim ve Test Etme

Veri kümeleriyle çalışan neredeyse tüm makine öğrenimi algoritmaları üç farklı aşamada çalışır: Veri Ön İşleme, Tahmin Modeli ve Veri Analizi. Sürecin 1. aşamasında, veri seti %80 eğitim verisine ve %20 test verisine bölünür. Train Test Split modelini kullanarak , tahmin modeli ve veri analizinden önce veri ön işlemeyi tamamlayacağız.

Veri ön işlemeye başlamak için önce pip kullanarak birkaç Python kitaplığı kurmamız gerekiyor :

>>> pip kurulum pandaları

>>>pip kurulum sklearn

Gerekli kitaplıkları kurduktan sonra, veri kümesini içe aktarmak için pandas kitaplığını ve veri kümesinin bölünmesini gerçekleştirmek için sklearn kitaplığını kullanacağız:

Bu paketleri import ettikten sonra csv dosyasındaki datasetimizi pandas dataframe'ine okuyarak ön işleme aşamasında kolayca değiştirip manipüle edebiliriz.

Şimdi, veri setini iki parçaya ayırmaya başlayacağız: x ve y. “Sonuç”u tahmin etmek istediğimiz için, 0 diyabet yok ve 1 diyabet olmak üzere , x değişkenimiz “Sonuç” dışındaki tüm verileri içerecek, y değişkenimiz ise sadece “Sonuç” değerlerini saklayacaktır.

Ardından, x değişkenini %80 x_train ve %20 x_test olarak bölmek için Train Test Split modelini nihayet kullanacağız . Aynı şey y değişkeni için de yapılacaktır: %80 y_train ve %20 y_test .

Gerçekte ne olduğunu kontrol etmek için, bu makalenin başından bu yana verilerin nasıl değiştiğini görmek için trenlerde ve testlerde .head() veya .shape çalıştırabiliriz.

Tahmin Modeli Geliştirme

Veri setinin dört parçaya bölünmesini tamamlayarak, şimdi bir tahmin modeli geliştirerek sürecin 2. aşamasına başlayacağız. Bu durumda olduğu gibi birden çok faktöre dayalı sınıflandırma tahminleri için harika olan Random Forest Classifier modelini tahminlerimiz için kullanacağız .

Öncelikle Random Forest Classifier modelimizi sklearn'den import edeceğiz. Daha sonra model adını tanımladıktan sonra, veri kümesinin x_train ve y_train ile eğitilecek, böylece x_train içindeki birçok farklı bağımsız değişken ile y_train içindeki "Outcome" değişkeni arasındaki kalıpları ve eğilimleri bulabilecektir . Eğitim süreci bittikten sonra, girilen x_test verilerimizin "Sonucunu" tahmin etmek için eğitilmiş modelimizi , y_test verilerini vermeden kullanacağız . İşte tüm bunlar için kod:

y_pred değişkeninde saklanan tahminlerle, verilen x-_test verileri için tahminlerimizin ne kadar doğru olduğunu, y_test'in gerçek sonuçlarıyla karşılaştırarak görmek isteriz. Sklearn kitaplığından alınan ölçümleri kullanarak, modelimizin tahminlerinde yaklaşık %81 oranında doğru olduğunu görüyoruz.

Not: En karmaşık tahmin modelleri gibi Radom Orman Sınıflandırıcı modeli, büyük veri kümeleri için tasarlanmıştır. Eğitilecek ve öğrenilecek daha fazla veri uygulayabildiğinden, işlevi ve tahminleri "daha büyük" verilerle çok daha doğrudur, bu da daha iyi tahminler ve daha fazla doğruluk sağlar.

Veri analizi

Projenin son adımında, veriler ve tahmin modelimiz hakkında daha fazla bilgi edinmek için bazı veri analizleri yapmak istiyoruz. İlk olarak, tahminlerimiz ve nerede yanlış gittiği hakkında daha ayrıntılı bilgi edinmek için sklearn'den bir Karışıklık Matrisi kullanacağız . Aşağıdaki veri analitiğinin çalışması için seaborn ve matplotlib kitaplıklarını pip ile yüklememiz ve içe aktarmamız gerekecek.

Burada görebileceğimiz gibi, Karışıklık Matrisi bize modelimizin bir şeyi kaç kez doğru ve yanlış tahmin ettiğini söyler. Ek olarak, Karışıklık Matrisi, model tarafından yapılan yanlış pozitifleri ve yanlış negatifleri gösterir ve bu hataları yeniden düzeltmek için daha fazla veriye ihtiyaç duyduğu sonucuna varır.

Diğer bir veri analiz tekniği , diyabeti öngörmede hangi bağımsız değişkenlerin en önemli olduğunu belirlemek için Özellik Önem Puanlarını kullanmaktır . Özellik önemli puanı ne kadar yüksek olursa, değişkenin diyabetin "Sonucu" üzerindeki etkisinin o kadar büyük olduğu anlamına gelir.

Bu verileri grafiksel olarak göstermek için:

Çözüm

İşte bu yazıda, Train Test Split modelini kullanarak bir csv dosyası veri setini 4 farklı bölüme nasıl ayıracağımızı öğrendik, onu eğiterek ve test ederek bir tahmin modeli oluşturduk ve ayrıca eldeki tahminleri anlamak için birkaç veri analizi tekniğinden yararlandık. .