12 KiB
AGENTS.md
Proje Genel Bakış
Bu, Yeni Başlayanlar için Makine Öğrenimi adlı, Python (özellikle Scikit-learn) ve R kullanarak klasik makine öğrenimi kavramlarını kapsayan 12 haftalık, 26 derslik kapsamlı bir müfredattır. Depo, kendi hızınızda öğrenebileceğiniz, uygulamalı projeler, testler ve ödevler içeren bir kaynak olarak tasarlanmıştır. Her ders, dünya çapındaki farklı kültürlerden ve bölgelerden alınan gerçek dünya verileriyle ML kavramlarını keşfeder.
Ana bileşenler:
- Eğitim İçeriği: ML'ye giriş, regresyon, sınıflandırma, kümeleme, NLP, zaman serileri ve pekiştirmeli öğrenmeyi kapsayan 26 ders
- Test Uygulaması: Ders öncesi ve sonrası değerlendirmelerle Vue.js tabanlı test uygulaması
- Çok Dilli Destek: GitHub Actions aracılığıyla 40'tan fazla dile otomatik çeviri
- Çift Dil Desteği: Dersler hem Python (Jupyter not defterleri) hem de R (R Markdown dosyaları) olarak sunuluyor
- Proje Tabanlı Öğrenme: Her konu pratik projeler ve ödevler içerir
Depo Yapısı
ML-For-Beginners/
├── 1-Introduction/ # ML basics, history, fairness, techniques
├── 2-Regression/ # Regression models with Python/R
├── 3-Web-App/ # Flask web app for ML model deployment
├── 4-Classification/ # Classification algorithms
├── 5-Clustering/ # Clustering techniques
├── 6-NLP/ # Natural Language Processing
├── 7-TimeSeries/ # Time series forecasting
├── 8-Reinforcement/ # Reinforcement learning
├── 9-Real-World/ # Real-world ML applications
├── quiz-app/ # Vue.js quiz application
├── translations/ # Auto-generated translations
└── sketchnotes/ # Visual learning aids
Her ders klasörü genellikle şunları içerir:
README.md
- Ana ders içeriğinotebook.ipynb
- Python Jupyter not defterisolution/
- Çözüm kodu (Python ve R versiyonları)assignment.md
- Uygulama alıştırmalarıimages/
- Görsel kaynaklar
Kurulum Komutları
Python Dersleri İçin
Çoğu ders Jupyter not defterlerini kullanır. Gerekli bağımlılıkları yükleyin:
# Install Python 3.8+ if not already installed
python --version
# Install Jupyter
pip install jupyter
# Install common ML libraries
pip install scikit-learn pandas numpy matplotlib seaborn
# For specific lessons, check lesson-specific requirements
# Example: Web App lesson
pip install flask
R Dersleri İçin
R dersleri solution/R/
klasörlerinde .rmd
veya .ipynb
dosyaları olarak bulunur:
# Install R and required packages
# In R console:
install.packages(c("tidyverse", "tidymodels", "caret"))
Test Uygulaması İçin
Test uygulaması quiz-app/
dizininde bulunan bir Vue.js uygulamasıdır:
cd quiz-app
npm install
Dokümantasyon Sitesi İçin
Dokümantasyonu yerel olarak çalıştırmak için:
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
Geliştirme İş Akışı
Ders Not Defterleriyle Çalışma
- Ders dizinine gidin (ör.
2-Regression/1-Tools/
) - Jupyter not defterini açın:
jupyter notebook notebook.ipynb
- Ders içeriği ve alıştırmalar üzerinde çalışın
- Gerekirse
solution/
klasöründeki çözümleri kontrol edin
Python Geliştirme
- Dersler standart Python veri bilimi kütüphanelerini kullanır
- Etkileşimli öğrenme için Jupyter not defterleri
- Her dersin
solution/
klasöründe çözüm kodu mevcuttur
R Geliştirme
- R dersleri
.rmd
formatındadır (R Markdown) - Çözümler
solution/R/
alt dizinlerinde bulunur - RStudio veya R çekirdeği ile Jupyter kullanarak R not defterlerini çalıştırabilirsiniz
Test Uygulaması Geliştirme
cd quiz-app
# Start development server
npm run serve
# Access at http://localhost:8080
# Build for production
npm run build
# Lint and fix files
npm run lint
Test Talimatları
Test Uygulaması Testi
cd quiz-app
# Lint code
npm run lint
# Build to verify no errors
npm run build
Not: Bu öncelikle bir eğitim müfredatı deposudur. Ders içeriği için otomatik testler yoktur. Doğrulama şu yollarla yapılır:
- Ders alıştırmalarını tamamlama
- Not defteri hücrelerini başarıyla çalıştırma
- Çözümlerdeki beklenen sonuçlarla çıktıyı karşılaştırma
Kod Stili Yönergeleri
Python Kodu
- PEP 8 stil yönergelerini takip edin
- Açık ve açıklayıcı değişken adları kullanın
- Karmaşık işlemler için yorumlar ekleyin
- Jupyter not defterlerinde kavramları açıklayan markdown hücreleri bulunmalıdır
JavaScript/Vue.js (Test Uygulaması)
- Vue.js stil rehberini takip eder
quiz-app/package.json
içinde ESLint yapılandırması- Sorunları kontrol etmek ve otomatik düzeltmek için
npm run lint
çalıştırın
Dokümantasyon
- Markdown dosyaları açık ve iyi yapılandırılmış olmalıdır
- Çitlenmiş kod bloklarında kod örnekleri ekleyin
- Dahili referanslar için göreceli bağlantılar kullanın
- Mevcut biçimlendirme kurallarını takip edin
Derleme ve Dağıtım
Test Uygulaması Dağıtımı
Test uygulaması Azure Static Web Apps'e dağıtılabilir:
-
Ön Koşullar:
- Azure hesabı
- GitHub deposu (zaten çatallanmış)
-
Azure'a Dağıtım:
- Azure Static Web App kaynağı oluşturun
- GitHub deposuna bağlanın
- Uygulama konumunu ayarlayın:
/quiz-app
- Çıktı konumunu ayarlayın:
dist
- Azure otomatik olarak GitHub Actions iş akışı oluşturur
-
GitHub Actions İş Akışı:
- İş akışı dosyası
.github/workflows/azure-static-web-apps-*.yml
konumunda oluşturulur - Ana dalda yapılan değişikliklerde otomatik olarak derlenir ve dağıtılır
- İş akışı dosyası
Dokümantasyon PDF
Dokümantasyondan PDF oluşturun:
npm install
npm run convert
Çeviri İş Akışı
Önemli: Çeviriler GitHub Actions aracılığıyla Co-op Translator kullanılarak otomatik yapılır.
- Çeviriler
main
dalına yapılan değişikliklerde otomatik olarak oluşturulur - İçeriği manuel olarak çevirmeyin - sistem bunu otomatik olarak yapar
- İş akışı
.github/workflows/co-op-translator.yml
içinde tanımlanmıştır - Çeviri için Azure AI/OpenAI hizmetlerini kullanır
- 40'tan fazla dili destekler
Katkı Yönergeleri
İçerik Katkıcıları İçin
- Depoyu çatallayın ve bir özellik dalı oluşturun
- Ders içeriğinde değişiklik yapın (ders ekliyorsanız/güncelliyorsanız)
- Çevrilmiş dosyaları değiştirmeyin - bunlar otomatik olarak oluşturulur
- Kodunuzu test edin - tüm not defteri hücrelerinin başarıyla çalıştığından emin olun
- Bağlantıların ve görsellerin doğru çalıştığını doğrulayın
- Açıklayıcı bir açıklama ile bir çekme isteği gönderin
Çekme İsteği Yönergeleri
- Başlık formatı:
[Bölüm] Değişikliklerin kısa açıklaması
- Örnek:
[Regression] Ders 5'teki yazım hatasını düzelt
- Örnek:
[Quiz-App] Bağımlılıkları güncelle
- Örnek:
- Göndermeden önce:
- Tüm not defteri hücrelerinin hatasız çalıştığından emin olun
- Test uygulamasını değiştiriyorsanız
npm run lint
çalıştırın - Markdown biçimlendirmesini doğrulayın
- Yeni kod örneklerini test edin
- Çekme isteği şunları içermelidir:
- Değişikliklerin açıklaması
- Değişikliklerin nedeni
- UI değişiklikleri varsa ekran görüntüleri
- Davranış Kuralları: Microsoft Açık Kaynak Davranış Kuralları takip edin
- CLA: Katkı Sağlayıcı Lisans Sözleşmesini imzalamanız gerekecek
Ders Yapısı
Her ders tutarlı bir deseni takip eder:
- Ders öncesi test - Temel bilgileri test edin
- Ders içeriği - Yazılı talimatlar ve açıklamalar
- Kod gösterimleri - Not defterlerinde uygulamalı örnekler
- Bilgi kontrolleri - Anlamayı doğrulama
- Zorluk - Kavramları bağımsız olarak uygulama
- Ödev - Genişletilmiş pratik
- Ders sonrası test - Öğrenme sonuçlarını değerlendirme
Yaygın Komutlar Referansı
# Python/Jupyter
jupyter notebook # Start Jupyter server
jupyter notebook notebook.ipynb # Open specific notebook
pip install -r requirements.txt # Install dependencies (where available)
# Quiz App
cd quiz-app
npm install # Install dependencies
npm run serve # Development server
npm run build # Production build
npm run lint # Lint and fix
# Documentation
docsify serve # Serve documentation locally
npm run convert # Generate PDF
# Git workflow
git checkout -b feature/my-change # Create feature branch
git add . # Stage changes
git commit -m "Description" # Commit changes
git push origin feature/my-change # Push to remote
Ek Kaynaklar
- Microsoft Learn Koleksiyonu: Yeni Başlayanlar için ML modülleri
- Test Uygulaması: Çevrimiçi testler
- Tartışma Panosu: GitHub Tartışmaları
- Video Anlatımları: YouTube Oynatma Listesi
Temel Teknolojiler
- Python: ML dersleri için birincil dil (Scikit-learn, Pandas, NumPy, Matplotlib)
- R: tidyverse, tidymodels, caret kullanarak alternatif uygulama
- Jupyter: Python dersleri için etkileşimli not defterleri
- R Markdown: R dersleri için belgeler
- Vue.js 3: Test uygulaması çerçevesi
- Flask: ML modeli dağıtımı için web uygulama çerçevesi
- Docsify: Dokümantasyon sitesi oluşturucu
- GitHub Actions: CI/CD ve otomatik çeviriler
Güvenlik Dikkatleri
- Kodda gizli bilgiler yok: API anahtarlarını veya kimlik bilgilerini asla kodda paylaşmayın
- Bağımlılıklar: npm ve pip paketlerini güncel tutun
- Kullanıcı girdisi: Flask web uygulama örnekleri temel giriş doğrulaması içerir
- Hassas veri: Örnek veri setleri kamuya açık ve hassas olmayan verilerdir
Sorun Giderme
Jupyter Not Defterleri
- Çekirdek sorunları: Hücreler takılırsa çekirdeği yeniden başlatın: Çekirdek → Yeniden Başlat
- İçe aktarma hataları: Gerekli tüm paketlerin pip ile yüklü olduğundan emin olun
- Yol sorunları: Not defterlerini bulundukları dizinden çalıştırın
Test Uygulaması
- npm install başarısız: npm önbelleğini temizleyin:
npm cache clean --force
- Port çakışmaları: Portu şu şekilde değiştirin:
npm run serve -- --port 8081
- Derleme hataları:
node_modules
klasörünü silin ve yeniden yükleyin:rm -rf node_modules && npm install
R Dersleri
- Paket bulunamadı: Şu komutla yükleyin:
install.packages("package-name")
- RMarkdown renderleme: rmarkdown paketinin yüklü olduğundan emin olun
- Çekirdek sorunları: Jupyter için IRkernel'i yüklemeniz gerekebilir
Proje Özel Notları
- Bu öncelikle bir öğrenme müfredatı, üretim kodu değil
- Odak noktası ML kavramlarını anlamak ve uygulamalı pratik yapmak
- Kod örnekleri açıklık öncelikli, optimizasyon değil
- Çoğu ders bağımsızdır ve tek başına tamamlanabilir
- Çözümler sağlanır, ancak öğrenciler önce alıştırmaları denemelidir
- Depo Docsify kullanır, web dokümantasyonu için derleme adımı gerekmez
- Sketchnotes kavramların görsel özetlerini sağlar
- Çok dilli destek içeriği küresel olarak erişilebilir kılar
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.