Skip to content

Repository files navigation

CBU KOU HITU

Proje Başlığı Animasyonu

Kocaeli Üniversitesi, Manisa Celal Bayar Üniversitesi ve Hitit Üniversitesi öğrencileri işbirliği ile geliştirilmiştir.

Python Machine Learning Data Academic Research


Proje Hakkında

Bu proje, kanser taraması, risk faktörlerinin tespiti ve erken teşhis süreçlerini optimize etmek amacıyla geliştirilmiş bir makine öğrenmesi araştırmasıdır. Hastaların demografik bilgileri, yaşam tarzı alışkanlıkları ve genel sağlık durumlarına ilişkin veriler analiz edilerek, bireylerin kanser riski taşıyıp taşımadığı veya kanser tarama programlarına uyum gösterip göstermeyeceği tahmin edilmektedir.

Üç farklı üniversitenin bilgi birikimi ve işbirliği ile disiplinlerarası bir akademik çalışma olarak hayata geçirilen bu proje, koruyucu hekimlik politikaları için veri odaklı bir karar destek mekanizması sunmayı hedeflemektedir.

English Documentation

Veri Seti: 2024 BRFSS (SAS Transport Format)

Çalışmamızda CDC (Centers for Disease Control and Prevention) tarafından yayınlanan 2024 BRFSS (Behavioral Risk Factor Surveillance System veri seti kullanılmıştır.

  • İçerik: 7. grubun konusu olan kanser araştırmaya göre başından sonuna kadar temizlenmiş veri setinde genel olarak pek çok kanser türleri, sigara/alkol tüketimi, fiziksel aktivite, kronik hastalık geçmişi ve sosyodemografik anket cevapları bulunmaktadır.
  • Veri Boyutu: Hem işlenmiş hem de orjinal veri setleri oldukça büyük hacimli olduğundan GitHub reposunda değil, grubumuzun drive adresinde barındırılmaktadır (Bkz. data/drive.txt).

Metodoloji

Tabular anket verilerinden anlamlı sonuçlar üretebilmek için aşağıdaki veri bilimi boru hattı (pipeline) izlenmiştir:

  1. Veri Hazırlığı: CDC BRFSS 2024 veri setinin Codebook'u, veri mimarlarınca detaylıca incelenmiş olup, proje konusu kapsamında ana ve bağımsız değişkenler üzerinde tartışılmıştır.
CHCOCNC1

resim 1.0 - Ana Değişken CHCOCNC1

SMOKE100

resim 2.0 - Yan Değişken Örn. SMOKE100

  1. Veri Ön İşleme (Data Preprocessing):

    • Ana değişkenin belirlenmesi: Konumuz olan kanser taramaya yönelik değişken seçimimiz için veri setinde geniş kitleye hitap eden ve potansiyel yan değişken verilerinin en çok korelasyon gösterebileceği verinin "CHCOCNC1" olduğuna kanaat getirdik.
    • Özellik Mühendisliği (Feature Engineering): Genel kanser teşhisi ile en çok korelasyon gösteren demografik ve davranışsal özelliklerin (Örn: _AGEG5YR, SMOKE100, CHCSCNCR) seçilmesi.
    • Seçilen Ana ve Bağımlı Değişkenler:
    Ana Değişkenler:
    CHCOCNC1: Melanom veya herhangi bir kanser teşhisi konuldu mu? (30 kategori)
    
    Bağımsız Değişkenler:
    CHCSCNC1: Cilt kanseri veya melanom teşhisi konuldu mu?
    CHECKUP1: Rutin kontrolünüz için en son ne zaman doktora gittiniz?
    _AGEG5YR: Kaç yaşınızdasınız? (14 kategori)
    SMOKE100: Hayatınız boyunca en az 100 sigara içtniz mi?
    DIABETE4: Daha önce diyabet teşhisi konuldu mu?
    EXERANY2: Geçtiğimiz ay boyunca, işiniz hariç, fiziksel aktivite veya egzersiz yaptınız mı?
    ASTHMA3:  Daha önce astım teşhisi konuldu mu?
    CHCKDNY2: Size hiç Böbrek taşı, mesane enfeksiyonu veya idrar kaçırmak hariç böbrek hastalığı teşhisi konuldu mu?
    HAVARTH4: Size hiç artrit, romatoid artrit, gut, lupus veya fibromiyalji gibi bir rahatsızlığınız olduğu söylendi mi?
    CVDINFR4: Daha önce kalp krizi (miyokard enfarktüsü) geçirdiniz mi?
    PERSDOC3: Bir veya bir grup doktorun kişisel sağlık sağlayıcınız olduğunu düşünüyor musunuz?
    _RFHLTH:  Sağlık durum sorusu
    INCOME3:  Tüm gelir kaynaklarınızdan gelen yllık geliriniz ne kadar? (11 kategori)
    EDUCA:    Tamamladığınız en yüksek eğitim durumunuz nedir?
    _BMI5CAT: Vücut Kitle Endeksiniz nedir? (4 categories of BMI)
    
  2. Veri Okuma ve Dönüştürme:

    • .xpt formatındaki verilerin Python ortamına aktarılması ve Pandas DataFrame formatına dönüştürülmesi.
    • BRFSS özelindeki "Bilmiyorum/Reddedildi" (bkz. resim 1.0 7, 9. değerler) yanıtlarının eksik veri (NaN) olarak ele alınması.
    • İkili yanıtlara sahip değişken değerlerinin, öğrenme performansı açısından 1 ve 0'lar şeklinde yeniden değiştirilmesi.
    • Hedef değişkenin (kanser tanısı / tarama durumu) belirlenmesi ve sınıf dengesizliklerinin (Cost-Sensitive Learning, ) giderilmesi.
  3. Modelleme: Tabular verilerde yüksek performans gösteren Lojistik Regresyon, Bayesyen Yaklaşım ve Yapay Sinir Ağları kullanılarak oluşturulan modellerin eğitilmesi:

  4. Değerlendirme (Evaluation): Modeller; Doğruluk (Accuracy), Hassasiyet (Precision), Duyarlılık (Recall), F1-Skoru ve ROC-AUC metrikleri ile istatistiksel olarak ölçülmüş ve birbirleriyle kıyaslanmıştır.


Mimari

cancer-screening-ml-project/
│
├── data/               # CDC BRFSS ham ve düzenlenmiş (.csv) veri setleri
├── notebooks/          # Veri Analiz Bulguları (EDA) ve prototip modelleme Jupyter Notebook'ları
├── src/                # Model pipeline, veri ön işleme, eğitim ve tahmin Python betikleri
├── docs/               # Araştırma raporu, proje yönergeleri, CDC Codebook
├── variables_codebook/ # Veri mimarlarınca Codebook'dan ekran görüntüsü alınmış anket verileri
├── .gitignore          # Git takibinden dışlanacak gereksiz ve büyük dosyalar
├── .gitkeep            # Boş klasör yapılarının korunması için komut
├── README.md           # Proje tanıtımı
├── requirements.txt    # Python betikleri için gerekli kütüphanele
└── extras              # Proje hakkında ekstra bilgilendirmeler

Kurulum ve Kullanım

  1. Repoyu Klonlayın ve Kütüphaneleri Yükleyin:
git clone [https://github.com/KULLANICI_ADI/cancer-screening-ml-project.git](https://github.com/KULLANICI_ADI/cancer-screening-ml-project.git)
cd cancer-screening-ml-project
pip install -r requirements.txt
  1. Veri Setini Ekleyin: Dosya boyutu kısıtlamaları nedeniyle veri seti GitHub'da yoktur. data/drive.txt içindeki bağlantıdan X_train, X_test, y_train ve y_test dosyalarını indirip data/ klasörüne koyun.

  2. Modelleri Çalıştırın: Modelleri baştan eğitmek için src/ klasöründeki betikleri kullanabilirsiniz:

python src/logistic_regression.py
python src/naive_bayes.py
python src/ann_model_training.py
(Not: Hazır sonuçları ve grafikleri görmek için notebooks/ klasöründeki Jupyter dosyalarını inceleyebilirsiniz.)
Flag_of_Turkey svg

About

Kocaeli, Hitit ve Celal Bayar üniversitelerinin "Makine Öğrenmesinin İlkeleri" dersi dönem sonu projesinden sorumlu 7. Grubun makine öğrenmesi projesidir.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages