Kocaeli Üniversitesi, Manisa Celal Bayar Üniversitesi ve Hitit Üniversitesi öğrencileri işbirliği ile geliştirilmiştir.
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.
Ç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).
Tabular anket verilerinden anlamlı sonuçlar üretebilmek için aşağıdaki veri bilimi boru hattı (pipeline) izlenmiştir:
- 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.
-
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) -
Veri Okuma ve Dönüştürme:
.xptformatı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.
-
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:
-
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.
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
- 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
-
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.
-
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.)



