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.
Makine Öğrenmesi Başlangıç Rehberi: Sıfırdan Uygulamalı Projelere Kadar

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.
"İ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."
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
Python'un temel yapılarını (değişkenler, döngüler, fonksiyonlar) öğrenerek makine öğrenmesine sağlam bir temel atın.
-
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
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
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
Fonksiyonlar — def anahtar kelimesiyle fonksiyon yazmayı öğrenin. Parametre, return ve lambda ifadelerini çalışın.
-
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.
NumPy ile çok boyutlu dizileri, Pandas ile veri çerçevelerini kullanarak veriyi temizleyin ve dönüştürün.
-
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
Pandas Series ve DataFrame — pd.Series ve pd.DataFrame yapılarını öğrenin. CSV dosyasından veri yükleyin (pd.read_csv).
-
3
Veri Temizleme — Eksik değerleri (NaN) tespit edin ve doldurun. Kopya satırları silin. Aykırı değerleri IQR yöntemiyle bulun.
-
4
Veri Dönüşümü — groupby, merge, pivot_table gibi işlemleri kullanarak veriyi analize hazır hale getirin.
-
5
Keşifçi Veri Analizi (EDA) — describe(), info(), value_counts() gibi fonksiyonlarla veriyi tanıyın. Korelasyon matrisi çıkarın.
Verinizi anlamak ve sonuçları sunmak için etkili grafikler oluşturun.
-
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
Seaborn ile İstatistiksel Grafikler — sns.boxplot(), sns.violinplot(), sns.heatmap() gibi fonksiyonlarla daha estetik grafikler oluşturun.
-
3
Çoklu Grafikler — subplots kullanarak aynı figürde birden fazla grafik gösterin. Renk paletlerini ve stilleri değiştirin.
-
4
Etkileşimli Grafikler — Plotly veya Bokeh kütüphaneleriyle yakınlaştırılabilir, tıklanabilir grafikler yapın.
-
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.
Scikit-Learn kütüphanesini kullanarak regresyon ve sınıflandırma modelleri kurun, değerlendirin ve iyileştirin.
-
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
Lineer Regresyon — LinearRegression sınıfını kullanarak ev fiyatı tahmin modeli kurun. MSE ve R² metrikleriyle değerlendirin.
-
3
Lojistik Regresyon — LogisticRegression ile ikili sınıflandırma yapın. Confusion matrix, precision, recall, F1-score hesaplayın.
-
4
Karar Ağaçları — DecisionTreeClassifier ile karar ağacı oluşturun. Aşırı öğrenmeyi önlemek için max_depth parametresini ayarlayın.
-
5
Model Doğrulama — cross_val_score ile çapraz doğrulama yapın. Öğrenme eğrilerini çizerek modelin bias-variance dengesini inceleyin.
Yapay sinir ağları ve derin öğrenme kavramlarını TensorFlow ve Keras API ile öğrenin.
-
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
Keras ile Model Oluşturma — Sequential model kullanarak katmanları ekleyin. compile() ile modeli derleyin, fit() ile eğitin.
-
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
Aşırı Öğrenmeyi Önleme — Dropout, erken durdurma (EarlyStopping) ve veri artırma (ImageDataGenerator) tekniklerini uygulayın.
-
5
Transfer Öğrenme — Önceden eğitilmiş VGG16 veya ResNet50 modelini alıp kendi veri setinizde ince ayar (fine-tuning) yapın.
Kaggle platformunda yarışmalara katılarak ve veri setlerini keşfederek portföy oluşturun.
-
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
Veri Seti İnceleme — Bir veri seti seçin (örneğin 'House Prices'). Veriyi indirin, EDA yapın, temizleyin. Kendi notebook'unuzu oluşturun.
-
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
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
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.
⚡ Uzman İpuçları
❌ Kaçınılması Gereken Hatalar
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
❓ Sık Sorulan Sorular
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.
💬 Deneyimini Paylaş
Deneyimini paylaş — aynı durumla karşılaşanlara yardımcı olur!