Makine öğrenmesi modeli kullanarak öğrenci sınav puanlarını tahmin eden web uygulaması.
Bu proje, öğrencilerin çeşitli yaşam alışkanlıklarını ve özelliklerini kullanarak sınav puanlarını tahmin eden bir Gradient Boosting Regression modelini içerir. FastAPI ile oluşturulmuş modern web arayüzü ile kolay kullanılabilir.
- ✅ Gerçek Zamanlı Tahmin: Öğrenci verilerini girerek anlık sınav puanı tahmini
- ✅ Saat Validasyonu: Günlük saat toplamı 24'ü geçmemesini kontrol eder
- ✅ Responsive Tasarım: Tüm cihazlarda güzel görünüm
- ✅ Koyu Tema: Göz yormayan modern arayüz
- ✅ Hata Yönetimi: Kullanıcı dostu hata mesajları
Modelin eğitim verileri üzerinde elde ettiği performans metrikleri aşağıdadır:
| Metrik | Değer | Açıklama |
|---|---|---|
| R² (Belirlilik Katsayısı) | Modelin varyansın yaklaşık %88.5'ini açıkladığını gösterir. 1'e yakın olması, modelin verilere iyi oturduğunu belirtir. | |
| RMSE (Kök Ortalama Karesel Hata) | Tahmin edilen puanlar ile gerçek puanlar arasındaki ortalama farkın standart sapmasıdır. Düşük olması tahminlerin gerçek değerlere yakın olduğunu gösterir. |
pip install -r requirements.txtVeya manuel olarak:
pip install fastapi uvicorn scikit-learn pandas joblib jinja2python main.pyBu komut ogrenci_basari_modeli.pkl dosyasını oluşturacaktır.
uvicorn app:app --reloadTarayıcınızda açın: http://127.0.0.1:8000
task8/
├── main.py # Model eğitim dosyası
├── app.py # FastAPI uygulaması
├── student_habits_performance.csv # Eğitim veri seti (gitignore'da)
├── ogrenci_basari_modeli.pkl # Eğitilmiş model (gitignore'da)
├── templates/
│ └── index.html # Web arayüzü
└── README.md # Bu dosya
- Yaş: 15-25 arası
- Günlük Çalışma Saati: 0-8 saat
- Sosyal Medya Saati: 0-8 saat
- Netflix Saati: 0-8 saat
- Uyku Saati: 0-12 saat
- Devam Oranı: 0-100%
- Egzersiz Sıklığı: 0-7 (haftada kaç gün)
- Mental Sağlık Puanı: 1-10
- Cinsiyet: Erkek / Kadın
- Yarı Zamanlı İş: Evet / Hayır
- Diyet Kalitesi: Kötü / İyi / Çok İyi
- Parental Eğitim Seviyesi: Lise / Lisans / Yüksek Lisans
- İnternet Kalitesi: Zayıf / Orta / İyi
- Ders Dışı Aktiviteler: Evet / Hayır
- Saat Validasyonu: Günlük saatlerin toplamı 24'ü geçemez
- Puan Sınırı: Tahmin edilen puan 100'ü geçerse 100 olarak gösterilir
- Veri Seti:
.csvdosyası gitignore'da olduğu için proje klonlandığında modeli yeniden eğitmeniz gerekir
- Backend: FastAPI, Uvicorn
- ML: scikit-learn, pandas, joblib
- Frontend: HTML5, CSS3, JavaScript
- Model: Gradient Boosting Regressor
- Web sitesine erişin
- Öğrenci bilgilerini doldurun
- Tüm saatlerin toplamının 24'ü geçmediğini kontrol edin
- "Tahmini Yap" butonuna tıklayın
- Tahmin edilen sınav puanını görün
Model, student_habits_performance.csv dosyasından öğrenci alışkanlıkları ve sınav puanları verilerine dayanarak eğitilmiştir.
Bu proje eğitim amaçlı oluşturulmuştur.