Makine Öğrenmesi Araçları: Temel Kütüphanelerden Modern Yapay Zekâ Platformlarına

1. Giriş: Makine öğrenmesi araçları neden önemlidir?

Makine öğrenmesi (Machine Learning – ML), bilgisayarların açıkça her adım için programlanmadan, verilerden örüntüler öğrenmesini ve öğrendikleri örüntülerden hareketle tahminler veya kararlar üretmesini sağlayan yapay zekâ alanıdır.

Günümüzde makine öğrenmesi; sağlık hizmetlerinden eğitime, finans sektöründen sanayiye, tarımdan siber güvenliğe kadar pek çok alanda kullanılmaktadır. Örneğin bir makine öğrenmesi modeli;

  • Öğrencilerin geçmiş sınav sonuçlarını inceleyerek öğrenme desteğine ihtiyaç duyabilecek öğrencileri belirleyebilir.

  • Evlerin özelliklerinden hareketle satış fiyatlarını tahmin edebilir.

  • E-posta mesajlarını spam veya normal mesaj olarak sınıflandırabilir.

  • Üretim hattındaki sensör verilerini analiz ederek makine arızalarını önceden tahmin edebilir.

  • Müşterilerin alışveriş alışkanlıklarını inceleyerek kişiselleştirilmiş öneriler sunabilir.

  • Ağ trafiğini analiz ederek olağan dışı etkinlikleri tespit etmeye yardımcı olabilir.

Bu uygulamaların geliştirilmesi için yalnızca bir programlama dili bilmek yeterli değildir. Verilerin hazırlanması, uygun algoritmanın seçilmesi, modelin eğitilmesi, performansının ölçülmesi ve gerçek bir uygulamada kullanılabilir hâle getirilmesi gerekir.

Makine öğrenmesi araçları, bu aşamaları kolaylaştıran kütüphaneler, yazılım çerçeveleri, geliştirme ortamları ve bulut platformlarından oluşur.

Designing an Interpretable Credit Risk Model Using Machine Learning: A Case Study on Legal Professionals | by Dara Tioluwani | Feb, 2026 | Medium
Cross Validation and Classification Metrics | by M J | Medium

Makine öğrenmesi araçlarını öğrenmek isteyen bir kişinin öncelikle şu ayrımı anlaması gerekir:

  • Programlama dili: Python gibi, uygulamanın yazıldığı dil.

  • Kütüphane: Belirli işlemleri gerçekleştirmek için hazır işlevler sunan yazılım bileşeni.

  • Makine öğrenmesi çerçevesi (framework): Model oluşturma, eğitme ve çalıştırma süreçlerini destekleyen kapsamlı yapı.

  • Geliştirme ortamı: Kodların yazıldığı, çalıştırıldığı ve test edildiği ortam.

  • Platform: Model geliştirme, eğitim, dağıtım ve izleme gibi birden fazla aşamayı destekleyebilen sistem.

Örneğin Python bir programlama dili, scikit-learn bir makine öğrenmesi kütüphanesi, TensorFlow bir makine öğrenmesi çerçevesi, Google Colab ise kod geliştirme ve çalıştırma ortamıdır. Amazon SageMaker gibi platformlar ise model geliştirme ve dağıtım süreçlerini bir araya getirebilir.

2. Makine öğrenmesi araçlarının genel sınıflandırması

Makine öğrenmesi araçlarını yalnızca popülerliklerine göre değil, hangi problemi çözmek için kullanıldıklarına göre değerlendirmek daha doğrudur.

1. Klasik makine öğrenmesi

scikit-learn, XGBoost, LightGBM, CatBoost

Sınıflandırma, regresyon, kümeleme ve tablo biçimindeki verilerin analizi için kullanılır.

2. Derin öğrenme

TensorFlow, Keras, PyTorch

Görüntü, ses, metin ve karmaşık örüntüler üzerinde çok katmanlı sinir ağları geliştirmek için kullanılır.

3. Büyük veri ve dağıtık makine öğrenmesi

Apache Spark MLlib

Büyük veri kümelerinin birden fazla işlemci veya bilgisayar üzerinde işlenmesini destekler.

4. Bulut tabanlı makine öğrenmesi

Amazon SageMaker AI, Google Vertex AI, Azure Machine Learning

Model eğitimi, deney yönetimi, ölçeklendirme ve uygulamaya alma süreçlerini destekler.

5. Model yaşam döngüsü ve yönetimi

MLflow, ONNX, Optuna, Weights & Biases

Deneylerin kaydedilmesi, modellerin karşılaştırılması, hiperparametre ayarı ve dağıtım süreçlerinin yönetilmesine yardımcı olur.

Bu sınıflar birbirlerinin alternatifi olmak zorunda değildir. Örneğin bir geliştirici, verileri Pandas ile hazırlayabilir, scikit-learn ile model eğitebilir, MLflow ile deneylerini takip edebilir ve modeli bir web uygulamasında kullanabilir.

3. Makine öğrenmesi araçları

Bazıları doğrudan model geliştirme kütüphanesi, bazıları ise daha kapsamlı bir platform veya dağıtık veri işleme çözümüdür.

3.1. TensorFlow

File:TensorFlow logo.svg - Wikimedia Commons

TensorFlow

Derin öğrenme ve makine öğrenmesi çerçevesi

TensorFlow, büyük ölçüde Google tarafından geliştirilen, makine öğrenmesi modelleri oluşturmak, eğitmek ve farklı ortamlarda çalıştırmak için kullanılan açık kaynaklı bir yazılım çerçevesidir.

TensorFlow, özellikle yapay sinir ağları ve derin öğrenme uygulamalarında öne çıkar. Sayısal hesaplamaları tensörler üzerinden gerçekleştirir. Tensörler, tek bir sayıdan çok boyutlu veri dizilerine kadar farklı boyutlarda olabilen veri yapılarıdır.

Başlıca kullanım alanları

  • Görüntü sınıflandırma ve nesne tanıma

  • Doğal dil işleme

  • Zaman serisi analizi ve tahmin

  • Ses işleme

  • Derin sinir ağları

  • Mobil ve uç cihazlarda yapay zekâ uygulamaları

Avantajları

  • Karmaşık sinir ağları oluşturmak için kapsamlı araçlar sunar.

  • GPU ve uygun donanımlarda hızlandırılmış hesaplamayı destekler.

  • Model eğitimi ve çıkarım işlemleri için farklı dağıtım seçenekleri bulunur.

  • Keras ile birlikte kullanıldığında model geliştirme süreci kolaylaşır.

Sınırlılıkları

  • Basit makine öğrenmesi problemlerinde gereğinden fazla kapsamlı olabilir.

  • Derin öğrenme modellerinin eğitimi, donanım ve veri ihtiyacı bakımından maliyetli olabilir.

  • Başlangıç düzeyindeki kullanıcıların tensörler, gradyanlar ve eğitim döngüleri gibi kavramları öğrenmesi gerekebilir.

Örneğin bir okulun geçmiş öğrenci performanslarından yararlanarak tahmin yapmak için önce scikit-learn yeterli olabilir. Görüntü veya ses verilerinden karmaşık özellikler öğrenmek gerektiğinde TensorFlow gibi bir çerçeve daha uygun hâle gelebilir.

3.2. Keras

Keras Logo PNG Vector (SVG) Free Download

Keras

Yüksek seviyeli derin öğrenme API'si

Keras, sinir ağlarının daha okunabilir ve anlaşılır kodlarla oluşturulmasını sağlayan bir derin öğrenme API'sidir. Güncel Keras, TensorFlow yanında desteklenen diğer arka uçlarla da kullanılabilir.

Keras'ın temel amacı, geliştiricinin modelin matematiksel ve mimari yapısını tanımlamasını kolaylaştırmaktır. Katmanlar, kayıp fonksiyonları, optimizasyon algoritmaları ve eğitim ayarları daha anlaşılır bir arayüz üzerinden yönetilebilir.

Temel kavramlar

  • Model: Öğrenilecek matematiksel yapının bütünü.

  • Katman (Layer): Veriyi işleyen ve sonraki katmana aktaran yapı.

  • Optimizer: Modelin öğrenme sırasında ağırlıklarını nasıl güncelleyeceğini belirleyen algoritma.

  • Loss function: Tahminlerle gerçek değerler arasındaki hatayı ölçen fonksiyon.

  • Epoch: Eğitim verisinin model tarafından bir kez işlenmesini ifade eden tur.

Örnek bir sinir ağı modeli:

import keras
from keras import layers

model = keras.Sequential([
    layers.Input(shape=(4,)),
    layers.Dense(16, activation="relu"),
    layers.Dense(8, activation="relu"),
    layers.Dense(1, activation="sigmoid")
])

model.compile(
    optimizer="adam",
    loss="binary_crossentropy",
    metrics=["accuracy"]
)

model.summary()

Bu örnekte dört özellik alan bir model oluşturulmuştur. Ara katmanlar örüntüleri öğrenmeye yardımcı olurken çıkış katmanındaki sigmoid aktivasyonu, ikili sınıflandırma için 0 ile 1 arasında bir değer üretir.

Kod, modeli tanımlar ve eğitim için yapılandırır; tek başına modeli eğitmez. Eğitim için uygun verilerle model.fit() çağrısı yapılmalıdır.

Keras; öğrencilerin derin öğrenme mantığını öğrenmesi, hızlı prototip hazırlanması ve sinir ağlarının katman katman incelenmesi açısından oldukça elverişlidir.

3.3. scikit-learn

Surprise Package not working in Sci Kit learn | by Simeon Ifalore | Medium

scikit-learn

Klasik makine öğrenmesi kütüphanesi

scikit-learn, Python ile makine öğrenmesine başlamak için en kullanışlı araçlardan biridir. Veri hazırlama, algoritma uygulama, model değerlendirme ve hiperparametre seçimi gibi işlemleri destekler.

Başlıca algoritmaları

  • Doğrusal ve lojistik regresyon

  • Karar ağaçları

  • Rastgele ormanlar (Random Forest)

  • Destek vektör makineleri (SVM)

  • K-en yakın komşu (KNN)

  • Naive Bayes

  • K-Means kümeleme

  • Temel bileşen analizi (PCA)

Kullanım alanları

  • Öğrenci başarı tahmini

  • Müşteri kaybı tahmini

  • Spam filtreleme

  • Satış ve talep tahmini

  • Müşteri gruplarının belirlenmesi

  • Verilerdeki olağan dışı örüntülerin incelenmesi

Basit bir sınıflandırma örneği:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

iris = load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(
    X, y,
    test_size=0.2,
    random_state=42,
    stratify=y
)

model = RandomForestClassifier(
    n_estimators=100,
    random_state=42
)

model.fit(X_train, y_train)

tahminler = model.predict(X_test)
print("Doğruluk:", accuracy_score(y_test, tahminler))

Bu örnek, Iris çiçeği veri kümesindeki dört ölçümden yararlanarak çiçek türünü tahmin eder. Eğitim ve test verilerinin ayrılması, modelin daha önce görmediği veriler üzerindeki performansını değerlendirmeyi sağlar.

Önemli avantajı: scikit-learn, klasik makine öğrenmesi iş akışını anlaşılır bir biçimde öğretir. Özellikle temel Python, NumPy ve Pandas bilgisi olan öğrenciler için iyi bir başlangıç noktasıdır.

Bununla birlikte scikit-learn, büyük derin öğrenme modellerini geliştirmek için tasarlanmış kapsamlı bir sinir ağı çerçevesinin yerini tutmaz.

3.4. Caffe2

Caffe2 | PPTX | Web Development | Internet

Caffe2

Tarihsel derin öğrenme çerçevesi

Caffe2, özellikle verimli derin öğrenme uygulamaları ve üretim ortamlarında model çalıştırma amacıyla geliştirilmiş bir yazılım çerçevesiydi.

Caffe2, Facebook AI Research tarafından geliştirilen Caffe ekosisteminin devamı niteliğindeki teknolojilerden biriydi. Mobil cihazlar ve üretim sistemleri gibi farklı ortamlarda derin öğrenme modellerinin çalıştırılması hedefleniyordu.

Ancak görseldeki araçlar arasında güncellik bakımından önemli bir fark vardır: Caffe2 artık yeni projeler için bağımsız bir başlangıç seçeneği olarak önerilmez. Caffe2'nin geliştirme çizgisi PyTorch ekosistemiyle birleştirilmiştir.

Bugün benzer amaçlarla değerlendirebileceğiniz seçenekler şunlardır:

  • PyTorch: Derin öğrenme modellerinin geliştirilmesi ve eğitilmesi.

  • TorchScript ve ilgili dağıtım yöntemleri: Uygun senaryolarda modellerin farklı çalışma ortamlarına taşınması.

  • ONNX: Desteklenen modellerin ortak bir biçimde dışa aktarılması ve farklı çalışma ortamlarında kullanılabilmesi.

  • ONNX Runtime: Uygun ONNX modellerinin çıkarım işlemlerinde çalıştırılması.

Caffe2, eski projeleri anlamak, geçmiş sistemleri incelemek ve derin öğrenme teknolojilerinin gelişimini öğrenmek açısından önemlidir. Fakat yeni bir eğitim laboratuvarı kurulurken öncelik PyTorch, TensorFlow veya Keras'a verilmelidir.

3.5. Apache Spark MLlib

Apache Spark Architecture Explained

Apache Spark MLlib

Büyük veri için dağıtık makine öğrenmesi

Apache Spark MLlib, büyük veri kümeleri üzerinde makine öğrenmesi işlemlerini ölçeklendirmek için kullanılan Spark ekosisteminin makine öğrenmesi kütüphanesidir.

Geleneksel makine öğrenmesi araçları çoğu zaman tek bir bilgisayarda çalıştırılabilir. Ancak veri miktarı çok büyüdüğünde verilerin depolanması, işlenmesi ve modelleme işlemleri daha fazla hesaplama kaynağı gerektirebilir.

Apache Spark, veriyi birden fazla makineye dağıtarak işlemeyi destekler. MLlib ise bu ortamda çeşitli makine öğrenmesi algoritmalarının ve veri işleme süreçlerinin uygulanmasına yardımcı olur. Güncel Spark belgelerinde DataFrame tabanlı spark.ml API'si temel kullanım yolu olarak öne çıkar.

Spark 4.2.0 Documentation
+1

Başlıca özellikleri

  • Sınıflandırma ve regresyon

  • Karar ağaçları ve rastgele ormanlar

  • Kümeleme algoritmaları

  • Öneri sistemleri

  • Özellik çıkarımı ve dönüşümü

  • Makine öğrenmesi işlem hatları (pipeline)

  • Model değerlendirme ve hiperparametre ayarı

Örneğin milyonlarca satış kaydını analiz ederek ürün talebini tahmin etmek isteyen bir kuruluş, verilerini Spark üzerinde hazırlayıp MLlib algoritmalarını kullanabilir.

Avantajları

  • Büyük veri kümelerinde dağıtık işleme olanağı sağlar.

  • Veri hazırlama ile modelleme süreçlerini bir araya getirebilir.

  • Python, Scala, Java ve R gibi dillerle kullanılabilir.

Sınırlılıkları

  • Küçük veri kümelerinde Spark altyapısı gereksiz karmaşıklık oluşturabilir.

  • Küme yönetimi ve dağıtık işlem kavramlarını öğrenmek gerekir.

  • Her gelişmiş derin öğrenme senaryosu için tek başına yeterli değildir.

Bu nedenle Spark MLlib, öncelikle büyük veri mühendisliği ve kurumsal veri analitiği projelerinde değerlendirilmelidir.

3.6. OpenNN

Open NN: An Open Source Neural Networks C++ Library

OpenNN

Sinir ağı geliştirme kütüphanesi

OpenNN, yapay sinir ağları geliştirmek ve sayısal veriler üzerinde tahmin modelleri oluşturmak amacıyla kullanılan açık kaynaklı bir yazılım kütüphanesidir.

OpenNN, özellikle sayısal verilerle çalışan sinir ağı modelleri ve tahmin uygulamaları açısından değerlendirilebilir. Klasik makine öğrenmesi araçlarından farklı olarak sinir ağlarının yapısı ve eğitimi üzerine odaklanır.

Kullanılabileceği alanlar

  • Sayısal değer tahmini

  • Mühendislik hesaplamaları

  • Sistem modelleme

  • Zaman serisi ve süreç tahmini

  • Deneysel sinir ağı çalışmaları

Örneğin bir üretim tesisinde sıcaklık, basınç ve motor titreşimi gibi ölçümlerden yararlanılarak belirli bir performans değerinin tahmin edilmesi için sinir ağı tabanlı bir model geliştirilebilir.

OpenNN'nin öğrenilmesi, sinir ağlarının farklı yazılım ekosistemlerinde nasıl ele alındığını anlamak açısından yararlıdır. Ancak geniş eğitim kaynakları, topluluk desteği ve çok çeşitli uygulama örnekleri arayan başlangıç seviyesindeki kullanıcılar için scikit-learn, Keras ve PyTorch genellikle daha pratik seçeneklerdir.

3.7. Amazon SageMaker AI

How Amazon SageMaker AI can unlock ML for your business - The Scale Factory

Amazon SageMaker AI

Bulut tabanlı makine öğrenmesi platformu

Amazon SageMaker AI, AWS bulut altyapısında makine öğrenmesi modellerini geliştirmek, eğitmek, dağıtmak ve yönetmek için kullanılan bir platformdur.

SageMaker AI, tek başına bir makine öğrenmesi algoritması değildir. Geliştiricilerin farklı algoritmaları ve çerçeveleri kullanarak model geliştirmesine yardımcı olan yönetilen bir ortam sunar. Python, R, scikit-learn, PyTorch ve TensorFlow gibi araçlarla çalışma seçenekleri bulunur.

Amazon SageMaker AI
+1

Başlıca kullanım alanları

  • Bulutta model eğitimi

  • Büyük veri kümelerinin işlenmesi

  • GPU gibi hızlandırılmış hesaplama kaynaklarının kullanılması

  • Eğitilmiş modellerin servis olarak sunulması

  • Model sürümlerinin ve deneylerin yönetilmesi

  • Kurumsal makine öğrenmesi süreçlerinin otomasyonu

Örnek senaryo: Bir e-ticaret kuruluşu, geçmiş satış kayıtlarından yararlanarak gelecek ayın ürün talebini tahmin etmek istiyor. Veri hazırlama ve model geliştirme işlemleri uygun bir Python çerçevesiyle yapılabilir; eğitim için bulut kaynakları kullanılabilir ve eğitilmiş model bir uygulamanın çağırabileceği servis hâline getirilebilir.

Avantajları

  • İhtiyaca göre hesaplama kaynakları seçilebilir.

  • Büyük modeller için yönetilen altyapı seçenekleri bulunur.

  • Model eğitimi ve dağıtım süreçleri aynı ekosistemde yönetilebilir.

Sınırlılıkları

  • AWS hesabı ve uygun yetkilendirme yapılandırması gerektirir.

  • Hesaplama ve depolama kullanımına bağlı ücretler oluşabilir.

  • Bulut, kimlik ve erişim yönetimi konularının öğrenilmesi gerekir.

  • Bulut kullanımı veri gizliliği ve mevzuat açısından ayrıca değerlendirilmelidir.

Eğitim amaçlı küçük veri kümeleri için başlangıçta SageMaker kullanmak şart değildir. Yerel bilgisayar veya Google Colab gibi ortamlar çoğu temel uygulama için yeterlidir.

4. Günümüzde öğrenilmesi yararlı makine öğrenmesi araçları

Özellikle PyTorch, XGBoost, LightGBM, CatBoost, Hugging Face, MLflow ve Optuna, eğitim planına eklenmeye değer seçeneklerdir.

4.1. PyTorch

Pytorch PNG Logo — Download Free Transparent Logo

PyTorch

Derin öğrenme ve yapay zekâ araştırmaları

Esnek model oluşturma yapısı, otomatik türev hesaplama sistemi ve GPU desteğiyle derin öğrenme projelerinde yaygın olarak kullanılan bir çerçevedir.

PyTorch özellikle aşağıdaki uygulamalarda değerlidir:

  • Görüntü işleme

  • Doğal dil işleme

  • Büyük dil modelleri

  • Derin sinir ağları

  • Araştırma ve deneysel model geliştirme

  • Üretken yapay zekâ sistemleri

PyTorch, modelin hesaplama adımlarını açıkça kontrol etmeyi kolaylaştırdığı için eğitim amaçlı da uygundur. Öğrenciler tensör işlemlerini, gradyanları ve eğitim döngülerini daha yakından inceleyebilir.

Keras'ın daha yüksek seviyeli arayüzü hızlı başlangıç için elverişliyken PyTorch, hesaplama akışını ayrıntılı biçimde kontrol etmek isteyen kullanıcılar için iyi bir seçenektir.

4.2. XGBoost

XGBoost Logo PNG Vector, Icon Free Download

XGBoost

Gradyan artırmalı karar ağaçları

XGBoost, özellikle yapılandırılmış ve tablo biçimindeki veriler üzerinde sınıflandırma ve regresyon modelleri geliştirmek için kullanılan bir kütüphanedir.

XGBoost, birden fazla karar ağacını ardışık biçimde bir araya getirerek model performansını iyileştirmeyi amaçlayan gradient boosting yaklaşımını uygular.

Örneğin:

  • Ev fiyatı tahmini

  • Kredi riskinin değerlendirilmesi

  • Satış tahmini

  • Müşteri kaybı tahmini

  • Üretimde kalite kontrol

  • Dolandırıcılık tespitine yönelik sınıflandırma

XGBoost'un önemli avantajı, tablo verilerinde güçlü sonuçlar verebilmesidir. Ancak her veri kümesinde en iyi sonucu vereceği garanti değildir; başka modellerle karşılaştırılması gerekir.

4.3. LightGBM

You’re very welcome, Abhay! - Abhay singh - Medium

LightGBM

Verimli gradient boosting

LightGBM, özellikle büyük veya çok sayıda özelliğe sahip tablo verileri üzerinde gradient boosting modellerini verimli biçimde eğitmek için geliştirilmiştir.

LightGBM, hız ve bellek kullanımı bakımından avantaj sağlayabilecek bir ağaç tabanlı öğrenme yöntemidir. Uygun veri kümelerinde XGBoost'a alternatif olarak kullanılabilir.

Bununla birlikte performans; veri büyüklüğüne, özelliklerin yapısına, parametrelere ve donanıma göre değişir. Bu nedenle yalnızca kütüphanenin adından hareketle seçim yapmak yerine deneysel karşılaştırma yapılmalıdır.

4.4. CatBoost

CatBoost Logo PNG Vector (SVG) Free Download

CatBoost

Kategorik veriler için gradient boosting

CatBoost, özellikle kategorik özelliklerin bulunduğu tablo verilerinde yararlı olabilen bir makine öğrenmesi kütüphanesidir.

Örneğin bir satış veri kümesinde ürün kategorisi, şehir, müşteri segmenti ve ödeme türü gibi kategorik alanlar bulunabilir. CatBoost bu tür verilerle çalışmayı kolaylaştıran özellikler sunar.

XGBoost, LightGBM ve CatBoost aynı genel problem sınıfında değerlendirilebilir; aralarındaki seçim, veri yapısı ve model başarımına göre yapılmalıdır.

4.5. Hugging Face Transformers

Hugging Face Logo PNG Vector (SVG) Free Download

Hugging Face Transformers

Önceden eğitilmiş yapay zekâ modelleri

Metin, görüntü, ses ve çok modlu verilerle çalışan önceden eğitilmiş modelleri kullanmaya, uyarlamaya ve bazı durumlarda eğitmeye yardımcı olan araçlar bütünüdür.

Hugging Face ekosistemi, bir modeli sıfırdan eğitmek yerine uygun bir önceden eğitilmiş modeli kullanarak uygulama geliştirme olanağı sunar.

Başlıca kullanım alanları:

  • Metin sınıflandırma

  • Duygu analizi

  • Metin özetleme

  • Soru-cevap sistemleri

  • Metin üretimi

  • Görüntü sınıflandırma

  • Konuşma ve ses işleme

Örneğin Türkçe müşteri yorumlarını olumlu, olumsuz ve nötr olarak sınıflandırmak için uygun bir önceden eğitilmiş model kullanılabilir. Ancak modelin Türkçe yeterliliği, lisansı, veri gereksinimleri ve değerlendirme sonuçları kontrol edilmelidir.

4.6. MLflow

Aprende a programar desde tu casa

MLflow

Deney takibi ve model yaşam döngüsü

MLflow, makine öğrenmesi deneylerinin kaydedilmesine, modellerin karşılaştırılmasına ve model geliştirme süreçlerinin izlenmesine yardımcı olur.

Bir projede farklı algoritmalar ve hiperparametreler denenebilir. Deneylerin hangi veriyle, hangi ayarlarla ve hangi performans ölçütleriyle gerçekleştirildiğinin kaydedilmesi önemlidir.

MLflow şu ihtiyaçlara cevap verebilir:

  • Model parametrelerini ve ölçüm sonuçlarını kaydetme

  • Deneyleri karşılaştırma

  • Model ve dosyalarını saklama

  • Model sürümlerini yönetme

  • Uygun ortamlarda model dağıtımını destekleme

MLflow; scikit-learn, XGBoost, TensorFlow, PyTorch ve Spark MLlib gibi çeşitli araçlarla bütünleşebilir.

MLflow AI Platform
+2

Bu araç özellikle birden fazla öğrencinin veya geliştiricinin aynı proje üzerinde çalıştığı ortamlarda faydalıdır.

4.7. Optuna

Optuna, makine öğrenmesi modellerinde kullanılacak hiperparametreleri otomatik olarak araştırmaya yardımcı olan bir optimizasyon kütüphanesidir.

Hiperparametreler, model eğitilmeden önce geliştirici tarafından belirlenen ayarlardır. Örneğin karar ağacının derinliği, öğrenme oranı veya bir modelde kullanılacak ağaç sayısı bu gruba girebilir.

Optuna ile farklı parametre kombinasyonları denenebilir ve belirlenen ölçüte göre daha başarılı ayarlar aranabilir.

Ancak otomatik hiperparametre araması her zaman daha iyi bir model sağlayacağı anlamına gelmez. Deneme sayısı arttıkça hesaplama süresi uzayabilir ve değerlendirme verisinin doğru kullanılması gerekir.

4.8. ONNX ve ONNX Runtime

ONNX, desteklenen makine öğrenmesi modellerinin farklı yazılım araçları arasında taşınmasını kolaylaştıran açık bir model biçimidir. ONNX Runtime ise uyumlu ONNX modellerinin farklı donanım ve çalışma ortamlarında yürütülmesine yardımcı olur.

Örneğin bir model scikit-learn veya desteklenen başka bir çerçevede geliştirildikten sonra uygun bir dışa aktarma yöntemiyle ONNX biçimine dönüştürülebilir ve ONNX Runtime üzerinden çalıştırılabilir.

Bu yaklaşım, model geliştirme ortamı ile modelin çalıştırılacağı uygulamanın birbirinden farklı olduğu durumlarda yararlı olabilir. Ancak her modelin her araçtan ONNX biçimine sorunsuz dönüştürülebileceği varsayılmamalıdır.

5. Makine öğrenmesi geliştirme ortamları

Bir makine öğrenmesi kütüphanesi seçmek kadar, bu kütüphaneyi hangi ortamda kullanacağımıza karar vermek de önemlidir.

Google Colab

Tarayıcı üzerinden Python kodları yazmak ve çalıştırmak için kullanılabilir. Kurulum gereksinimini azaltır; eğitimlerde veri analizi, scikit-learn, TensorFlow ve PyTorch uygulamalarına başlamak için elverişlidir.

Web sitesi: Google Colab

Jupyter Notebook

Kod, açıklama metni, tablo ve grafiklerin aynı belge içinde bulunmasını sağlar. Eğitim materyalleri, deneyler ve veri analizi için kullanışlıdır.

Web sitesi: Jupyter

Anaconda

Python ortamlarını ve paket bağımlılıklarını yönetmeye yardımcı olur. NumPy, Pandas, Jupyter ve çeşitli veri bilimi araçlarının birlikte kullanılmasını kolaylaştırabilir.

Web sitesi: Anaconda

Visual Studio Code

Python kodlarının düzenlenmesi, hata ayıklama, Git kullanımı ve proje dosyalarının yönetilmesi için uygundur. Daha kapsamlı projelerde tercih edilebilir.

Web sitesi: Visual Studio Code

Bu ortamlar birbirinin doğrudan alternatifi olmak zorunda değildir. Örneğin öğrenci önce Colab üzerinde algoritmayı öğrenebilir, daha sonra aynı projeyi yerel Python ortamında veya VS Code üzerinde geliştirebilir.

6. Makine öğrenmesi araçlarının karşılaştırılması

Aşağıdaki tabloda temel ve ileri düzey araçların hangi amaçlarla değerlendirilebileceği özetlenmiştir.

Araç

    Temel kullanım

    Öğrenme önceliği

scikit-learn

    Klasik ML algoritmaları

    Çok yüksek

Keras

    Sinir ağları geliştirme

    Yüksek

TensorFlow

    Derin öğrenme ve dağıtım

    Yüksek

PyTorch

    Derin öğrenme ve araştırma

    Yüksek

XGBoost

    Tablo verilerinde tahmin

    Yüksek

LightGBM

    Verimli ağaç tabanlı öğrenme

    Orta-yüksek

CatBoost

    Kategorik verilerle tahmin

    Orta-yüksek

Apache Spark MLlib

    Büyük veri ve dağıtık ML

    İhtiyaca bağlı

Amazon SageMaker AI

    Bulutta model geliştirme ve dağıtım

    İhtiyaca bağlı

Hugging Face Transformers

    Önceden eğitilmiş modeller

    Yüksek

MLflow

    Deney ve model yönetimi

    Orta-yüksek

Optuna

    Hiperparametre optimizasyonu

    Orta

ONNX Runtime

    Uyumlu modelleri çalıştırma

    İhtiyaca bağlı

OpenNN

    Sinir ağı ve sayısal tahmin çalışmaları

    İhtiyaca bağlı

Caffe2

    Eski derin öğrenme projeleri

    Yeni başlayanlar için düşük

Bu sıralama kesin bir kalite sıralaması değildir. Öğrenme önceliği, hedeflenen proje türüne ve eğitim seviyesine göre değişir.

7. Bir makine öğrenmesi projesinde hangi araçlar birlikte kullanılabilir?

Gerçek bir projede tek bir araçla bütün işlemleri yapmak zorunlu değildir. Araçlar, görevlerine göre bir araya getirilebilir.

1. Veri toplama ve hazırlama

Pandas · NumPy · SQL

2. Özellik hazırlama ve algoritma seçimi

scikit-learn · Spark MLlib

3. Model eğitimi

scikit-learn · XGBoost · Keras · PyTorch

4. Değerlendirme ve deney takibi

scikit-learn metrikleri · MLflow · Optuna

5. Uygulamaya alma

FastAPI · ONNX Runtime · bulut platformları

Bu iş akışı örnek niteliğindedir. Her proje bütün bu araçlara ihtiyaç duymaz. Küçük bir sınıflandırma projesi yalnızca Pandas ve scikit-learn kullanılarak tamamlanabilir.

7.1. Veri hazırlama neden önemlidir?

Makine öğrenmesi modelinin başarısı yalnızca algoritmaya bağlı değildir. Eksik değerler, yinelenen kayıtlar, yanlış veri türleri ve hatalı etiketler modelin performansını düşürebilir.

Örneğin öğrenci başarı tahmini projesinde devamsızlık değerlerinin yanlış kaydedilmesi veya aynı öğrenciye ait kayıtların iki kez bulunması sonuçları etkileyebilir.

Bu nedenle verilerin temizlenmesi, özelliklerin uygun biçime dönüştürülmesi ve eğitim-test ayrımının doğru yapılması gerekir.

7.2. Model eğitimi ile model değerlendirmesi arasındaki fark

Modelin eğitim verilerinde başarılı olması, yeni verilerde de başarılı olacağı anlamına gelmez.

  • Eğitim kümesi: Modelin öğrenmesi için kullanılır.

  • Doğrulama kümesi: Model seçiminde ve ayarlarda kullanılabilir.

  • Test kümesi: Nihai performansı bağımsız biçimde değerlendirmek için ayrılır.

Veri miktarı ve problem türüne göre çapraz doğrulama gibi yöntemlerden de yararlanılabilir.

Sınıflandırma problemlerinde doğruluk (accuracy), kesinlik (precision), duyarlılık (recall) ve F1 skoru; regresyonda ise MAE, MSE ve RMSE gibi ölçütler kullanılabilir. Hangi ölçütün uygun olduğu, hataların türüne ve projenin amacına bağlıdır.

8. Eğitim uygulamaları: Araçları kullanarak öğrenme

Aşağıdaki uygulamalar, makine öğrenmesi araçlarını teorik bilgilerle sınırlı kalmadan öğrenmek isteyen öğrenciler ve kurs katılımcıları için hazırlanmıştır.

Giving Computers the Ability to Learn from Data | Machine Learning with PyTorch and Scikit-Learn

Uygulama 1 — Çiçek türü sınıflandırma

Başlangıç

Araç: scikit-learn

Iris veri kümesini yükleyin. Veriyi eğitim ve test kümelerine ayırın. K-en yakın komşu veya Random Forest algoritmasını eğitin. Doğruluk ve karışıklık matrisi üzerinden sonuçları inceleyin.

House Price Prediction Model Using Linear Regression with Scikit-Learn— A Step-by-Step Guide for Absolute Beginners | by Kamalesh Joshi | Medium

Uygulama 2 — Ev fiyatı tahmini

Orta

Araçlar: Pandas, scikit-learn, XGBoost

Ev büyüklüğü, oda sayısı ve konum gibi özellikleri içeren bir veri kümesi hazırlayın. Doğrusal regresyon ve ağaç tabanlı bir modeli karşılaştırın. MAE ve RMSE değerlerini yorumlayın.

Getting Started with DEEP LEARNING | Kaggle

Uygulama 3 — Sinir ağı oluşturma

Orta

Araçlar: Keras veya PyTorch

Basit bir sınıflandırma veri kümesi üzerinde giriş katmanı, gizli katmanlar ve çıkış katmanı oluşturun. Eğitim sürecindeki kayıp değerlerini inceleyin ve farklı katman yapılarını karşılaştırın.

MLflow

Uygulama 4 — Deney takibi

İleri

Araçlar: scikit-learn, MLflow, Optuna

Aynı veri kümesinde farklı algoritmalar ve hiperparametreler deneyin. Her deneyin ayarlarını ve performans sonuçlarını kaydedin. En başarılı modelin neden daha iyi sonuç verdiğini açıklayın.

Turkish NLP Library | VNLP by VNGRS AI

Uygulama 5 — Türkçe metin sınıflandırma

İleri

Araçlar: Hugging Face Transformers

Etiketlenmiş kısa metinlerden oluşan bir veri kümesi hazırlayın. Uygun bir Türkçe modeli seçin. Modelin sınıflandırma sonuçlarını test verileriyle değerlendirin ve yanlış sınıflandırılan örnekleri inceleyin.

9. Makine öğrenmesi araçlarını seçerken dikkat edilmesi gerekenler

Doğru aracı seçmek, en popüler veya en gelişmiş aracı seçmek anlamına gelmez. Seçim yapılırken aşağıdaki ölçütler dikkate alınmalıdır.

  1. Problemin türü: Sınıflandırma, regresyon, kümeleme, görüntü işleme veya doğal dil işleme gibi hedefler belirlenmelidir.

  2. Verinin yapısı: Tablo verileri, metin, görüntü, ses ve zaman serileri farklı yaklaşımlar gerektirebilir.

  3. Veri miktarı: Küçük bir CSV dosyası ile dağıtık sistemlerde işlenmesi gereken büyük veri kümeleri aynı altyapıyı gerektirmez.

  4. Donanım: CPU yeterli olabilir; büyük sinir ağları için GPU gerekebilir.

  5. Öğrenme maliyeti: Kullanıcıların mevcut Python bilgisi ve araçların karmaşıklığı göz önünde bulundurulmalıdır.

  6. Dağıtım ihtiyacı: Modelin masaüstü uygulamasında, web servisinde, mobil cihazda veya bulutta çalışıp çalışmayacağı belirlenmelidir.

  7. Lisans ve maliyet: Yazılım lisansı, bulut ücretleri, model kullanım koşulları ve veri saklama maliyetleri incelenmelidir.

  8. Gizlilik ve güvenlik: Özellikle öğrenci bilgileri ve kurumsal veriler için erişim denetimi, veri minimizasyonu ve güvenli depolama sağlanmalıdır.

9.1. Sık yapılan hatalar

  • Modelin yalnızca doğruluk oranına bakarak seçilmesi.

  • Test verilerinin model geliştirme sürecinde tekrar tekrar kullanılması.

  • Eğitim ve test verileri arasında veri sızıntısı oluşması.

  • Farklı modellerin adil olmayan koşullarda karşılaştırılması.

  • Gereksiz yere karmaşık bir derin öğrenme modeli kullanılması.

  • Modelin belirli bir grupta veya yeni veri koşullarında başarısının incelenmemesi.

  • Model eğitildikten sonra performansının zaman içinde izlenmemesi.

10. Makine öğrenmesi araçlarının geleceği

Makine öğrenmesi ekosistemi, klasik algoritmalardan derin öğrenmeye ve önceden eğitilmiş büyük modellere doğru genişlemiştir. Günümüzde bu araçların yalnızca model eğitmek için değil, modelleri güvenilir ve sürdürülebilir uygulamalara dönüştürmek için de kullanılması önem kazanmıştır.

Öne çıkan yönelimler şunlardır:

  • Önceden eğitilmiş modeller: Her projede sıfırdan model eğitmek yerine mevcut modelleri kullanma veya uyarlama.

  • Otomatik makine öğrenmesi: Uygun algoritma ve hiperparametreleri bulma sürecinin bir bölümünü otomatikleştirme.

  • MLOps: Model geliştirme, dağıtım, izleme ve sürüm yönetimini sistematik hâle getirme.

  • Uç cihazlarda yapay zekâ: Uygun modellerin mobil cihazlarda ve yerel donanımlarda çalıştırılması.

  • Dağıtık öğrenme: Büyük veri ve hesaplama ihtiyaçlarının birden fazla kaynağa dağıtılması.

  • Sorumlu yapay zekâ: Gizlilik, adillik, açıklanabilirlik ve güvenlik ölçütlerinin model geliştirme sürecine dâhil edilmesi.

Bu gelişmeler, araçları yalnızca ezberlemek yerine hangi problemin hangi araçla çözülebileceğini anlamayı daha önemli hâle getirmektedir.

11. Sonuç ve öğrenme önerisi

Makine öğrenmesi araçları, yapay zekâ projelerinin geliştirilmesini kolaylaştıran birbirini tamamlayıcı teknolojilerdir. Görselde yer alan TensorFlow, Keras, scikit-learn, Caffe2, Spark MLlib, OpenNN ve Amazon SageMaker farklı amaçlara hizmet eder. Bunlara PyTorch, XGBoost, LightGBM, CatBoost, Hugging Face Transformers, MLflow, Optuna ve ONNX gibi araçlar da eklenebilir.

Yeni başlayan bir öğrenci için en verimli yaklaşım, bütün araçları aynı anda öğrenmeye çalışmak değil, aşamalı bir öğrenme yolu izlemektir:

  1. Python, NumPy ve Pandas ile veri işleme becerisi kazanın.
  2. scikit-learn ile sınıflandırma, regresyon ve kümeleme uygulamaları yapın.
  3. Veri bölme, model değerlendirme ve çapraz doğrulama kavramlarını öğrenin.
  4. Keras veya PyTorch ile temel sinir ağları geliştirin.
  5. Tablo verileri için XGBoost, LightGBM ve CatBoost gibi alternatifleri karşılaştırın.
  6. Hugging Face ile önceden eğitilmiş modelleri kullanmayı deneyin.
  7. İleri aşamada MLflow, Optuna, ONNX ve bulut platformlarını öğrenin.

Özellikle temel Python bilgisine sahip öğrenciler için Pandas + scikit-learn + Keras/PyTorch üçlüsü, makine öğrenmesinin temel kavramlarından derin öğrenme uygulamalarına geçiş için güçlü bir başlangıç oluşturur.

En önemli nokta, araçların isimlerini bilmekten çok, bir problemi doğru tanımlayabilmek, uygun veriyi hazırlayabilmek, doğru değerlendirme yöntemini seçebilmek ve elde edilen sonuçların güvenilirliğini sorgulayabilmektir.

Kaynakça ve ileri okuma

Aşağıdaki resmî dokümantasyonlar, araçları uygulamalı olarak öğrenmek için yararlıdır.

Yorumlar

Bu blogdaki popüler yayınlar

Yapay Zekâ Uygulama Alanları

Görsel ve Video Üretiminde Üretken Yapay Zekâ Araçları

AI ve Toplum – Eğitim, Sağlık, Endüstri ve Kamu Hizmetlerinde Yapay Zekâ