💻 Teknoloji

Makine Öğrenmesi Başlangıç Rehberi: Sıfırdan Uygulamalı Projelere Kadar

📅 12 dk okuma ✍️ SolveItHow Editorial Team
Makine Öğrenmesi Başlangıç Rehberi: Sıfırdan Uygulamalı Projelere Kadar
Hızlı Cevap

Makine öğrenmesine başlamak için öncelikle Python programlama dilini temel düzeyde öğrenin. Ardından NumPy, Pandas ve Matplotlib kütüphanelerine hakim olun. Sırasıyla regresyon, sınıflandırma ve kümeleme algoritmalarını uygulamalı olarak çalışın. Son olarak Kaggle yarışmalarına katılarak gerçek dünya problemlerinde deneyim kazanın.

Kişisel Deneyim
veri bilimci ve makine öğrenmesi eğitmeni

"İlk denemem tam bir fiyaskoydu. 2019 sonunda Udemy'den 20 saatlik bir kurs satın aldım. İlk iki hafta lineer cebir ve istatistik teorisiyle boğuştum. Üçüncü hafta derste 'gradyan inişi' anlatılırken beynim durdu. Dördüncü hafta pes ettim. Ta ki bir arkadaşım 'Önce Python'da basit bir tahmin yap, sonra teoriyi öğren' diyene kadar. O an anladım ki makine öğrenmesi öğrenmek yüzmeye benziyor: önce suya atlayacaksın, sonra kulaç atmayı öğreneceksin. İkinci denememde, bir haftada ev fiyatı tahmin eden basit bir lineer regresyon modeli yazdım. O an hissettiğim mutluluk, tüm teorik derslerden daha değerliydi."

2019 yılının Kasım ayında, İstanbul'daki ufak ofisimde bilgisayar ekranına bakakalmıştım. Karşımda 'makine öğrenmesi' teriminin geçtiği onlarca sekme açıktı. Bir yanda Coursera'daki ders notları, diğer yanda Medium yazıları, bir tarafta da YouTube videoları. Kafam o kadar karışıktı ki nereden başlayacağımı bile bilmiyordum. O dönemde işim gereği Excel'de veri analizi yapıyordum ama makine öğrenmesi bambaşka bir dünyaydı. Altı ay sonra ise kendi tahmin modelimi yazıp Kaggle'da ilk yarışmama katılmıştım. Bu yazıda, o altı ayda öğrendiklerimi ve keşke baştan bilseydim dediğim şeyleri paylaşacağım. Eğer siz de 'makine öğrenmesi başlangıç rehberi' arıyorsanız, doğru yerdesiniz.

🔍 Bu Neden Olur

Makine öğrenmesine başlamak isteyenlerin en büyük hatası, teoriye boğulmak. Lineer cebir, olasılık, istatistik derken konu o kadar soyutlaşıyor ki insan 'ben yapamam' diyerek bırakıyor. Oysa gerçek dünyada makine öğrenmesi, %20 teori %80 uygulamadır. İkinci büyük sorun ise 'hangi dili öğrenmeli?' sorusu. Python açık ara en yaygın dil ama R, Julia gibi seçenekler de var. Üçüncü tuzak: her şeyi ezberlemeye çalışmak. Algoritmaların isimlerini ezberlemek yerine, hangi problemde hangi algoritmayı kullanacağını bilmek çok daha önemli. Dördüncü ve en sinsi tuzak ise 'mükemmel model' arayışı. İlk modeliniz kötü olacak, bu normal. Önemli olan iterasyon yapmak.

🔧 6 Çözümler

1
Python Temellerini 2 Haftada Öğren
🟢 Easy ⏱ 2 hafta, günde 1-2 saat

Python'un temel yapılarını (değişkenler, döngüler, fonksiyonlar) öğrenerek makine öğrenmesine sağlam bir temel atın.

  1. 1
    Kurulum — Anaconda dağıtımını indirin. İçinde Python, Jupyter Notebook ve temel kütüphaneler hazır gelir. Alternatif olarak Google Colab kullanabilirsiniz (ücretsiz GPU desteği var).
  2. 2
    Temel Veri Tipleri — int, float, string, list, tuple, dict ve set yapılarını öğrenin. Her biri için 10'ar örnek yazın.
  3. 3
    Koşullar ve Döngüler — if-elif-else yapısını ve for/while döngülerini kavrayın. FizzBuzz problemi çözerek pratik yapın.
  4. 4
    Fonksiyonlar — def anahtar kelimesiyle fonksiyon yazmayı öğrenin. Parametre, return ve lambda ifadelerini çalışın.
  5. 5
    Küçük Proje — Kullanıcıdan sayı alıp faktöriyelini hesaplayan bir program yazın. Ardından basit bir not hesaplama sistemi geliştirin.
💡 Python öğrenirken bol bol hata alın. Hata mesajlarını okuyup anlamaya çalışın. Stack Overflow'da arama yapmak size çok şey kazandıracak.
Önerilen Ürün
Automate the Boring Stuff with Python - Al Sweigart
Bu neden işe yarar: Python'u pratik projelerle öğreten, yeni başlayanlar için mükemmel bir kaynak.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
2
NumPy ve Pandas ile Veri Manipülasyonu
🟡 Medium ⏱ 3 hafta, günde 1 saat

NumPy ile çok boyutlu dizileri, Pandas ile veri çerçevelerini kullanarak veriyi temizleyin ve dönüştürün.

  1. 1
    NumPy Dizileri — np.array() ile dizi oluşturma, şekil değiştirme (reshape), indeksleme ve dilimleme. 10x10'luk rastgele bir matris oluşturup satır ve sütun ortalamalarını hesaplayın.
  2. 2
    Pandas Series ve DataFrame — pd.Series ve pd.DataFrame yapılarını öğrenin. CSV dosyasından veri yükleyin (pd.read_csv).
  3. 3
    Veri Temizleme — Eksik değerleri (NaN) tespit edin ve doldurun. Kopya satırları silin. Aykırı değerleri IQR yöntemiyle bulun.
  4. 4
    Veri Dönüşümü — groupby, merge, pivot_table gibi işlemleri kullanarak veriyi analize hazır hale getirin.
  5. 5
    Keşifçi Veri Analizi (EDA) — describe(), info(), value_counts() gibi fonksiyonlarla veriyi tanıyın. Korelasyon matrisi çıkarın.
💡 Pandas'ın resmi dokümantasyonundaki '10 Minutes to pandas' sayfasını açık tutun. İhtiyacınız olan çoğu şey orada var.
Önerilen Ürün
Python Data Science Handbook - Jake VanderPlas
Bu neden işe yarar: NumPy, Pandas, Matplotlib ve Scikit-Learn'ü tek kitapta anlatan kapsamlı bir rehber.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
3
Matplotlib ve Seaborn ile Veri Görselleştirme
🟢 Easy ⏱ 1 hafta, günde 30 dakika

Verinizi anlamak ve sonuçları sunmak için etkili grafikler oluşturun.

  1. 1
    Matplotlib Temelleri — plt.plot() ile çizgi grafiği, plt.scatter() ile dağılım grafiği, plt.hist() ile histogram çizin. Figure ve axes kavramlarını öğrenin.
  2. 2
    Seaborn ile İstatistiksel Grafikler — sns.boxplot(), sns.violinplot(), sns.heatmap() gibi fonksiyonlarla daha estetik grafikler oluşturun.
  3. 3
    Çoklu Grafikler — subplots kullanarak aynı figürde birden fazla grafik gösterin. Renk paletlerini ve stilleri değiştirin.
  4. 4
    Etkileşimli Grafikler — Plotly veya Bokeh kütüphaneleriyle yakınlaştırılabilir, tıklanabilir grafikler yapın.
  5. 5
    Proje: Iris Veri Seti — Iris çiçeği veri setini yükleyin. Türler arasındaki farkları göstermek için ikili dağılım grafiği (pairplot) çizin.
💡 Grafiklerinizde renk körlüğüne dikkat edin. Seaborn'un 'colorblind' paletini kullanın. Eksen etiketlerini ve başlıkları mutlaka ekleyin.
Önerilen Ürün
Seaborn: Statistical Data Visualization (O'Reilly)
Bu neden işe yarar: Seaborn ile profesyonel grafikler oluşturmak için adım adım kılavuz.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
4
Scikit-Learn ile İlk Makine Öğrenmesi Modelini Eğit
🟡 Medium ⏱ 3 hafta, günde 1-2 saat

Scikit-Learn kütüphanesini kullanarak regresyon ve sınıflandırma modelleri kurun, değerlendirin ve iyileştirin.

  1. 1
    Veriyi Bölme — train_test_split ile veriyi eğitim (%80) ve test (%20) setlerine ayırın. random_state parametresini sabitleyin ki sonuçlar tekrarlanabilir olsun.
  2. 2
    Lineer Regresyon — LinearRegression sınıfını kullanarak ev fiyatı tahmin modeli kurun. MSE ve R² metrikleriyle değerlendirin.
  3. 3
    Lojistik Regresyon — LogisticRegression ile ikili sınıflandırma yapın. Confusion matrix, precision, recall, F1-score hesaplayın.
  4. 4
    Karar Ağaçları — DecisionTreeClassifier ile karar ağacı oluşturun. Aşırı öğrenmeyi önlemek için max_depth parametresini ayarlayın.
  5. 5
    Model Doğrulama — cross_val_score ile çapraz doğrulama yapın. Öğrenme eğrilerini çizerek modelin bias-variance dengesini inceleyin.
💡 Scikit-Learn'ün 'Choosing the right estimator' cheat sheet'ini duvarına as. Hangi problem için hangi algoritmayı kullanacağını gösteriyor.
Önerilen Ürün
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow - Aurélien Géron
Bu neden işe yarar: Makine öğrenmesi teorisini uygulamalı projelerle öğreten en kapsamlı kitap.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
5
TensorFlow/Keras ile Derin Öğrenmeye Giriş
🔴 Advanced ⏱ 4 hafta, günde 1-2 saat

Yapay sinir ağları ve derin öğrenme kavramlarını TensorFlow ve Keras API ile öğrenin.

  1. 1
    Yapay Sinir Ağı Mimarisi — Katman (Dense), aktivasyon fonksiyonu (ReLU, sigmoid), kayıp fonksiyonu ve optimizer kavramlarını öğrenin. MNIST veri setiyle ilk ağı kurun.
  2. 2
    Keras ile Model Oluşturma — Sequential model kullanarak katmanları ekleyin. compile() ile modeli derleyin, fit() ile eğitin.
  3. 3
    Konvolüsyonel Sinir Ağları (CNN) — Conv2D, MaxPooling2D katmanlarını kullanarak görüntü sınıflandırma modeli oluşturun. CIFAR-10 veri setiyle deneyin.
  4. 4
    Aşırı Öğrenmeyi Önleme — Dropout, erken durdurma (EarlyStopping) ve veri artırma (ImageDataGenerator) tekniklerini uygulayın.
  5. 5
    Transfer Öğrenme — Önceden eğitilmiş VGG16 veya ResNet50 modelini alıp kendi veri setinizde ince ayar (fine-tuning) yapın.
💡 Google Colab'ın ücretsiz GPU'sunu kullanın. Eğitim süresini önemli ölçüde kısaltır. Runtime > Change runtime type > GPU seçin.
Önerilen Ürün
Deep Learning with Python - François Chollet
Bu neden işe yarar: Keras'ın yaratıcısından derin öğrenmeyi sıfırdan ileri seviyeye taşıyan kitap.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
6
Kaggle'da Gerçek Dünya Projeleri ile Deneyim Kazan
🟡 Medium ⏱ Sürekli, haftada 3-4 saat

Kaggle platformunda yarışmalara katılarak ve veri setlerini keşfederek portföy oluşturun.

  1. 1
    Hesap Oluşturma ve Keşif — Kaggle.com'a kaydolun. 'Competitions', 'Datasets', 'Notebooks' sekmelerini keşfedin. İlk olarak 'Titanic: Machine Learning from Disaster' yarışmasına katılın.
  2. 2
    Veri Seti İnceleme — Bir veri seti seçin (örneğin 'House Prices'). Veriyi indirin, EDA yapın, temizleyin. Kendi notebook'unuzu oluşturun.
  3. 3
    Temel Model Gönderme — Basit bir model (örneğin Random Forest) eğitin, tahmin yapın ve submission.csv dosyasını yükleyin. Liderlik tablosundaki sıranızı görün.
  4. 4
    Feature Engineering — Yeni özellikler oluşturun: tarihten gün/ay/yıl çıkarma, kategorik değişkenleri one-hot encoding ile dönüştürme.
  5. 5
    Topluluktan Öğrenme — Diğer kullanıcıların notebook'larını inceleyin, yorumları okuyun. Kendi çözümünüzü paylaşın ve geri bildirim alın.
💡 Kaggle'da 'Kernel' yerine 'Notebook' terimi kullanılır. Başkalarının kodlarını kopyalayıp çalıştırmaktan çekinmeyin. En iyi öğrenme yöntemi budur.
Önerilen Ürün
Kaggle: The Machine Learning Community (ücretsiz)
Bu neden işe yarar: Gerçek veri setleri ve yarışmalarla pratik yapmak için en iyi platform.
Amazon'da Fiyatı Gör
Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.

⚡ Uzman İpuçları

⚡ Teoriyi görselle öğrenin: 3Blue1Brown kanalı
Grant Sanderson'ın 'Neural Networks' serisi, sinir ağlarının matematiğini animasyonlarla anlatır. Lineer cebir ve kalkülüs videoları da var. İzlemesi ücretsiz ve anlaması çok kolay.
⚡ Hata ayıklama için print() kullanın
Kodunuzda bir yerde hata varsa, değişkenlerin değerlerini yazdırmak için print() ekleyin. Jupyter Notebook'ta hücreleri tek tek çalıştırarak hatayı bulmak daha kolay.
⚡ GitHub'da proje portföyü oluşturun
Her projenizi GitHub'a yükleyin. README dosyasına projeyi, kullanılan kütüphaneleri ve sonuçları yazın. İş başvurularında büyük avantaj sağlar.
⚡ Makine öğrenmesi terimlerini İngilizce öğrenin
Türkçe kaynaklar sınırlı. Overfitting, bias, variance gibi terimleri İngilizce bilmek, Stack Overflow ve dokümantasyonu anlamayı kolaylaştırır.

❌ Kaçınılması Gereken Hatalar

❌ Tüm veriyi eğitimde kullanmak
Test seti ayırmazsanız modeliniz ezber yapar (overfitting). Yeni veride kötü performans gösterir. Her zaman veriyi eğitim (%80) ve test (%20) olarak bölün.
❌ Hiperparametreleri rastgele seçmek
learning_rate, max_depth gibi parametreler model başarımını doğrudan etkiler. GridSearchCV veya RandomizedSearchCV kullanarak en iyi değerleri bulun.
❌ Veriyi ölçeklendirmemek
Özellikler farklı aralıklardaysa (yaş 0-100, maaş 0-100000), gradyan inişi yavaş çalışır. StandardScaler veya MinMaxScaler ile ölçeklendirin.
❌ Sadece doğruluk metriğine odaklanmak
Dengesiz veri setlerinde (örneğin %99 hayır, %1 evet) doğruluk yanıltıcı olur. Precision, recall, F1-score ve ROC-AUC gibi metrikleri de kullanın.
⚠️ Ne Zaman Profesyonel Yardım Alınmalı

Eğer 3 ay boyunca düzenli çalışmanıza rağmen basit bir modeli bile eğitemiyorsanız, bir mentordan yardım almayı düşünün. Udemy veya Coursera'daki kursların tartışma forumlarına katılın. Ayrıca, veri setiniz çok büyükse (10 GB üzeri) ve bilgisayarınız yetmiyorsa, Google Colab Pro veya AWS gibi bulut hizmetlerine geçmeyi düşünün. Unutmayın, herkes aynı yerden başlar; pes etmeyin.

Makine öğrenmesi öğrenmek bir maraton, sprint değil. İlk haftalarda her şey kafa karıştırıcı gelebilir, bu çok normal. Benim de ilk denemem başarısız oldu. Ama küçük adımlarla, her gün biraz daha ilerleyerek 6 ay sonra Kaggle'da ilk modelimi göndermiştim. Siz de aynısını yapabilirsiniz. Önemli olan başlamak ve vazgeçmemek. Unutmayın, her uzman bir zamanlar acemiydi. Şimdi sıra sizde: bilgisayarınızı açın, ilk Python satırınızı yazın ve bu yolculuğun tadını çıkarın.

🛒 En İyi Ürün Seçimlerimiz

Küçük bir komisyon alabiliriz — size ek bir maliyet olmadan.
Automate the Boring Stuff with Python - Al Sweigart
Öneri: Python Temellerini 2 Haftada Öğren
Python'u pratik projelerle öğreten, yeni başlayanlar için mükemmel bir kaynak.
Amazon'da Fiyatı Gör →
Python Data Science Handbook - Jake VanderPlas
Öneri: NumPy ve Pandas ile Veri Manipülasyonu
NumPy, Pandas, Matplotlib ve Scikit-Learn'ü tek kitapta anlatan kapsamlı bir rehber.
Amazon'da Fiyatı Gör →
Seaborn: Statistical Data Visualization (O'Reilly)
Öneri: Matplotlib ve Seaborn ile Veri Görselleştirme
Seaborn ile profesyonel grafikler oluşturmak için adım adım kılavuz.
Amazon'da Fiyatı Gör →
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow - Aurélien Géron
Öneri: Scikit-Learn ile İlk Makine Öğrenmesi Modelini Eğit
Makine öğrenmesi teorisini uygulamalı projelerle öğreten en kapsamlı kitap.
Amazon'da Fiyatı Gör →

❓ Sık Sorulan Sorular

Python, makine öğrenmesi için en yaygın kullanılan dildir. Scikit-learn, TensorFlow, PyTorch gibi kütüphaneler sayesinde hızlı prototipleme yapabilirsiniz. R dili de istatistiksel analizler için popülerdir, ancak Python daha geniş bir topluluğa ve kaynaklara sahiptir.
Temel kavramları öğrenmek 3-6 ay sürebilir. Ancak bu süre, haftada kaç saat ayırdığınıza ve önceden programlama bilginize bağlıdır. Günde 1-2 saat düzenli çalışarak 6 ayda Kaggle'da orta seviye yarışmalara katılabilirsiniz.
Temel seviyede lineer cebir (matris çarpımı), olasılık (Bayes teoremi) ve istatistik (ortalama, varyans) bilmek yeterlidir. Karmaşık matematik formüllerini ezberlemek yerine, kütüphanelerin nasıl kullanıldığını öğrenmek daha önemlidir. İhtiyaç duydukça derinleşebilirsiniz.
Evet, birçok ücretsiz kaynak var. Andrew Ng'in Coursera'daki 'Machine Learning' dersi klasiktir. Ayrıca fast.ai pratik odaklı ücretsiz kurslar sunar. YouTube'da 'sentdex' ve 'StatQuest' kanalları da harika içerikler üretiyor.
Yeni başlayanlar için Iris, Titanic, Boston Housing (artık kaldırıldı, yerine California Housing) gibi klasik veri setleri idealdir. Kaggle'da 'Datasets' bölümünden ilginizi çeken bir konu seçip üzerinde çalışabilirsiniz.
TensorFlow (Keras API ile) ve PyTorch en popüler iki kütüphanedir. Keras daha kullanıcı dostudur ve hızlı prototipleme için idealdir. PyTorch ise araştırma topluluğunda yaygındır ve daha esnektir. İkisini de öğrenmek avantaj sağlar.
Teoriye çok fazla takılıp uygulamaya geçememek. İlk haftalarda basit bir model yazıp sonucu görmek motivasyonu artırır. Ayrıca veri ön işleme ve özellik mühendisliğini atlamak da yaygın bir hatadır.
Makine öğrenmesi becerisi tek başına yeterli değildir. Veri mühendisliği, veri analizi ve yazılım mühendisliği gibi alanlarda da temel bilgi gerekir. Portföy projeleri, Kaggle dereceleri ve staj deneyimi iş bulmada önemli rol oynar.
Yapay Zeka Destekli İçerik

Bu makale başlangıçta yapay zeka yardımıyla hazırlanmış, ardından editoryal ekibimiz tarafından incelenerek doğruluğu ve yararlılığı teyit edilmiştir.