PyCaret ile Makine Öğrenmesi Modeli Kurma, Karşılaştırma ve Seçme
Beceri rehberi

PyCaret ile Makine Öğrenmesi Modeli Kurma, Karşılaştırma ve Seçme

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

PyCaret, makine öğrenmesi iş akışını birkaç işleve indirger. setup, compare_models, tune_model ve save_model ile modeli nasıl kuracağınızı, hangi metrikle seçeceğinizi ve nelere dikkat edeceğinizi gösterir.

Bir bakışta

  1. PyCaret akışı beş adımdır: tanıt, karşılaştır, ayarla, değerlendir, kaydet. Her adım bir öncekinin çıktısını kullanır; ilk denemede varsayılanlar kıyas noktası olur.
  2. compare_models varsayılan olarak doğruluk veya R kare ile sıralar. Dengesiz veride sort parametresiyle F1 gibi bir metrik seçmek gerekir.
  3. İlk sıra kesin kazanan değildir. Fark küçükse basit ve yorumlanabilir model tercih edilir.
  4. tune_model'de choose_better ayarlamanın zarar vermesini önler. Ayarlama her zaman iyileştirme getirmez, aşırı uyuma da yol açabilir.
  5. En büyük tuzak veri sızıntısıdır. Şüpheli derecede yüksek puan çıktığında, tahmin anında bilinemeyecek sütunları arayın.

PyCaret nedir, AutoML kavramından farkı

PyCaret, makine öğrenmesi iş akışını birkaç işleve indirgeyen açık kaynaklı, az kodlu bir Python kütüphanesidir. Veriyi tanıtırsınız, kütüphane çok sayıda algoritmayı aynı ölçütle karşılaştırır, aday modeli ayarlar, grafiklerle değerlendirir ve tahmin hattını dosyaya kaydedersiniz. Sınıflandırma, regresyon, kümeleme, anomali tespiti ve zaman serisi için ayrı modülleri vardır.

AutoML, otomatik model seçimi ve hiperparametre ayarı fikrinin genel adıdır. PyCaret bu fikrin bir uygulamasıdır; bu sayfa kavramı değil, aracın fiilen nasıl kullanıldığını anlatır. Kavramın ayrıntıları için AutoML rehberi blog yazısına bakabilirsiniz.

Az kod, az düşünce demek değildir. Kütüphane teknik işi hızlandırır, ama hangi hedefin tahmin edileceğine, hangi metriğin önemli olduğuna ve sonucun iş kararında nasıl kullanılacağına siz karar verirsiniz. En iyi sonuçlar, veriyi iyi anlayan analistin kütüphaneyi bir kısayol olarak kullanmasıyla çıkar.

Beş adımda uçtan uca akış

PyCaret'te çalışma, her adımın bir öncekinin çıktısını kullandığı bir sırayla ilerler. Önce setup ile veri ve hedef sütun tanıtılır. Sonra compare_models adayları sıralar. Aday ayarlanır, grafiklerle incelenir ve en sonda tahmin hattı olarak kaydedilir.

from pycaret.classification import *

s = setup(veri, target="terk", session_id=tohum) en_iyi = compare_models() plot_model(en_iyi, plot="confusion_matrix") predict_model(en_iyi) save_model(en_iyi, "terk_hatti")

Burada veri, bir pandas tablosu; terk ise tahmin edilecek sütundur. Regresyon için aynı akış regression modülüyle çalışır. Belgelerin hızlı başlangıç sayfasında her işlevin işlevsel ve nesne yönelimli kullanımı yan yana gösterilir; hangisini seçtiğiniz tercihe kalmıştır.

Kendi verinizde ilk çalıştırmada her şeyin varsayılanda bırakılması mantıklıdır. Önce kıyas noktası oluşturun, sonra ayarlayın.

Şekil 1

Her adım bir öncekinin çıktısı üzerine kurulur

PyCaret çalışma akışı

  1. Veriyi tanıtsetup ile veri ve hedef sütun verilir.
  2. Modelleri karşılaştırcompare_models adayları aynı ölçütle sıralar.
  3. Adayı ayarlatune_model hiperparametreleri arar.
  4. Değerlendirplot_model ve predict_model sonucu inceler.
  5. Kaydetsave_model tahmin hattını dosyaya yazar.
Kaynak: PyCaret belgeleri: hızlı başlangıçMindset Institute

setup: veriyi tanıtmak ve sızıntıyı önlemek

setup yalnızca veri ve hedef sütun adı zorunlu olarak ister. Çalışırken özelliklerin veri tipini otomatik algılar ve eksik değerler, kategorik kodlama gibi hazırlık adımlarını kurar. Belgelerde ölçekleme, dönüşüm, özellik mühendisliği ve özellik seçimi için ayrı ayarlar da sıralanır; dengesiz sınıflar için fix_imbalance seçeneği vardır.

Setup'ın hazırladığı asıl şey, doğrulamanın düzenidir. Veri eğitim ve bekletilen küme olarak ayrılır; modeller çapraz doğrulamayla puanlanır. Bekletilen küme, modelin hiç görmediği veride nasıl davrandığını sınamak için kullanılır.

Burada en önemli tuzak veri sızıntısıdır. Hedef sütunun sonucunu doğrudan yansıtan bir sütun, örneğin müşterinin ayrılma tarihi, tahmin edilen şeyin kendisini içeriyorsa model mükemmel görünür ama işe yaramaz. setup'tan önce her sütuna şunu sorun: bu bilgi tahmin anında elimizde olacak mı?

compare_models: adayları adil karşılaştırmak

compare_models, kütüphanedeki her tahmin ediciyi çapraz doğrulamayla eğitir ve ortalama puanları bir tabloda gösterir. Varsayılan olarak yalnız en iyi modeli döndürür. Sıralama ölçütü sınıflandırmada doğruluk, regresyonda belirleme katsayısıdır (R kare); sort parametresiyle başka bir metrik seçilebilir.

Metriği iş sorusuna göre seçin. Müşteri kaybını tahmin eden bir modelde ayrılanların çok az olduğu bir veride doğruluk yanıltıcıdır: herkesin kalacağını söyleyen model yüksek doğruluk alır ama işe yaramaz. F1 gibi sınıf dengesini dikkate alan bir metrik daha anlamlıdır:

en_iyiler = compare_models(sort="F1", n_select=uc_model)

Belgelere göre n_select birden fazla modeli liste olarak döndürür, include yalnızca belirli modelleri karşılaştırır, exclude bazılarını dışarıda bırakır, budget_time ise çalışma süresine sınır koyar. Büyük veride tüm kütüphaneyi koşmak uzun sürebilir; önce include ile birkaç makul adaya inin.

Tablodaki ilk sıra kesin kazanan değildir. Puanlar arasındaki fark küçükse, daha basit ve yorumlanabilir olanı tercih etmek çoğu zaman daha iyidir; standart sapmaya ve eğitim süresine de bakın.

tune_model ve birleştirme yöntemleri

Aday seçildikten sonra tune_model hiperparametre aramasını yapar. Belgelere göre n_iter arama sayısını belirler, optimize hangi metriğin iyileştirileceğini söyler ve choose_better, ayarlama sonucu daha iyi değilse girdi modelini geri döndürür. Varsayılan arama, scikit-learn'ün rastgele ızgara aramasıdır; custom_grid ile kendi arama uzayınızı verebilirsiniz.

adayi_ayarla = tune_model(aday, optimize="F1", choose_better=True)

choose_better seçeneği önemlidir: ayarlama her zaman iyileştirme getirmez ve aşırı uyuma yol açabilir. Bu seçenek açıkken yalnızca gerçekten daha iyi olan model döner.

Birden fazla modeli birleştirmek isterseniz ensemble_model torbalama ya da artırma ile tek bir tahmin edicinin topluluğunu kurar, blend_models farklı modellerin oylamasını birleştirir, stack_models ise bir meta model kullanır. Bu yöntemler küçük kazanç sağlayabilir ama yorumlanabilirliği düşürür ve bakım yükünü artırır. İlk sürümde tek, ayarlanmış bir model çoğu zaman yeterlidir.

Değerlendirme, tahmin ve kaydetme

plot_model modelin davranışını görselleştirir. Sınıflandırmada auc ve confusion_matrix, regresyonda residuals ve feature grafikleri belgelerde örneklenir. Karışıklık matrisine bakmak, modelin hangi hatayı yaptığını doğruluktan daha iyi gösterir: gerçekte ayrılan müşteriyi kaçırmak mı daha pahalı, yoksa kalacak müşteriye boş yere indirim teklif etmek mi?

predict_model, argümansız çağrıldığında bekletilen küme üzerinde tahmin üretir ve metrikleri gösterir. Yeni veriye uygulamak için data parametresiyle verilir:

tahminler = predict_model(en_iyi, data=yeni_veri)

save_model ile model, ön işleme adımlarıyla birlikte bir hat olarak kaydedilir; load_model onu yeniden yükler. Bu önemlidir: yeni veri, eğitimdeki aynı dönüşümlerden geçmelidir. Hattı sürümleyerek saklayın, hangi veriyle ve hangi tarihte eğitildiğini not edin.

Sık yapılan hatalar ve sınırlar

İlk hata, en yüksek puanı tek amaç sanmaktır. Çapraz doğrulamada en yüksek puan, yeni veride en iyi sonuç anlamına gelmeyebilir; dağılım değiştiğinde model bozulur. İkinci hata, yanlış metrikle sıralamaktır; dengesiz veride doğruluk, sıralamayı yanıltır.

Üçüncü hata, veri sızıntısını görmemektir; şüpheli derecede yüksek puan yeniden kontrol etmeniz gerektiğinin işaretidir. Dördüncü hata, kütüphaneyi bir kara kutu gibi kullanıp neden o modelin seçildiğini açıklayamamaktır: iş birimine sunarken özellik önemlerine ve hata türlerine hazır olun.

Son olarak, bu araç üretim sistemi değildir. Kaydedilen hattı canlıya almak için sürümleme, izleme ve yeniden eğitim planı gerekir. Model üretime taşıma, ayrı bir mühendislik konusudur.

Bu beceriyi Mindset programlarında nerede çalışırsınız

Az kodlu makine öğrenmesi, iş analistlerinin ve veri bilimcilerin ilk model denemelerini hızlandırır. Yapay Zeka Destekli İş Analitiği Uzmanlık Programı, AutoML ile demokratikleşen makine öğrenmesi modülünü içerir. Makine Öğrenmesi (Uygulamalı) Programı ise model doğrulama ve hiperparametre optimizasyonu ile modeli üretime taşıma konularını ayrı modüllerde ele alır.

İlgili Mindset programı

Yapay Zeka (AI) Destekli İş Analitiği Uzmanlık Programı

Sık sorulanlar

Sık sorulan sorular

PyCaret yeni başlayanlar için uygun mu?

Kod yükünü azalttığı için ilk modeli hızlı kurmak açısından uygundur. Ama sonuçları yorumlamak için doğrulama, metrik seçimi ve veri sızıntısı gibi temel kavramları bilmek gerekir. Aracı öğrenirken kavramları da öğrenmek, sonuçların güvenilir olmasını sağlar.

compare_models hangi metrikle sıralar?

Belgelere göre varsayılan sıralama sınıflandırmada doğruluk, regresyonda belirleme katsayısıdır. sort parametresiyle F1 gibi başka bir metrik seçebilirsiniz. Dengesiz sınıflarda ya da hata maliyetlerinin farklı olduğu işlerde varsayılanı değiştirmek genellikle gerekir.

tune_model her zaman sonucu iyileştirir mi?

Hayır. Ayarlama, çapraz doğrulama puanını yükseltebilir ama yeni veride aynı kazancı garanti etmez. choose_better seçeneği açıkken ayarlanan model daha iyi değilse girdi modeli döner. Ayarlamayı küçük ve gerekçeli tutmak, aşırı uyum riskini azaltır.

Kaydettiğim modeli başka bir ortamda kullanabilir miyim?

save_model ön işleme adımlarını da kapsayan bir hat kaydeder ve load_model onu yükler. Yine de aynı kütüphane sürümleriyle yüklemek en güvenli yoldur. Canlıya alırken sürümü, eğitim verisini ve tarihi kaydedin, model değişiminde yeniden doğrulama yapın.

PyCaret ile scikit-learn arasında nasıl seçim yapmalıyım?

PyCaret hızlı karşılaştırma ve prototip için uygundur; her adımı elle denetlemek istediğinizde scikit-learn ile doğrudan çalışmak daha esnektir. İkisi çelişmez: PyCaret ile aday belirleyip, seçtiğiniz modeli kendi hattınızda yeniden kurabilirsiniz.

PyCaret ile Makine Öğrenmesi: Model Kurma ve Seçme