logo

Scikit-learn'de Öğrenme Modeli Oluşturma

Scikit-learn, makine öğrenimi modelleri oluşturma sürecini basitleştiren açık kaynaklı bir Python kütüphanesidir. Hem yeni başlayanların hem de deneyimli kullanıcıların verimli çalışmasına yardımcı olan temiz ve tutarlı bir arayüz sunar.

java öğretici
  • Sınıflandırma regresyon kümeleme ve ön işleme gibi görevleri destekler
  • Model oluşturmayı hızlı ve güvenilir hale getirir
  • Eğitim ve değerlendirme için kullanıma hazır araçlar sağlar
  • Algoritmaların manuel olarak uygulanmasını önleyerek karmaşıklığı azaltır

Scikit-learn Kurulumu ve Kullanımı

Model oluşturmaya başlamadan önce yüklememiz gerekiyor Scikit-öğren. Python 3.8 veya daha yenisini gerektirir ve iki önemli kütüphaneye bağlıdır: NumPy Ve SciPy. Öncelikle bunların kurulduğundan emin olun.

Scikit-learn'ü kurmak için aşağıdaki komutu çalıştırın:



pip kurulumu -U scikit-learn

Bu, Scikit-learn'in en son sürümünü bağımlılıklarıyla birlikte indirip yükleyecektir. Scikit-learn kütüphanesini kullanarak Model oluşturma sürecindeki çeşitli adımları görelim.

1. Adım: Veri Kümesi Yükleme

Bir veri kümesi aşağıdakilerden oluşur:

  • Özellikler (X): Verileri tanımlayan giriş değişkenleri
  • Hedef (y): Tahmin etmek istediğimiz değer

Scikit-learn, Iris Digits ve Boston Housing gibi yerleşik veri kümeleri sağlar. Iris veri kümesini kullanma:

ikili ağaç posta siparişi geçişi
  • load_iris() verileri yükler
  • X özellik verilerini saklar
  • hedef etiketleri saklar
  • feature_names ve target_names açıklayıcı adlar verir

Yapıyı anlamak için ilk birkaç satırı inceleyebiliriz. Özel veri kümeleri için Pandalar genellikle CSV'ler gibi harici dosyaları yüklemek için kullanılır.

Python
from sklearn.datasets import load_iris iris = load_iris() X = iris.data y = iris.target feature_names = iris.feature_names target_names = iris.target_names print('Feature names:' feature_names) print('Target names:' target_names) print('nType of X is:' type(X)) print('nFirst 5 rows of X:n' X[:5]) 

Çıkış: 

model1' title=Veri kümesi yükleniyor

Bazen kendi özel verilerimiz üzerinde çalışmamız gerekir, ardından harici bir veri seti yükleriz. Bunun için şunu kullanabiliriz: pandalar kütüphanesi Veri kümelerinin kolay yüklenmesi ve işlenmesi için.

Bunun için yazımıza başvurabilirsiniz. Pandalarda csv dosyası nasıl içe aktarılır ?

Adım 2: Veri Kümesini Bölme

Bir modeli adil bir şekilde değerlendirmek için verileri aşağıdakilere ayırdık:

  • Eğitim seti: Modeli eğitmek için kullanılır
  • Test seti: Modelin ne kadar iyi genelleştirildiğini değerlendirmek için kullanılır

train_test_split kullanarak Iris veri kümesini %60'ı eğitim ve %40'ı test için olacak şekilde böldük (test_size=0,4). random_state=1 tekrarlanabilirliği sağlar.

Bölündükten sonra şunu elde ederiz:

Shell betiğini çalıştırılabilir hale getirme
  • X_train y_train -> Eğitim verileri
  • X_test y_test -> Verileri test etme

Şekillerin kontrol edilmesi verilerin doğru şekilde bölünmesini sağlar.

Python
from sklearn.model_selection import train_test_split X_train X_test y_train y_test = train_test_split(X y test_size=0.4 random_state=1) 

Şimdi kontrol edelim Şekiller Model değerlendirmesinde veya eğitiminde olası hataları önleyerek her iki kümenin de doğru veri oranlarına sahip olmasını sağlamak için Bölünmüş Verilerin kullanılması.

Python
print('X_train Shape:' X_train.shape) print('X_test Shape:' X_test.shape) print('Y_train Shape:' y_train.shape) print('Y_test Shape:' y_test.shape) 

Çıkış:

model2' loading='lazy' title=Bölünmüş Verinin Şekli

Adım 3: Kategorik Verileri İşleme

Makine öğrenimi algoritmaları sayısal girdilerle çalıştığından kategorik (metin) verilerin sayılara dönüştürülmesi gerekir. Düzgün kodlanmadığı takdirde modeller kategorileri yanlış yorumlayabilir. Scikit-learn birden fazla kodlama yöntemi sunar:

1. Etiket Kodlaması : Her kategoriyi benzersiz bir tam sayıya dönüştürür. Örneğin, 'kedi', 'köpek' ve 'kuş' gibi kategorilerin bulunduğu bir sütunda, bunları sırasıyla 0 1 ve 2'ye dönüştürür. Bu yöntem, kategoriler Düşük Orta ve Yüksek gibi anlamlı bir sıraya sahip olduğunda işe yarar.

  • LabelEncoder(): Kategorik değerleri sayısal etiketlere dönüştürecek bir kodlayıcı nesnesi oluşturmak için başlatılır.
  • fit_transform(): Bu yöntem önce kodlayıcıyı kategorik verilere uyarlar ve ardından kategorileri karşılık gelen sayısal etiketlere dönüştürür.
Python
from sklearn.preprocessing import LabelEncoder categorical_feature = ['cat' 'dog' 'dog' 'cat' 'bird'] encoder = LabelEncoder() encoded_feature = encoder.fit_transform(categorical_feature) print('Encoded feature:' encoded_feature) 

Çıkış:

Kodlanmış özellik: [1 2 2 1 0]

nbsp

2. Tek Kullanımda Kodlama : One-Hot Encoding, her kategori için ayrı ikili sütunlar oluşturur. Bu, kategorilerin herhangi bir doğal sıralaması olmadığında kullanışlıdır. Örnek: kedi köpek kuş -> 1'ler ve 0'lardan oluşan 3 yeni sütun (kedi/köpek/kuş).

  • Giriş 2 boyutlu bir dizi halinde yeniden şekillendirilmelidir
  • OneHotEncoder(sparse_output=False) ikili sütunlar oluşturur
Python
from sklearn.preprocessing import OneHotEncoder import numpy as np categorical_feature = ['cat' 'dog' 'dog' 'cat' 'bird'] categorical_feature = np.array(categorical_feature).reshape(-1 1) encoder = OneHotEncoder(sparse_output=False) encoded_feature = encoder.fit_transform(categorical_feature) print('OneHotEncoded feature:n' encoded_feature) 

Çıkış:

model3' loading='lazy' title=

Etiket Kodlama ve Tek Sıcak Kodlamanın yanı sıra başka teknikler de vardır: Ortalama Kodlama .

Adım 4: Modeli Eğitmek

Artık verilerimiz hazır olduğuna göre bir makine öğrenimi modeli eğitmenin zamanı geldi. Scikit-learn, eğitim tahmini ve değerlendirmesi için tutarlı bir arayüze sahip birçok algoritmaya sahiptir. Burada kullanacağız Lojistik Regresyon örnek olarak.

Not : Yalnızca uygulanmasını anlamakla ilgilendiğimiz için algoritmanın nasıl çalıştığının ayrıntılarına girmeyeceğiz. 

  • log_reg = LojistikRegresyon(max_iter=200): Lojistik regresyon sınıflandırıcı nesnesi oluşturma.
  • log_reg.fit(X_train y_train): Bunu kullanmak lojistik regresyon modeli, modelin parametrelerini verilere en iyi şekilde uyacak şekilde ayarlar.
Python
from sklearn.linear_model import LogisticRegression log_reg = LogisticRegression(max_iter=200) log_reg.fit(X_train y_train) 
model4' loading='lazy' title=Lojistik Regresyon Kullanarak Eğitim.

Adım 5: Tahminlerde Bulunun

Eğitildikten sonra modeli, tahmin yöntemini çağırarak X_test test verileri üzerinde tahminler yapmak için kullanırız. Bu, tahmin edilen y_pred etiketlerini döndürür.

  • log_reg.predict: Test verileri X_test'e ilişkin etiketleri tahmin etmek için eğitimli lojistik regresyon modelini kullanır.
Python
y_pred = log_reg.predict(X_test) 

Adım 6: Model Doğruluğunu Değerlendirme

Y_test ve y_pred'i karşılaştırarak modelimizin ne kadar iyi performans gösterdiğini kontrol edin. Burada metrik modülünün doğruluk_score yöntemini kullanıyoruz.

if else if else java
Python
from sklearn import metrics print('Logistic Regression model accuracy:' metrics.accuracy_score(y_test y_pred)) 

Çıkış:

Lojistik Regresyon modeli doğruluğu: 0,9666666666666667

Artık modelimizin yeni örnek veriler üzerinden tahminlerde bulunmasını istiyoruz. Daha sonra örnek girdi, herhangi bir özellik matrisini ilettiğimiz gibi kolayca iletilebilir. Burada bunu örnek olarak kullandık = [[3 5 4 2] [2 3 5 4]]

Python
sample = [[3 5 4 2] [2 3 5 4]] preds = log_reg.predict(sample) pred_species = [iris.target_names[p] for p in preds] print('Predictions:' pred_species) 

Çıkış: 

Tahminler: [np.str_('virginica') np.str_('virginica')]

Scikit-learn'in özellikleri

Scikit-learn, makine öğrenimi modellerinin oluşturulmasını basit ve verimli hale getirdiği için kullanılır. İşte bazı önemli nedenler:

  1. Kullanıma Hazır Araçlar : Veri ön işleme eğitim modelleri ve tahminler yapma gibi ortak görevler için yerleşik işlevler sağlar. Bu, algoritmaları sıfırdan kodlama ihtiyacını ortadan kaldırarak zamandan tasarruf sağlar.
  2. Kolay Model Değerlendirmesi : Çapraz doğrulama ve performans ölçümleri gibi araçlarla modelimizin ne kadar iyi çalıştığını ölçmeye ve iyileştirilecek alanları belirlemeye yardımcı olur.
  3. Geniş Algoritma Desteği : Sorunumuz için doğru modeli seçme konusunda bize esneklik sağlayan sınıflandırma regresyonu ve kümeleme dahil olmak üzere birçok popüler makine öğrenimi algoritması sunar.
  4. Sorunsuz Entegrasyon : NumPy ve SciPy gibi önemli Python kitaplıklarının üzerine inşa edilmiştir, böylece mevcut veri analizi iş akışımıza uyar.
  5. Basit ve Tutarlı Arayüz : Farklı modellerde aynı basit söz dizimi çalışır, öğrenmeyi ve algoritmalar arasında geçiş yapmayı kolaylaştırır.
  6. Model Ayarlama Artık Kolaylaştı : Izgara araması gibi araçlar, ekstra zorluk yaşamadan doğruluğu artırmak için modelimizin ayarlarında ince ayar yapmamıza yardımcı olur.

Scikit-learn'i kullanmanın faydaları

  • Kullanıcı dostu : Scikit-learn'ün tutarlı ve basit arayüzü, onu yeni başlayanlar için erişilebilir hale getirir ve uzmanlar için en iyisidir.
  • Zaman kazandıran: Önceden oluşturulmuş araçlar ve algoritmalar, geliştirme süresini kısaltır ve bu da ayrıntıları kodlamaktan ziyade sorunları çözmeye odaklanmamızı sağlar.
  • Daha İyi Model Performansı : Kullanımı kolay ayarlama ve değerlendirme araçları, model doğruluğunun ve güvenilirliğinin artırılmasına yardımcı olur.
  • Esnek ve Ölçeklenebilir : Çok çeşitli algoritmaları destekler ve diğer Python kitaplıklarıyla sorunsuz bir şekilde bütünleşir, her boyuttaki projeye uygun hale getirilmesine yardımcı olur.
  • Güçlü Topluluk Desteği : Büyük ve aktif bir topluluk, düzenli güncellemeler, kapsamlı belgeler ve sıkıştığımızda yardımcı olacak bol miktarda kaynak sağlar.
Test Oluştur