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

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.

  • 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:

  • 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  (  '  n  Type of X is:'     type  (  X  ))   print  (  '  n  First 5 rows of X:  n  '     X  [:  5  ])   

Çıkış: 

model1Veri 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:

  • 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ış:

model2Bö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]

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

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  )   
model4Lojistik 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.

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