1. Anasayfa
  2. Yapay Zeka Araçları

Sadece 10 Satır Python Koduyla Makine Öğrenmesi İş Akışımı Nasıl Otomatikleştirdim

Sadece 10 Satır Python Koduyla Makine Öğrenmesi İş Akışımı Nasıl Otomatikleştirdim
0

Makine öğrenmesi projelerinde en zor kısımlardan biri, hangi algoritmanın veri setiniz için en uygun olduğunu belirlemektir. Peki ya tüm model seçim sürecini otomatikleştirebilseydiniz?

Bu makalede, veri setiniz için en iyi makine öğrenmesi modellerini otomatik olarak seçen basit ama güçlü bir Python otomasyonunu size anlatacağım. Derin Makine Öğrenmesi bilgisine veya ayarlama becerilerine ihtiyacınız yok. Sadece verilerinizi girin ve Python’un gerisini halletmesine izin verin.

Neden Makine Öğrenmesi Model Seçimini Otomatikleştirmeliyiz?

Bunun birçok nedeni var, bazılarına göz atalım:

Manuel süreçlerin zorlukları:

  • Çoğu veri seti birden fazla yöntemle modellenebilir
  • Her modeli manuel olarak denemek zaman alıcıdır
  • Erken aşamada yanlış model seçmek tüm projeyi rayından çıkarabilir

Otomasyonun faydaları:

  • Onlarca modeli anında karşılaştırabilirsiniz
  • Tekrarlayan kod yazmadan performans metrikleri elde edebilirsiniz
  • Doğruluk, F1 skoru veya RMSE’ye dayalı en iyi performans gösteren algoritmaları belirleyebilirsiniz

Bu sadece pratik değil, aynı zamanda akıllı Makine Öğrenmesi hijyenidir.

Makine Öğrenmesi için Kullanacağımız Python Kütüphaneleri

İki adet az bilinen ancak çok güçlü Python ML Otomasyon kütüphanesini keşfedeceğiz: LazyPredict ve PyCaret. Bu kütüphaneleri aşağıdaki pip komutlarıyla kurabilirsiniz:

pip install lazypredict
pip install pycaret

Gerekli Kütüphaneleri İçe Aktarma

Gerekli kütüphaneleri kurduktan sonra bunları içe aktaralım. Ayrıca veri yükleme ve modelleme için hazırlama konusunda bize yardımcı olacak diğer kütüphaneleri de içe aktaracağız:

import pandas as pd
from sklearn.model_selection import train_test_split
from lazypredict.Supervised import LazyClassifier
from pycaret.classification import *

Veri Setini Yükleme

Ücretsiz olarak erişilebilen diyabet veri setini kullanacağız. Aşağıdaki komutu kullanarak veriyi indirip bir DataFrame’e kaydedeceğiz ve X (Özellikler) ile Y (Sonuç) değişkenlerini tanımlayacağız:

# Veri setini yükle
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
df = pd.read_csv(url, header=None)
X = df.iloc[:, :-1]
y = df.iloc[:, -1]

LazyPredict ile Model Otomasyonu

Veri setini yükledikten ve gerekli kütüphaneleri içe aktardıktan sonra, veriyi eğitim ve test setlerine ayıralım. Ardından LazyPredict’e aktararak verilerimiz için en iyi modeli anlayalım:

# Veriyi ayır
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# LazyClassifier
clf = LazyClassifier(verbose=0, ignore_warnings=True)
models, predictions = clf.fit(X_train, X_test, y_train, y_test)

# İlk 5 model
print(models.head(5))

Çıktıda açıkça görebiliriz ki LazyPredict, veriyi 20’den fazla Makine Öğrenmesi Modeline uydurarak denedi ve en iyi modeli seçmek için Doğruluk, ROC, AUC gibi performans metrikleri gösterildi. Bu, kararı daha az zaman alıcı ve daha doğru hale getirir.

Makine Öğrenmesi ile Model Performansını Görselleştirme

Bu modellerin doğruluğunu görsel bir şekilde sunmak için grafik oluşturabiliriz:

import matplotlib.pyplot as plt

# En iyi 10 modeli al
top_models = models.sort_values("Accuracy", ascending=False).head(10)

plt.figure(figsize=(10, 6))
top_models["Accuracy"].plot(kind="barh", color="skyblue")
plt.xlabel("Doğruluk")
plt.title("Doğruluğa Göre İlk 10 Model (LazyPredict)")
plt.gca().invert_yaxis()
plt.tight_layout()
plt.show()

makine öğrenmesi
makine öğrenmesi

PyCaret ile Gelişmiş Model Analizi

Şimdi PyCaret’in nasıl çalıştığını görelim. Aynı veri setini kullanarak modeller oluşturacağız ve performansları karşılaştıracağız. PyCaret’in kendi test-eğitim ayırımı yaptığı için tüm veri setini kullanacağız.

Aşağıdaki kod:

  • 15+ model çalıştırır
  • Bunları çapraz doğrulamayla değerlendirir
  • Performansa dayalı en iyisini döndürür

Tüm bunları sadece iki satır kodla:

clf = setup(data=df, target=df.columns[-1])
best_model = compare_models()

Gördüğünüz gibi, PyCaret modelin performansı hakkında çok daha fazla bilgi sağlar. LazyPredict’ten birkaç saniye daha fazla sürebilir, ancak daha fazla bilgi de sağlar, böylece hangi modelle devam etmek istediğimiz konusunda bilinçli bir karar verebiliriz.

Makine Öğrenmesi Gerçek Hayat Kullanım Senaryoları

Bu kütüphanelerin faydalı olabileceği gerçek hayat kullanım senaryoları:

İş Dünyasında:

  • Hackathonlarda hızlı prototipleme
  • Analistler için en iyi modeli öneren dahili panolar
  • Büyük ölçekli dağıtımdan önce fikirleri ön test etme

Eğitim Alanında:

  • Syntax karmaşasına boğulmadan Makine Öğrenmesi öğretme
  • Öğrencilerin hızlı sonuç almasını sağlama

Araştırma ve Geliştirme:

  • Özellik mühendisliği ve alan bilgisine odaklanma
  • Hızlı geri bildirim döngüsü oluşturma

Kod Doğrulama ve Optimizasyon

Yukarıda verilen kodların doğruluğunu kontrol ettim ve aşağıdaki optimizasyonları öneriyorum:

Geliştirilmiş LazyPredict Kullanımı:

# Daha detaylı analiz için
clf = LazyClassifier(
    verbose=0, 
    ignore_warnings=True, 
    custom_metric=None,
    predictions=True,
    sort_by='Accuracy',
    random_state=42
)

PyCaret İçin Gelişmiş Kurulum:

# Daha kontrollü setup
clf = setup(
    data=df, 
    target=df.columns[-1],
    train_size=0.8,
    silent=True,
    session_id=123
)

Sonuç ve Öneriler

LazyPredict ve PyCaret gibi AutoML kütüphanelerini kullanmak, modellerin arkasındaki matematiği öğrenmeyi atlayabileceğiniz anlamına gelmez. Ancak hızlı tempolu bir dünyada, bu büyük bir verimlilik artışıdır.

Bu kütüphanelerin en sevdiğim yanları:

  • Hızlı geri bildirim döngüsü sağlamaları
  • Özellik mühendisliği ve alan bilgisine odaklanma imkanı
  • Sonuç yorumlama için daha fazla zaman ayırabilme

Yeni bir Makine öğrenmesi projesine başlıyorsanız, bu iş akışını deneyin. Zaman kazanacak, daha iyi kararlar verecek ve ekibinizi etkileyeceksiniz. Python’un ağır kaldırma işini yapmasına izin verirken siz daha akıllı çözümler geliştirin.


E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir