scikit-learn, Python ile makine öğrenmesi modelleri geliştirmek için kullanılan açık kaynaklı bir kütüphanedir. Verileri hazırlama, modeli eğitme, tahmin üretme ve başarımı ölçme gibi işlemleri ortak bir arayüzle yapmanızı sağlar. Örneğin bir evin özelliklerinden yaklaşık fiyat tahmini yapmak veya e-postaları sınıflandırmak için kullanılabilir; ancak kendi başına veri toplamaz, doğru sonucu garanti etmez ve her problem için uygun değildir.
scikit-learn; sınıflandırma, regresyon, kümeleme, boyut azaltma, veri ön işleme, model seçimi ve başarı değerlendirme işlemleri için hazır araçlar sunar. Kütüphanenin temel yaklaşımında veriler modele uygun biçime getirilir, model eğitim verisiyle öğrenir ve daha önce görmediği veriler üzerinde sınanır.
Örneğin:
Bir scikit-learn modeli çoğunlukla şu akışla kullanılır: özellikler
Aşağıdaki varsayımsal örnekte model, çalışma saatinden sınav puanı tahmin etmeye çalışır. Gerçek bir eğitim verisi kullanılmadığı için sonuç yalnızca yöntemi göstermek içindir.
Çıktı, modelin verilerde gördüğü ilişkiye göre 6 saatlik çalışma için ürettiği sayısal tahmindir. Bu değer, öğrencinin gerçek puanını kanıtlamaz; veri kümesinin küçük olması, ölçümlerin gerçeği ne kadar temsil ettiği ve modelin yeni verilerdeki başarısı ayrıca değerlendirilmelidir.
Python ve paket yöneticisi olarak
Kurulumdan sonra örnek kodu bir
Modelin eğitim verisindeki başarısı tek başına yeterli değildir. Veri genellikle eğitim ve test bölümlerine ayrılır; model eğitim bölümünde öğrenir, daha önce görmediği test bölümünde değerlendirilir. Eğitim sonucu çok iyi, test sonucu belirgin biçimde kötüyse model eğitim verisini ezberlemiş olabilir. Bu duruma aşırı uyum denir.
Kullanılacak ölçüt probleme göre değişir. Sınıflandırmada doğruluk, kesinlik, duyarlılık veya F1 skoru; regresyonda ortalama mutlak hata veya benzeri hata ölçütleri tercih edilebilir. Hangi ölçütün uygun olduğu, yanlış tahminlerin maliyetine ve veri kümesinin yapısına bağlıdır.
scikit-learn yalnızca modeli çalıştıran bir araç değildir; verinin doğru ve temsil edici olmasını sizin sağlamanız gerekir. Eksik, hatalı veya taraflı veri iyi görünen ama gerçekte güvenilmez sonuçlar üretebilir. Ayrıca modelin tahmin üretmesi, nedensel bir ilişki bulduğu veya gerçek hayatta kesin karar verilmesi gerektiği anlamına gelmez.
Başlangıç için uygun yol; küçük ve anlaşılır bir veri kümesi seçmek, veriyi eğitim ve test bölümlerine ayırmak, basit bir model kurmak ve sonucu uygun bir ölçütle değerlendirmektir. Daha sonra veri ön işleme adımlarını,
scikit-learn ne işe yarar?
scikit-learn; sınıflandırma, regresyon, kümeleme, boyut azaltma, veri ön işleme, model seçimi ve başarı değerlendirme işlemleri için hazır araçlar sunar. Kütüphanenin temel yaklaşımında veriler modele uygun biçime getirilir, model eğitim verisiyle öğrenir ve daha önce görmediği veriler üzerinde sınanır.
Örneğin:
- Bir mesajın istenmeyen posta olup olmadığını tahmin etmek sınıflandırmadır.
- Bir evin fiyatını tahmin etmek regresyondur.
- Benzer müşterileri gruplara ayırmak kümelemedir.
- Çok sayıdaki değişkeni daha az sayıda bileşenle ifade etmek boyut azaltmadır.
Temel çalışma mantığı
Bir scikit-learn modeli çoğunlukla şu akışla kullanılır: özellikler
X değişkenine, bilinen hedef değerler y değişkenine konur; model fit() ile eğitilir ve predict() ile yeni veriler için tahmin üretir.Aşağıdaki varsayımsal örnekte model, çalışma saatinden sınav puanı tahmin etmeye çalışır. Gerçek bir eğitim verisi kullanılmadığı için sonuç yalnızca yöntemi göstermek içindir.
Python:
from sklearn.linear_model import LinearRegression
# Özellik: çalışma saati
X = [[1], [2], [3], [4], [5]]
# Hedef: sınav puanı
y = [50, 55, 65, 70, 80]
model = LinearRegression()
model.fit(X, y)
# 6 saat çalışan varsayımsal bir öğrenci için tahmin
sonuc = model.predict([[6]])
print(sonuc)
Çıktı, modelin verilerde gördüğü ilişkiye göre 6 saatlik çalışma için ürettiği sayısal tahmindir. Bu değer, öğrencinin gerçek puanını kanıtlamaz; veri kümesinin küçük olması, ölçümlerin gerçeği ne kadar temsil ettiği ve modelin yeni verilerdeki başarısı ayrıca değerlendirilmelidir.
Kurulum ve ilk çalıştırma
Python ve paket yöneticisi olarak
pip erişiminiz varsa temel kurulum şu komutla yapılabilir:
Kod:
pip install scikit-learn
Kurulumdan sonra örnek kodu bir
.py dosyasına kaydedip Python ile çalıştırabilirsiniz. Kurulum veya içe aktarma sırasında hata alırsanız önce kullandığınız Python ortamında paketin kurulup kurulmadığını ve komutu aynı ortamın pip aracıyla çalıştırdığınızı kontrol edin.Bir modelin sonucunu nasıl değerlendirmelisiniz?
Modelin eğitim verisindeki başarısı tek başına yeterli değildir. Veri genellikle eğitim ve test bölümlerine ayrılır; model eğitim bölümünde öğrenir, daha önce görmediği test bölümünde değerlendirilir. Eğitim sonucu çok iyi, test sonucu belirgin biçimde kötüyse model eğitim verisini ezberlemiş olabilir. Bu duruma aşırı uyum denir.
Kullanılacak ölçüt probleme göre değişir. Sınıflandırmada doğruluk, kesinlik, duyarlılık veya F1 skoru; regresyonda ortalama mutlak hata veya benzeri hata ölçütleri tercih edilebilir. Hangi ölçütün uygun olduğu, yanlış tahminlerin maliyetine ve veri kümesinin yapısına bağlıdır.
scikit-learn neyi sağlamaz?
scikit-learn yalnızca modeli çalıştıran bir araç değildir; verinin doğru ve temsil edici olmasını sizin sağlamanız gerekir. Eksik, hatalı veya taraflı veri iyi görünen ama gerçekte güvenilmez sonuçlar üretebilir. Ayrıca modelin tahmin üretmesi, nedensel bir ilişki bulduğu veya gerçek hayatta kesin karar verilmesi gerektiği anlamına gelmez.
Başlangıç için uygun yol; küçük ve anlaşılır bir veri kümesi seçmek, veriyi eğitim ve test bölümlerine ayırmak, basit bir model kurmak ve sonucu uygun bir ölçütle değerlendirmektir. Daha sonra veri ön işleme adımlarını,
Pipeline kullanımını ve çapraz doğrulamayı öğrenmek, modelin yeni verilerdeki davranışını daha güvenilir biçimde incelemenizi sağlar.