Yazılım

Makine Öğrenimine (Machine Learning) Nasıl Başlanır? Yeni Başlayanlar İçin Kapsamlı Rehber

Talha AslanTalha Aslan 14 dk okuma

Makine öğrenimine nasıl başlanır ve ilk adım ne olmalı?

Makine öğrenimi, bilgisayarın açıkça yazılmış kurallar yerine örnek verilerden örüntü öğrenip yeni veriler hakkında tahmin yapmasını sağlayan yöntemler bütünüdür. Başlamak için temel Python bilgisi, biraz istatistik sezgisi ve scikit-learn ile küçük bir veri setinde eğitip test ettiğiniz ilk model yeterlidir.

Bu soruyu bana en çok pazarlama ekiplerinde çalışan ve veriyle daha derin uğraşmak isteyen kişiler soruyor. 2012'den beri dijital pazarlama tarafındayım; kampanya verisi, dönüşüm tahmini ve müşteri segmentasyonu gibi işlerde makine öğrenimi mantığını sık kullanıyorum. Bu yazıda kavramları sade tutuyorum ve sizi scikit-learn ile ilk çalışan modelinize kadar götürüyorum.

Sinir ağlarına ve derin öğrenmeye bu yazıda girmiyorum; o konu ayrı bir rehberi hak ediyor. Ayrıca genel yazılım yazıları için yazılım kategorisine, yapay zeka odaklı yazılar için de yapay zeka kategorisine göz atabilirsiniz.

Makine öğrenimi klasik programlamadan nasıl ayrışır?

Klasik programlamada kuralları siz yazarsınız: girdi gelir, kod bu kurallarla çıktı üretir. Makine öğreniminde ise girdiyi ve beklenen çıktıyı birlikte verirsiniz; algoritma aradaki kuralı kendisi çıkarır. Dolayısıyla kural sayısı çok arttığında ya da kurallar sürekli değiştiğinde bu yaklaşım öne çıkar.

Örneğin bir e-postanın istenmeyen ileti olup olmadığını elle yazılmış kurallarla yakalamaya çalışabilirsiniz. Ancak gönderenler kelimeleri değiştirdikçe kurallarınız eskir. Buna karşılık binlerce etiketli e-postayla eğittiğiniz bir model, yeni örüntüleri kendi başına yakalamaya daha yatkındır.

Yine de her problem makine öğrenimi gerektirmez. Kuralı net olan bir hesaplamada, mesela KDV tutarında, model kurmak gereksiz karmaşa yaratır. Bu tür işler için basit bir KDV hesaplama aracı bile yeterlidir. Kısacası önce problemin gerçekten örüntü öğrenmeyi gerektirip gerektirmediğini sorun.

Bir başka ayrım da bakım tarafındadır. Kural tabanlı bir sistemi değiştirmek için kodu elle güncellersiniz. Makine öğrenimi sisteminde ise yeni veriyle modeli yeniden eğitirsiniz. Bu nedenle veri toplama düzeninin sürekliliği, algoritma seçimi kadar önemlidir.

Makine öğrenimi için önce hangi temel bilgiler gerekir?

İyi haber şu: başlamak için matematik doktorası gerekmez. Öte yandan bazı temelleri atlarsanız ilk hatanızda nereye bakacağınızı bilemezsiniz. Ben başlangıç için üç alanı yeterli buluyorum ve bunları paralel götürmenizi öneririm.

  • Python: değişkenler, listeler, sözlükler, fonksiyonlar ve döngüler. Ek olarak bir kütüphaneyi içe aktarıp dokümantasyonunu okuyabilmelisiniz.
  • Veri işleme: Pandas ile tablo okumak, sütun seçmek, eksik değerleri görmek. Böylece veriyi modele hazırlayabilirsiniz.
  • İstatistik sezgisi: ortalama, medyan, dağılım, korelasyon ve olasılık kavramları. Yani sayıların neyi anlattığını yorumlayabilmelisiniz.

Lineer cebir ve türev konuları ilerledikçe işinize yarar. Ancak ilk modelinizi kurmak için bunları baştan bitirmek zorunda değilsiniz. Bu yüzden ben önce çalışan bir örnek görmeyi, sonra teoriye dönmeyi öneriyorum; merak, soyut formüllerden daha iyi bir öğretmendir.

Denetimli öğrenme nedir ve neden ilk durak olmalı?

Denetimli öğrenmede her örneğin yanında doğru cevap, yani etiket bulunur. Model girdilerle etiketler arasındaki ilişkiyi öğrenir ve etiketi olmayan yeni örnekte tahmin yapar. Bu yüzden başarıyı ölçmek kolaydır: tahmini gerçek etiketle karşılaştırırsınız.

Denetimli öğrenmenin iki ana türü vardır. Sınıflandırmada çıktı bir kategoridir; örneğin bir müşterinin aboneliğini iptal edip etmeyeceği. Regresyonda ise çıktı sürekli bir sayıdır; örneğin gelecek ayki satış tutarı. İkisi de aynı iş akışını izler, yalnızca ölçüm yöntemleri değişir.

Yeni başlayanlara ilk durak olarak bunu öneriyorum, çünkü geri bildirim döngüsü nettir. Modeliniz yüzde kaç doğru bildi, hatası nerede yoğunlaştı, hepsini somut görürsünüz. Üstelik iş dünyasındaki uygulamaların önemli bir kısmı da bu kalıba oturur.

Etiket kalitesine de dikkat edin. Model, etiketlerde ne öğretirseniz onu öğrenir. Örneğin satış ekibi "sıcak potansiyel müşteri" etiketini tutarsız kullanıyorsa model de tutarsız tahmin yapar. Dolayısıyla etiketleme kuralını yazılı hale getirmek, algoritma seçmekten önce gelir.

Denetimsiz öğrenme ne zaman devreye girer?

Denetimsiz öğrenmede etiket yoktur. Model verinin içindeki yapıyı kendi keşfeder; benzer örnekleri gruplar ya da boyut sayısını azaltır. Dolayısıyla elinizde "doğru cevap" sütunu olmadığında bu yöntemlere başvurursunuz.

En bilinen örnek kümelemedir. K-means gibi bir algoritma, müşterileri satın alma sıklığı ve sepet tutarına göre birbirine benzeyen gruplara ayırabilir. Pazarlamada bu gruplara farklı mesajlar gönderirsiniz. Hedef kitle tarafını daha önce hedef kitle analizi yazısında anlatmıştım; kümeleme bu analizi veriyle destekler.

Ancak denetimsiz öğrenmede başarıyı ölçmek zordur. Bulduğunuz kümelerin anlamlı olup olmadığına çoğu zaman alan bilgisiyle siz karar verirsiniz. Bu nedenle ilk projenizi denetimli bir problemle kurmanızı, kümelemeye ikinci adımda geçmenizi öneriyorum.

Denetimsiz yöntemlerin bir diğer kullanımı da boyut azaltmadır. PCA gibi bir teknik, çok sayıda sütunu daha az sayıda özet bileşene indirger. Böylece veriyi iki boyutlu bir grafikte görselleştirip örüntüleri gözle inceleyebilirsiniz.

Eğitim ve test verisi neden mutlaka ayrılmalı?

Modeli hangi veriyle eğittiyseniz, aynı veriyle test ederseniz gerçekçi olmayan yüksek bir başarı görürsünüz. Çünkü model o örnekleri ezberlemiş olabilir. Bu yüzden veriyi en baştan ikiye bölersiniz: modelin öğrendiği eğitim kümesi ve hiç görmediği test kümesi.

scikit-learn bu iş için train_test_split fonksiyonunu sunar. Sık kullanılan bir başlangıç tercihi verinin yaklaşık beşte birini teste ayırmaktır. Ayrıca random_state parametresini sabitlerseniz aynı bölmeyi her çalıştırmada tekrar elde edersiniz.

Test kümesine dokunma disiplini kritik önemdedir. Model ayarlarını test sonucuna bakarak defalarca değiştirirseniz, test verisi de dolaylı olarak eğitime sızar. Dolayısıyla ayar denemeleri için ayrı bir doğrulama kümesi ya da çapraz doğrulama kullanmanız gerekir.

Aşırı öğrenme (overfitting) nedir, nasıl fark edersiniz?

Aşırı öğrenme, modelin eğitim verisindeki gürültüyü de ezberlemesi ve yeni veride kötü performans göstermesidir. En net belirtisi şudur: eğitim skoru çok yüksek, test skoru belirgin biçimde düşüktür. Yetersiz öğrenmede ise iki skor da düşük kalır.

Aşırı öğrenmeyi azaltmak için birkaç yolunuz var:

  • Modeli sadeleştirin; örneğin karar ağacının derinliğini sınırlayın.
  • Daha fazla ve daha çeşitli veri toplayın.
  • Düzenlileştirme (regularization) parametrelerini kullanın.
  • Çapraz doğrulamayla sonucun farklı bölmelerde tutarlı olup olmadığını kontrol edin.
  • Gereksiz özellikleri çıkarın; her sütun modele fayda sağlamaz.

Pratikte ben eğitim ve test skorlarını her zaman yan yana yazarım. Aradaki fark büyükse model karmaşıklığını azaltırım. Böylece yanıltıcı bir başarıyla projeye devam etme riskini erkenden kesersiniz.

Hangi algoritmalarla başlamak mantıklı?

Başlangıçta her algoritmayı öğrenmeye çalışmak yerine birkaç tanesini iyi anlamanızı öneririm. Aşağıdaki tablo, yeni başlayanlar için mantıklı bir başlangıç seti sunuyor. Yine de tablo bir kural değil, pratik bir yön göstericidir.

AlgoritmaProblem türüGüçlü yanıDikkat edilecek nokta
Doğrusal regresyonRegresyonYorumlaması kolay, hızlıDoğrusal olmayan ilişkileri kaçırır
Lojistik regresyonSınıflandırmaOlasılık çıktısı verir, iyi bir taban çizgisidirÖzellik ölçeklemesi fark yaratır
Karar ağacıİkisi deGörselleştirilebilir, sezgiselKolayca aşırı öğrenir
Rastgele ormanİkisi deGüçlü ve dengeli performansYorumlaması ağaca göre zordur
k en yakın komşuİkisi deMantığı çok basitBüyük veride yavaşlar, ölçeğe duyarlıdır
K-meansKümelemeEtiketsiz veride grup bulurKüme sayısını sizin seçmeniz gerekir

Benim önerim şu sırayla ilerlemeniz: önce lojistik ya da doğrusal regresyonla bir taban çizgisi kurun, sonra karar ağacı ve rastgele ormanla karşılaştırın. Böylece karmaşık bir modelin gerçekten fark yaratıp yaratmadığını görürsünüz.

Unutmayın, taban çizgisi olmadan ilerleme ölçülmez. Hatta en basit taban çizgisi, her zaman en sık sınıfı tahmin eden bir modeldir; scikit-learn bunu DummyClassifier ile sunar. Yani kurduğunuz model bu kukla modeli bile geçemiyorsa, sorun muhtemelen veride ya da özelliklerdedir.

scikit-learn neden yeni başlayanlar için ideal bir kütüphane?

scikit-learn, Python için açık kaynaklı bir makine öğrenimi kütüphanesidir ve klasik algoritmaların büyük kısmını tek bir tutarlı arayüzde toplar. Hemen her model aynı kalıbı izler: fit ile eğitirsiniz, predict ile tahmin alırsınız, score ile ölçersiniz.

Bu tutarlılık öğrenmeyi hızlandırır. Lojistik regresyonu öğrendiğinizde rastgele ormanı denemek için çoğu zaman yalnızca bir satırı değiştirirsiniz. Üstelik kütüphanenin resmi başlangıç rehberi de temel iş akışını kısa örneklerle anlatır.

Kurulum için genellikle pip install scikit-learn komutu yeterlidir. Ancak ben başlangıçta Jupyter Notebook ya da Google Colab gibi bir not defteri ortamı öneririm. Çünkü her adımın çıktısını hemen görürsünüz ve hata ayıklamak kolaylaşır.

Ayrıca her projede ayrı bir sanal ortam kullanmanızı öneririm. venv ya da conda ile oluşturduğunuz ortam, kütüphane sürümlerinin birbirine karışmasını engeller. Böylece aylar sonra projeyi yeniden açtığınızda aynı sonucu tekrar üretebilirsiniz.

İlk makine öğrenimi modelinizi adım adım nasıl kurarsınız?

Şimdi somut bir örnek yapalım. scikit-learn içinde gelen Iris veri seti 150 çiçek örneği, 4 ölçüm ve 3 tür içerir. Küçük ve temiz olduğu için ilk deneme adına idealdir. Üstelik internet bağlantısı olmadan da çalışır. Aşağıdaki adımlar, neredeyse her denetimli projede tekrar edeceğiniz iskeleti gösterir.

  1. Veriyi yükleyin: from sklearn.datasets import load_iris ile X ve y değişkenlerini alın.
  2. Veriyi bölün: train_test_split ile yaklaşık beşte birini teste ayırın.
  3. Modeli seçin: örneğin LogisticRegression(max_iter=200) nesnesi oluşturun.
  4. Eğitin: model.fit(X_train, y_train) satırını çalıştırın.
  5. Tahmin alın: model.predict(X_test) ile test örneklerini sınıflandırın.
  6. Ölçün: accuracy_score ile doğruluğu hesaplayın ve eğitim skoruyla karşılaştırın.

Bu altı adım toplamda on satırlık bir kod eder. Yine de amaç yüksek skor almak değil, akışı içselleştirmektir. Sonuç aldıktan sonra modeli bir karar ağacıyla değiştirin ve farkı gözlemleyin; böylece algoritma seçiminin etkisini ilk elden görürsünüz.

Model başarısını hangi metriklerle ölçmelisiniz?

Doğruluk (accuracy) en bilinen metriktir, ancak tek başına yanıltıcı olabilir. Örnek hesap: 100 müşterinin yalnızca 5'i aboneliğini iptal ediyorsa, herkese "iptal etmez" diyen bir model yüzde 95 doğruluk alır. Oysa asıl yakalamak istediğiniz 5 kişiyi hiç bulmamıştır.

Bu nedenle sınıflandırmada şu metriklere de bakarsınız:

  • Kesinlik (precision): "pozitif" dediğiniz örneklerin ne kadarı gerçekten pozitif?
  • Duyarlılık (recall): gerçek pozitiflerin ne kadarını yakaladınız?
  • F1 skoru: kesinlik ile duyarlılığın dengeli bir ortalaması.
  • Karışıklık matrisi: hangi sınıfı hangisiyle karıştırdığınızı tablo halinde gösterir.

Regresyonda ise ortalama mutlak hata ve kök ortalama kare hata gibi ölçüler kullanırsınız. Pazarlamadan bir benzetme yapayım: tek bir gösteriş metriğine bakmak, raporu yanlış okumaya benzer. Bu konuyu dijital pazarlama KPI yazısında da tartışmıştım.

Özellik mühendisliği model başarısını nasıl etkiler?

Özellik mühendisliği, ham veriyi modelin öğrenebileceği anlamlı sütunlara dönüştürme işidir. Pratikte basit bir modele iyi özellikler vermek, karmaşık bir modele kötü özellikler vermekten çoğu zaman daha iyi sonuç verir. Bu gözlem saha tecrübesine dayanır, garanti değildir.

Örneğin bir sipariş tarihinden haftanın gününü, ayın başı ya da sonu olup olmadığını çıkarabilirsiniz. Benzer şekilde müşteri başına son satın alımdan bu yana geçen gün sayısı çok güçlü bir sinyal olabilir. Tarih farkını hızlıca kontrol etmek isterseniz gün hesaplama aracı işinizi görür.

Kategorik verileri de sayıya çevirmeniz gerekir; scikit-learn bunun için OneHotEncoder sunar. Ayrıca sayısal sütunları StandardScaler ile ölçeklemek, özellikle lojistik regresyon ve k en yakın komşu gibi algoritmalarda sonucu belirgin biçimde değiştirebilir.

Veri hazırlığı neden işin büyük kısmını oluşturur?

Gerçek hayattaki veri, eğitim setlerindeki gibi temiz gelmez. Eksik değerler, yazım farkları, tekrar eden kayıtlar ve uç değerler neredeyse her projede karşınıza çıkar. Dolayısıyla zamanınızın önemli bir kısmını modele değil veriye ayırırsınız.

Başlangıçta şu kontrolleri alışkanlık haline getirmenizi öneririm:

  • Her sütunda kaç eksik değer var, eksiklik rastgele mi yoksa bir örüntü mü taşıyor?
  • Aynı kavram farklı yazılmış mı; örneğin "İstanbul" ve "istanbul" gibi?
  • Hedef sütunla neredeyse birebir örtüşen, geleceği sızdıran bir sütun var mı?
  • Sınıflar dengeli mi, yoksa bir sınıf çok az mı temsil ediliyor?

Üçüncü madde özellikle tehlikelidir ve buna veri sızıntısı denir. Örneğin iptal tahmini yaparken "iptal tarihi" sütununu modele verirseniz model harika görünür, ama gerçekte hiçbir işe yaramaz. Bu yüzden her özelliğe "tahmin anında bu bilgi elimde olur mu?" sorusunu sorun.

Pipeline kullanmak neden iyi bir alışkanlıktır?

scikit-learn'deki Pipeline yapısı, ölçekleme, kodlama ve model adımlarını tek bir nesnede zincirler. Böylece aynı dönüşümleri eğitim ve test verisine tutarlı biçimde uygularsınız. Ayrıca kodunuz daha okunaklı hale gelir.

Pipeline'ın asıl faydası sızıntıyı önlemesidir. Ölçekleyiciyi tüm veriye uygulayıp sonra bölerseniz, test verisinin istatistikleri eğitime karışır. Oysa Pipeline'ı çapraz doğrulamayla birlikte kullandığınızda her katlamada dönüşüm yalnızca eğitim kısmından öğrenilir.

Başlangıçta bu ayrıntı gereksiz görünebilir. Ancak ilk gerçek projenizde test skorunuz ile canlı ortam skorunuz arasında açıklanamayan bir fark görürseniz, sebep genellikle bu tür küçük sızıntılardır. Bu nedenle alışkanlığı erken kazanmak zaman kazandırır.

Çapraz doğrulama tek bölmeden neden daha güvenilir?

Tek bir eğitim ve test bölmesi şansa bağlı olabilir. Zor örnekler tesadüfen teste düşerse skor düşük, kolaylar düşerse yüksek çıkar. Çapraz doğrulama bu şans etkisini azaltır ve modelin gerçek performansına daha yakın bir tahmin verir.

En yaygın biçimi k katlı çapraz doğrulamadır. Eğitim verisini örneğin beş eşit parçaya bölersiniz. Model her turda dört parçayla eğitilir, kalan parçayla ölçülür; sonuçta beş skorun ortalamasını ve dağılımını görürsünüz. scikit-learn'de cross_val_score fonksiyonu bunu tek satırda yapar.

Skorların birbirine yakın olması iyi bir işarettir. Buna karşılık katlamalar arasında büyük sapmalar görüyorsanız, veriniz az olabilir ya da model kararsız davranıyor olabilir. Ayrıca sınıflandırmada sınıf oranlarını her katlamada koruyan StratifiedKFold yapısını tercih etmenizi öneririm.

Hiperparametre ayarı nedir ve nasıl yaparsınız?

Hiperparametre, modelin veriden öğrenmediği, sizin önceden belirlediğiniz ayardır. Karar ağacının maksimum derinliği ya da k en yakın komşudaki komşu sayısı buna örnektir. Doğru değer probleme göre değiştiği için deneme yaparak bulursunuz.

scikit-learn bu arama için iki temel araç sunar:

  • GridSearchCV: verdiğiniz tüm değer kombinasyonlarını tek tek dener.
  • RandomizedSearchCV: geniş bir aralıktan rastgele kombinasyonlar seçer; büyük arama alanlarında daha hızlıdır.

İkisi de arka planda çapraz doğrulama kullanır; böylece test kümeniz temiz kalır. Ancak aramayı abartmayın. Başlangıçta iki ya da üç parametreye ve birkaç değere odaklanmak yeterlidir. Çünkü çoğu zaman asıl kazanç daha iyi veriden ve daha iyi özelliklerden gelir.

Dengesiz veri setlerinde ne yapmalısınız?

Dengesiz veri, bir sınıfın diğerlerinden çok daha az temsil edildiği durumdur. Dolandırıcılık tespiti, müşteri kaybı ve arıza tahmini gibi problemlerin çoğu bu yapıdadır. Dolayısıyla gerçek projelerde bu durumla erken karşılaşırsınız.

İlk adım doğru metriği seçmektir; doğruluk yerine duyarlılık, kesinlik ve F1 skoruna bakarsınız. Ardından birkaç teknik deneyebilirsiniz. Örneğin birçok scikit-learn modelinde class_weight="balanced" parametresi, az temsil edilen sınıfın hatalarına daha fazla ağırlık verir.

Bir başka yol karar eşiğini ayarlamaktır. Model varsayılan olarak yüzde 50 olasılık eşiğini kullanır; siz bu eşiği düşürerek daha fazla pozitif yakalayabilirsiniz. Ancak bu, yanlış alarmları da artırır. Bu yüzden eşiği iş maliyetine göre seçin: kaçan bir müşteri mi yoksa gereksiz bir arama mı daha pahalı?

Eğittiğiniz modeli nasıl kaydedip tekrar kullanırsınız?

Model eğitimi bittiğinde onu her seferinde yeniden eğitmek istemezsiniz. scikit-learn dokümantasyonu bu amaçla joblib kütüphanesiyle modeli dosyaya kaydetmeyi anlatır. Böylece joblib.dump ile kaydettiğiniz modeli, başka bir betikte joblib.load ile açıp tahmin almaya devam edersiniz.

Burada iki noktaya dikkat edin. Birincisi, modeli kaydederken ölçekleme ve kodlama adımlarını da içeren Pipeline'ı kaydedin; aksi halde yeni veriyi aynı biçimde hazırlamayı unutabilirsiniz. İkincisi, güvenmediğiniz kaynaktan gelen model dosyalarını açmayın, çünkü bu dosyalar çalıştırılabilir kod taşıyabilir.

Başlangıç seviyesinde canlı ortama model taşımak zorunda değilsiniz. Yine de modeli kaydetmek, küçük bir web arayüzüyle denemek ve sonuçları haftalar sonra yeniden ölçmek, öğrendiklerinizi gerçek hayata bağlamanın iyi bir yoludur.

Hangi ücretsiz kaynaklarla öğrenmeye devam edebilirsiniz?

İnternette kaynak sıkıntısı yok; asıl zorluk doğru sırayı seçmek. Ben kavramsal bir kursu, uygulamalı bir platformu ve resmi dokümantasyonu birlikte kullanmayı öneririm. Böylece teori, pratik ve referans birbirini tamamlar.

Google'ın ücretsiz Machine Learning Crash Course programı regresyon, sınıflandırma ve veri hazırlığı gibi temel konuları etkileşimli alıştırmalarla anlatır. Uygulama tarafında Kaggle Learn kısa, tarayıcıda çalışan derslerle Pandas ve makine öğrenimine giriş sunar. Üstelik Kaggle'daki açık veri setleri ilk projeleriniz için hazır malzemedir.

Dokümantasyonu okumayı da ihmal etmeyin. scikit-learn kullanıcı rehberi her algoritmanın ne zaman uygun olduğunu açıklar. Yani bir modelin parametresini körlemesine değiştirmek yerine dokümantasyona dönmek, uzun vadede sizi daha sağlam bir uygulayıcı yapar.

Makine öğrenimi öğrenirken en sık hangi hatalar yapılıyor?

Yeni başlayanlarda sürekli tekrarlanan birkaç hata görüyorum. Bunları önceden bilmek, haftalarca yanlış yönde çalışmanızı engelleyebilir.

  • Test verisini ayırmadan skor raporlamak.
  • İlk gün derin öğrenmeye atlayıp temel kavramları atlamak.
  • Yalnızca doğruluğa bakıp dengesiz sınıfları gözden kaçırmak.
  • Veri setini hiç incelemeden doğrudan modele vermek.
  • Kursları izleyip kendi başına tek bir proje bile bitirmemek.

Son madde bence en yaygın olanıdır. Video izlemek ilerleme hissi verir, ama asıl öğrenme kendi verinizle takıldığınız anda başlar. Bu yüzden her modülden sonra küçük de olsa kendi uygulamanızı yazın ve sonucu bir yere not edin. Ayrıca takıldığınız hatayı ve çözümünü de kaydedin; birkaç ay sonra bu notlar, hiçbir kursun veremeyeceği kişisel bir başvuru kaynağına dönüşür.

İlk projeniz için hangi fikirler uygun?

İyi bir ilk proje küçük, temiz veriye sahip ve sonucu yorumlanabilir olmalıdır. Aşağıdaki fikirler bu ölçütlere uyar ve çoğu için açık veri setleri mevcuttur.

  • Konut fiyatı tahmini: regresyonu ve özellik mühendisliğini öğretir.
  • Müşteri kaybı (churn) tahmini: dengesiz sınıfları ve kesinlik ile duyarlılık dengesini öğretir.
  • İstenmeyen e-posta sınıflandırması: metni sayısal özelliğe çevirmeyi öğretir.
  • Müşteri segmentasyonu: K-means ile kümelemeyi ve sonuç yorumlamayı öğretir.

Pazarlama verisiyle çalışıyorsanız churn ve segmentasyon projeleri size doğrudan iş değeri de kazandırır. Örneğin kampanya getirisini hesaplarken ROAS hesaplayıcı gibi basit bir araçla başlayıp, zamanla hangi müşterinin geri döneceğini tahmin eden bir modele geçebilirsiniz.

Projeyi bitirdiğinizde kısa bir özet yazın: problem neydi, hangi veriyi kullandınız, hangi modeli neden seçtiniz, sonuç ne oldu? Bu özet hem öğrendiklerinizi pekiştirir hem de ileride portföyünüzde somut bir kanıt olarak durur. Üstelik yazarken eksik bıraktığınız adımları da fark edersiniz.

Makine öğrenimi iş dünyasında nasıl değer üretir?

Makine öğrenimi kendi başına bir hedef değil, bir karar destek aracıdır. En değerli uygulamalar genellikle tekrar eden ve veri üreten kararlarda ortaya çıkar: hangi potansiyel müşteriye önce dönülmeli, hangi ürün hangi segmente önerilmeli, hangi kampanya bütçesi artırılmalı gibi.

Reklam platformlarının otomatik teklif stratejileri de makine öğrenimi kullanır. Bu yüzden modele iyi sinyal vermek, yani dönüşümleri doğru ölçmek büyük fark yaratır. Bu konuda Google Ads yönetimi tarafında en çok zaman ayırdığım iş, ölçümün temiz olmasını sağlamaktır.

Arama motorları da makine öğrenimiyle çalışıyor ve yapay zeka yanıtları görünürlüğü değiştiriyor. Bu değişimi yapay zeka çağında SEO yazısında ele almıştım. Kısacası makine öğrenimini anlamak, kod yazmasanız bile bu sistemlerle daha bilinçli çalışmanızı sağlar.

Makine öğrenimi öğrenme planınızı nasıl kurmalısınız?

Süre kişiden kişiye çok değişir; bu yüzden size kesin bir takvim vermiyorum. Bunun yerine aşama bazlı bir plan öneriyorum. Her aşamayı bitirdiğinizde bir sonrakine geçin, takvime değil yetkinliğe bakın.

  1. Python ve Pandas ile bir CSV dosyasını okuyup özetleyebilmek.
  2. Iris ya da benzer bir veri setinde eğitim, test ve ölçüm akışını kurabilmek.
  3. Gerçek, dağınık bir veri setini temizleyip Pipeline ile modellemek.
  4. Çapraz doğrulama ve parametre aramasıyla modeli iyileştirmek.
  5. Sonucu teknik olmayan birine anlaşılır bir raporla sunmak.

Beşinci aşamayı özellikle önemsiyorum. Bir modelin değeri, karar vericinin onu anlayıp kullanmasıyla ortaya çıkar. Bu açıdan raporu doğru okuma becerisi, model kurma becerisi kadar kıymetlidir.

Derin öğrenmeye ne zaman geçmelisiniz?

Klasik makine öğrenimi akışını rahatça kurabildiğinizde derin öğrenmeye geçmek mantıklıdır. Yani veriyi bölmek, aşırı öğrenmeyi fark etmek ve doğru metriği seçmek sizin için doğal hale gelmiş olmalı. Çünkü bu kavramlar sinir ağlarında da aynen geçerlidir.

Derin öğrenme özellikle görüntü, ses ve metin gibi yapılandırılmamış verilerde güçlüdür. Ancak tablo halindeki iş verilerinde, yani satış, müşteri ve kampanya tablolarında, ağaç tabanlı klasik modeller çoğu zaman hâlâ çok rekabetçidir. Bu nedenle problem türüne göre seçim yapın, trende göre değil.

Son olarak şunu hatırlatayım: sağlam temel, ileride öğreneceğiniz her aracı kolaylaştırır. Eğer yazılım ekibinizle birlikte veri odaklı bir web ya da e-ticaret projesi planlıyorsanız e-ticaret danışmanlığı kapsamında ölçüm altyapısını birlikte kurgulayabiliriz.

Sıkça Sorulan Sorular

Makine öğrenimi için ileri düzey matematik şart mı?
Hayır, başlamak için şart değil. Temel Python ve ortalama, dağılım, olasılık gibi istatistik kavramlarıyla ilk modelinizi kurabilirsiniz. Lineer cebir ve türev bilgisi, algoritmaların içini anlamak istediğinizde ve derin öğrenmeye geçtiğinizde önem kazanır. Bu yüzden önce çalışan bir örnek yapın, teoriyi ihtiyaç duydukça derinleştirin.
Makine öğrenimine başlamak için hangi programlama dili daha uygun?
Çoğu yeni başlayan için Python en pratik seçimdir. scikit-learn, Pandas ve NumPy gibi kütüphaneler olgun, dokümantasyonları zengin ve topluluk desteği geniştir. R de istatistik ağırlıklı işlerde güçlüdür. Ancak kaynak bolluğu ve iş ilanlarındaki yaygınlık nedeniyle ben başlangıçta Python öneriyorum.
scikit-learn ile derin öğrenme yapabilir miyim?
Kısmen, ama asıl amacı bu değil. scikit-learn basit bir çok katmanlı algılayıcı modeli içerir, fakat GPU desteği ve büyük sinir ağı mimarileri sunmaz. Derin öğrenme için PyTorch ya da TensorFlow gibi kütüphaneler kullanılır. scikit-learn ise klasik algoritmalar, veri hazırlığı ve model değerlendirme için idealdir.
İlk modelim için ne kadar veri gerekir?
Kesin bir sayı yok; problemin karmaşıklığına bağlıdır. Öğrenme amacıyla Iris gibi 150 örnekli küçük bir veri seti bile yeterlidir. Gerçek iş problemlerinde ise sınıf başına yeterli örnek olması, veri miktarından daha önemlidir. Az örnekli bir sınıf varsa model o sınıfı öğrenmekte zorlanır.
Doğruluk skoru yüksekse model iyi demek mi?
Her zaman değil. Sınıflar dengesizse, yani bir sınıf çok nadirse, model yalnızca çoğunluk sınıfını tahmin ederek yüksek doğruluk alabilir. Bu durumda kesinlik, duyarlılık, F1 skoru ve karışıklık matrisine bakmanız gerekir. Ayrıca eğitim ve test skorunu karşılaştırarak aşırı öğrenmeyi kontrol edin.
Makine öğrenimi öğrenmek pazarlamacıya ne kazandırır?
Makine öğrenimi bilgisi, reklam platformlarının otomatik teklif sistemlerini ve arama motorlarının sıralama mantığını daha iyi anlamanızı sağlar. Ayrıca müşteri segmentasyonu, kayıp tahmini ve potansiyel müşteri puanlama gibi işleri veriyle yapabilirsiniz. Kod yazmasanız bile veri ekibiyle daha verimli iletişim kurar, doğru soruları sorarsınız.
#makine öğrenimi#machine learning#scikit-learn#python#yapay zeka#veri bilimi#yazılım
Paylaş:
Talha Aslan
Talha Aslan

Google Partner dijital pazarlama uzmanı. 2012’den beri SEO, Google Ads, web tasarım ve e-ticaret projelerinde sahada; bu blogda gördüğünüz her yazı o deneyimden çıkar.

Sıradaki proje

Projenizi konuşalım.

Aracı yok, katman yok: doğrudan işi yapacak uzmanla konuşursunuz. İlk istişare ücretsizdir; hedefinizi dinler, net bir yol haritasıyla dönerim.

WhatsApp Hemen Ara