| Dersin Kodu | Dersin Adı | Dersin Türü | Yıl | Yarıyıl | AKTS |
|---|---|---|---|---|---|
| BGT-219 | VERİ MADENCİLİĞİ VE MAKİNE ÖĞRENMESİ ALGORİTMALARI | Seçmeli Ders Grubu | 2 | 3 | 2,00 |
Önlisans
Türkçe
Bu dersin temel amacı, öğrencilere veri madenciliği ve makine öğrenmesi algoritmalarının teorik temellerini ve pratik uygulamalarını kapsamlı bir şekilde aktarmaktır. Ders, veriden bilgi keşfi sürecini (KDD) temel alarak; büyük veri setlerinin analizi, örüntü tanıma ve tahminleyici modellerin geliştirilmesi konularında yetkinlik kazandırmayı hedefler. Öğrencilerin, modern yapay zeka araçlarını ve özellikle Python programlama dilini kullanarak, gerçek dünya problemlerine veri odaklı çözümler üretebilmesi amaçlanmaktadır. Ayrıca, Google Colab gibi bulut tabanlı geliştirme ortamlarının etkin kullanımı ile algoritmik düşünme becerilerinin geliştirilmesi ve bilimsel etik çerçevesinde veri analizi yapabilme yetisinin kazandırılması hedeflenmektedir. Bu süreçte, denetimli ve denetimsiz öğrenme tekniklerinin matematiksel altyapısı ile bunların endüstriyel uygulamaları arasındaki köprünün kurulması esas alınmıştır.
Öğr. Gör. Süleyman Ezdemir
| 1 | Yapay zeka, veri madenciliği ve makine öğrenmesi temel kavramlarını tanımlar ve aralarındaki ilişkiyi açıklar. |
| 2 | Python ve ilgili kütüphaneleri kullanarak ham veriyi analize hazır hale getirmek için ön işleme tekniklerini uygular. |
| 3 | Problemin türüne (sınıflandırma, regresyon, kümeleme) uygun makine öğrenmesi algoritmasını seçer ve modeller. |
| 4 | Geliştirilen modellerin performansını uygun metriklerle (doğruluk, hata matrisi vb.) ölçer ve sonuçları yorumlar. |
| 5 | Veri bilimi projelerini etik kurallar çerçevesinde planlar, geliştirir ve raporlar. |
Birinci Öğretim
Yok
Bu dersi alacak öğrencilerin temel düzeyde olasılık ve istatistik bilgisine sahip olmaları, algoritmaların matematiksel temellerini (özellikle matris operasyonları ve türev) kavramaları açısından önem arz etmektedir. Ayrıca, algoritma ve programlama mantığına aşina olunması, kodlama egzersizlerinde öğrenme eğrisini hızlandıracaktır. Öğrencilerin ders dışı zamanlarda açık kaynaklı veri platformlarını (Kaggle, UCI Machine Learning Repository) incelemeleri ve sektördeki güncel gelişmeleri takip etmeleri önerilmektedir. İşletim sistemi fark etmeksizin kişisel bilgisayarlarında Python ortamının kurulu olması veya bulut tabanlı servislere (Google Drive/Colab) erişimlerinin bulunması, uygulamaların sürekliliği açısından kritik öneme sahiptir.
Ders içeriği, yapay zekanın tarihsel gelişimi ve temel kavramlarından başlayarak, veri madenciliği süreçlerinin tüm aşamalarını kapsamaktadır. İlk haftalarda Python programlama dili, kütüphaneler (NumPy, Pandas, Matplotlib) ve geliştirme ortamları (Google Colab, Anaconda) üzerinde durulmaktadır. Devamında; veri ön işleme, eksik veri analizi, aykırı değer tespiti ve öznitelik mühendisliği konuları işlenmektedir. Dersin çekirdek kısmını ise makine öğrenmesi algoritmaları oluşturmaktadır; Lineer ve Lojistik Regresyon, K-En Yakın Komşu (KNN), Destek Vektör Makineleri (SVM), Karar Ağaçları ve Rastgele Ormanlar (Random Forests) gibi denetimli öğrenme yöntemleri detaylandırılmaktadır. Ayrıca, K-Ortalamalar (K-Means) ve Hiyerarşik Kümeleme gibi denetimsiz öğrenme yöntemleri ile model başarı değerlendirme metrikleri (Accuracy, Precision, Recall, F1-Score) ve ROC analizi gibi konular ele alınarak, öğrencilerin uçtan uca bir makine öğrenmesi projesi geliştirmesi sağlanmaktadır.
| Hafta | Teorik | Uygulama | Laboratuvar |
|---|---|---|---|
| 1 | Yapay Zekaya Giriş ve Yol Haritası. Yapay zekanın tanımı, tarihçesi ve alt dalları (Makine Öğrenmesi, Derin Öğrenme). Yapay zeka ve veri madenciliği arasındaki ilişki. Dersin amacı ve dönem boyunca izlenecek yol haritasının detaylandırılması. | Ders kaynaklarına erişim, GitHub kullanımı ve topluluk oluşturma süreçlerinin tanıtımı. Öğrencilerin beklentilerinin alınması ve motivasyon konuşması. | Öğrencilerin gerekli hesapları (Google, GitHub, Kaggle) oluşturması ve dersin iletişim kanallarına (Discord vb.) katılım sağlaması. |
| 2 | Geliştirme Ortamları ve Python Temelleri. Google Colab ve Jupyter Notebook mimarisi. Bulut tabanlı çalışmanın avantajları. Anaconda dağıtımı ve yerel kurulum süreçleri. Temel Python sözdizimi ve veri tipleri. | Google Colab arayüzünün tanıtımı. İlk "Merhaba Dünya" ve temel matematiksel işlemlerin notebook üzerinde gerçekleştirilmesi. | Öğrencilerin kendi Colab ortamlarını kurmaları, Drive bağlantılarını yapmaları ve basit Python scriptlerini çalıştırmaları. |
| 3 | Veri Bilimi İçin Python Kütüphaneleri: NumPy ve Pandas. Çok boyutlu diziler, matris işlemleri ve vektörizasyon mantığı. Veri çerçeveleri (DataFrames) ile yapısal veri manipülasyonu temelleri. | NumPy ile dizi oluşturma ve işlem yapma örnekleri. Pandas ile harici dosya (CSV, Excel) okuma ve basit veri filtreleme işlemleri. | Verilen ham veri seti üzerinde NumPy ve Pandas fonksiyonlarını kullanarak temel istatistiksel özetlerin çıkarılması. |
| 4 | Veri Görselleştirme Teknikleri. Veriyi görselleştirmenin önemi ve insan algısındaki yeri. Matplotlib ve Seaborn kütüphanelerinin temel grafikleri (Scatter, Line, Histogram, Boxplot). | (TR): Farklı veri tipleri için uygun grafik türlerinin seçilmesi ve kodlanması. Grafiklerin özelleştirilmesi (başlık, etiket, renk paletleri). | Öğrencilerin bir veri seti üzerinde keşifsel veri analizi (EDA) yaparak verinin dağılımını görselleştirmeleri. |
| 5 | Veri Ön İşleme ve Temizleme (Data Preprocessing). Eksik verilerin (Missing Values) analizi ve doldurma yöntemleri. Aykırı değer (Outlier) tespiti. Kategorik verilerin sayısal verilere dönüşümü (Encoding). | Scikit-learn preprocessing modülünün kullanımı. Label Encoder ve One-Hot Encoding uygulamaları. Eksik verilerin ortalama/medyan ile doldurulması. | Kirli ve eksik veriler içeren gerçek bir veri setinin temizlenerek makine öğrenmesi modeline hazır hale getirilmesi. |
| 6 | Gözetimli Öğrenme: Regresyon Analizi. Basit ve Çoklu Doğrusal Regresyon (Linear Regression). Bağımlı ve bağımsız değişken ilişkisi. En küçük kareler yöntemi. | Konut fiyat tahmini veya satış tahmini gibi sürekli değişken içeren bir problem üzerinde regresyon modelinin kurulması. | Regresyon modelinin hata metriklerinin (MSE, RMSE, R-Kare) hesaplanması ve model başarısının yorumlanması. |
| 7 | Gözetimli Öğrenme: Sınıflandırma Problemleri ve Lojistik Regresyon. Sınıflandırma mantığı, Sigmoid fonksiyonu, karar sınırları. İkili (Binary) sınıflandırma. | Bir veri seti (örneğin diyabet teşhisi veya spam tespiti) üzerinde Lojistik Regresyon modelinin eğitilmesi. | Sınıflandırma sonuçlarının Hata Matrisi (Confusion Matrix) üzerinden incelenmesi. |
| 8 | K-En Yakın Komşu Algoritması (KNN). Uzaklık metrikleri (Euclidean, Manhattan). "K" parametresinin seçimi ve model üzerindeki etkisi. Tembel öğrenme (Lazy Learning) kavramı. | Farklı K değerleri ile KNN modelinin başarısının karşılaştırılması ve görselleştirilmesi. | KNN algoritması kullanılarak çok sınıflı bir sınıflandırma probleminin çözülmesi (örn: İris çiçeği türleri). |
| 9 | Karar Ağaçları (Decision Trees) ve Rastgele Ormanlar (Random Forests). Bilgi kazancı (Information Gain), Entropi ve Gini indeksi kavramları. Aşırı öğrenme (Overfitting) ve budama. | Karar ağacı yapısının görselleştirilmesi. Random Forest algoritması ile modelin genelleme yeteneğinin artırılması. | Karar ağaçlarında hiperparametre optimizasyonu yaparak en iyi modelin bulunması. |
| 10 | Destek Vektör Makineleri (SVM). Hiper düzlem (Hyperplane), marjin kavramı ve çekirdek hilesi (Kernel Trick). Doğrusal olmayan verilerin sınıflandırılması. | SVM kullanarak karmaşık veri yapılarının ayrıştırılması. Linear ve RBF kernel farklarının incelenmesi. | SVM modelinin parametrelerinin (C, gamma) ayarlanması ve model performansına etkisinin analizi. |
| 11 | Gözetimsiz Öğrenme: Kümeleme Analizi (Clustering). K-Ortalamalar (K-Means) algoritması. Küme merkezlerinin belirlenmesi. Dirsek yöntemi (Elbow Method) ile optimum küme sayısının bulunması. | Etiketsiz bir müşteri verisi üzerinde segmentasyon (müşteri gruplama) çalışmasının yapılması. | K-Means algoritması ile oluşturulan kümelerin görselleştirilmesi ve yorumlanması. |
| 12 | Model Değerlendirme ve İyileştirme. Cross-Validation (Çapraz Doğrulama) teknikleri. Bias-Variance dengesi. Modelin başarısını artırmak için Grid Search ve Random Search yöntemleri. | Scikit-learn kütüphanesi ile K-Fold Cross Validation uygulaması. Grid Search ile en iyi parametrelerin otomatik bulunması. | Önceki haftalarda kurulan modellerin optimize edilerek performanslarının artırılması çalışmaları. |
| 13 | Yapay Sinir Ağlarına (YSA) ve Derin Öğrenmeye Giriş. Biyolojik nöron ve yapay nöron analojisi. Perceptron, aktivasyon fonksiyonları ve çok katmanlı mimariler. | Basit bir yapay sinir ağının TensorFlow/Keras veya Scikit-learn MLPClassifier kullanılarak modellenmesi. | Sinir ağının katman sayısı ve nöron sayısının değiştirilerek sonuçların gözlemlenmesi. |
| 14 | Proje Sunumları, Etik ve Gelecek. Yapay zeka etiği, yanlılık (bias) ve veri gizliliği. Dönem değerlendirmesi ve yapay zekanın gelecekteki rolü. | Öğrencilerin dönem boyunca geliştirdikleri bitirme projelerinin sunumu ve tartışılması. | Proje kodlarının son kontrolleri, GitHub repolarının düzenlenmesi ve proje raporlarının teslimi. |
Ana Kaynak: Ders Notları ve Kod Deposu: github.com/ezfesoft Önerilen Ek Kaynaklar: Scikit-Learn Documentation: https://scikit-learn.org/stable/ (Resmi kütüphane dokümantasyonu) Kaggle: https://www.kaggle.com/learn (Pratik veri setleri ve notebooklar için) Papers with Code: https://paperswithcode.com/ (Akademik makaleler ve kod uygulamaları) Google AI Blog: https://ai.googleblog.com/ (Güncel yapay zeka gelişmeleri) Coursera / edX: Andrew Ng - Machine Learning Specialization (Tamamlayıcı teorik videolar)
Ders, hibrit bir pedagojik yaklaşımla yürütülmektedir. Teorik kısımlarda, kavramsal çerçeve ve algoritmaların matematiksel ispatları sunuş yoluyla anlatılmaktadır. Bu süreci, "yaparak öğrenme" modelini temel alan laboratuvar uygulamaları takip etmektedir. Öğretim yöntemleri arasında; anlatım, soru-cevap, canlı kodlama (live-coding), vaka analizi (case study) ve proje tabanlı öğrenme yer almaktadır. Öğrenciler, haftalık olarak verilen veri setleri üzerinde, öğrenilen algoritmaları uygulayarak sonuçları yorumlamakta ve raporlamaktadır. Ayrıca, dönem sonunda öğrencilerin kendi seçtikleri veya atanan bir problem üzerine özgün bir makine öğrenmesi projesi geliştirmeleri ve sunmaları planlanan etkinlikler arasındadır.
| Yarıyıl (Yıl) İçi Etkinlikleri | Adet | Değer |
|---|---|---|
| Ara Sınav | 1 | 100 |
| Toplam | 100 | |
| Yarıyıl (Yıl) Sonu Etkinlikleri | Adet | Değer |
| Final Sınavı | 1 | 100 |
| Toplam | 100 | |
| Yarıyıl (Yıl) İçi Etkinlikleri | 40 | |
| Yarıyıl (Yıl) Sonu Etkinlikleri | 60 | |
Bu ders kapsamında zorunlu bir staj uygulaması bulunmamaktadır. Ancak, derste edinilen teorik ve pratik kazanımlar, öğrencilerin yaz stajlarında veya yarı zamanlı çalışmalarında veri analisti, yapay zeka mühendisi veya veri bilimci adayları olarak görev alabilmeleri için gerekli altyapıyı sağlamaktadır. Öğrencilerin, ders sürecinde geliştirecekleri projeleri GitHub gibi platformlarda portfolyo olarak sunmaları, staj ve iş başvurularında önemli bir avantaj sağlayacaktır. Sektörel işbirlikleri kapsamında önerilen opsiyonel stajlar, teorik bilginin pekiştirilmesi açısından teşvik edilmektedir.
| Etkinlikler | Sayısı | Süresi (saat) | Toplam İş Yükü (saat) |
|---|---|---|---|
| Ara Sınav | 1 | 1 | 1 |
| Final Sınavı | 1 | 1 | 1 |
| Derse Katılım | 14 | 2 | 28 |
| Laboratuvar | 14 | 1 | 14 |
| Ara Sınav İçin Bireysel Çalışma | 1 | 8 | 8 |
| Final Sınavı içiin Bireysel Çalışma | 1 | 8 | 8 |
| Toplam İş Yükü (saat) | 60 | ||
| PÇ 1 | PÇ 2 | PÇ 3 | PÇ 4 | PÇ 5 | PÇ 6 | PÇ 7 | PÇ 8 | PÇ 9 | PÇ 10 | PÇ 11 | PÇ 12 | PÇ 13 | PÇ 14 | PÇ 15 | PÇ 16 | PÇ 17 | PÇ 18 | PÇ 19 | PÇ 20 | PÇ 21 | PÇ 22 | PÇ 23 | PÇ 24 | |
| ÖÇ 1 | ||||||||||||||||||||||||
| ÖÇ 2 | ||||||||||||||||||||||||
| ÖÇ 3 | ||||||||||||||||||||||||
| ÖÇ 4 | ||||||||||||||||||||||||
| ÖÇ 5 |