Makine Öğreniminde Vektör Makinesini (SVM) Destekleyin

Yayınlanan: 2023-01-04

Destek Vektör Makinesi, en popüler Makine Öğrenimi algoritmaları arasındadır. Verimlidir ve sınırlı veri setlerinde eğitim verebilir. Ama bu ne?

Destek Vektör Makinesi (SVM) nedir?

Destek vektör makinesi, ikili sınıflandırma için bir model oluşturmak üzere denetimli öğrenmeyi kullanan bir makine öğrenimi algoritmasıdır. Bu bir ağız dolusu. Bu makale SVM'yi ve bunun doğal dil işlemeyle nasıl bir ilişkisi olduğunu açıklayacaktır. Ama önce, bir destek vektör makinesinin nasıl çalıştığını inceleyelim.

SVM Nasıl Çalışır?

Elimizde x ve y olmak üzere iki özelliği ve bir çıktısı olan kırmızı veya mavi bir sınıflandırma olan basit bir sınıflandırma problemi düşünün. Şuna benzeyen hayali bir veri kümesi çizebiliriz:

İsimsiz çizim

Bunun gibi veriler verildiğinde, görev bir karar sınırı oluşturmak olacaktır. Karar sınırı, veri noktalarımızın iki sınıfını ayıran bir çizgidir. Bu aynı veri kümesidir ancak bir karar sınırı vardır:

İsimsiz-çizim-1

Bu karar sınırıyla, karar sınırına göre nerede olduğu göz önüne alındığında, bir veri noktasının hangi sınıfa ait olduğu konusunda tahminlerde bulunabiliriz. Destek Vektör Makinesi algoritması, noktaları sınıflandırmak için kullanılacak en iyi karar sınırını oluşturur.

Ancak en iyi karar sınırı derken neyi kastediyoruz?

En iyi karar sınırının, destek vektörlerinden herhangi birine olan mesafesini maksimize eden sınır olduğu iddia edilebilir. Destek vektörleri, herhangi bir sınıfın karşı sınıfa en yakın veri noktalarıdır. Bu veri noktaları, diğer sınıfa yakınlıkları nedeniyle en büyük yanlış sınıflandırma riskini oluşturur.

İsimsiz-çizim-2

Bu nedenle, bir destek vektör makinesinin eğitimi, destek vektörleri arasındaki marjı maksimize eden bir çizgi bulmaya çalışmayı içerir.

Karar sınırı destek vektörlerine göre konumlandırıldığından, karar sınırının konumunun tek belirleyicisinin bunlar olduğunu not etmek de önemlidir. Bu nedenle diğer veri noktaları gereksizdir. Ve bu nedenle, eğitim sadece destek vektörlerini gerektirir.

Bu örnekte, oluşturulan karar sınırı düz bir çizgidir. Bunun nedeni, veri kümesinin yalnızca iki özelliği olmasıdır. Veri setinin üç özelliği olduğunda, oluşan karar sınırı bir çizgi yerine bir düzlemdir. Ve dört veya daha fazla özelliğe sahip olduğunda, karar sınırı hiperdüzlem olarak bilinir.

Doğrusal Olarak Ayrılamayan Veriler

Yukarıdaki örnek, çizildiğinde doğrusal bir karar sınırıyla ayrılabilen çok basit verileri dikkate almıştır. Verilerin aşağıdaki gibi çizildiği farklı bir durumu ele alalım:

İsimsiz-çizim-4

Bu durumda, verileri satır kullanarak ayırmak imkansızdır. Ama başka bir özellik oluşturabiliriz, z. Ve bu özellik şu denklemle tanımlanabilir: z = x^2 + y^2. Düzlemi üç boyutlu yapmak için z'yi üçüncü eksen olarak ekleyebiliriz.

3D grafiğe x ekseni yatay ve z ekseni dikey olacak şekilde bir açıdan baktığımızda, şuna benzer bir görüntü elde ederiz:

İsimsiz-çizim-5

z değeri, bir noktanın eski XY düzlemindeki diğer noktalara göre orijinden ne kadar uzakta olduğunu temsil eder. Sonuç olarak, orijine daha yakın olan mavi noktalar düşük z değerlerine sahiptir.

Orijinden daha uzaktaki kırmızı noktalar daha yüksek z değerlerine sahipken, bunları z değerlerine göre çizmek, gösterildiği gibi doğrusal bir karar sınırıyla ayrılabilen net bir sınıflandırma sağlar.

Bu, Destek Vektör Makinelerinde kullanılan güçlü bir fikirdir. Daha genel olarak, veri noktalarının doğrusal bir sınırla ayrılabilmesi için boyutları daha fazla sayıda boyuta eşleme fikridir. Bundan sorumlu olan fonksiyonlar çekirdek fonksiyonlarıdır. Sigmoid, lineer, lineer olmayan ve RBF gibi birçok çekirdek fonksiyonu vardır.

Bu özellikleri eşlemeyi daha verimli hale getirmek için SVM bir çekirdek hilesi kullanır.

Makine Öğreniminde SVM

Destek Vektör Makinesi, Karar Ağaçları ve Sinir Ağları gibi popüler algoritmaların yanı sıra makine öğreniminde kullanılan birçok algoritmadan biridir. Diğer algoritmalara göre daha az veri ile iyi çalıştığı için tercih edilir. Genellikle aşağıdakileri yapmak için kullanılır:

  • Metin Sınıflandırma : Yorumlar ve incelemeler gibi metin verilerini bir veya daha fazla kategoride sınıflandırma
  • Yüz Algılama : Artırılmış gerçeklik için filtre eklemek gibi şeyler yapmak amacıyla yüzleri algılamak için görüntüleri analiz etme
  • Görüntü Sınıflandırma : Destek vektör makineleri, diğer yaklaşımlara kıyasla görüntüleri verimli bir şekilde sınıflandırabilir.

Metin Sınıflandırma Problemi

İnternet çok sayıda metinsel veriyle doludur. Ancak, bu verilerin çoğu yapılandırılmamış ve etiketlenmemiş. Bu metin verilerini daha iyi kullanmak ve daha iyi anlamak için sınıflandırmaya ihtiyaç vardır. Metnin sınıflandırıldığı zamanlara ilişkin örnekler şunları içerir:

  • Tweet'ler, insanların istedikleri konuları takip edebilmeleri için konulara göre sınıflandırıldığında
  • Bir e-posta Sosyal, Promosyonlar veya Spam olarak kategorize edildiğinde
  • Yorumlar, herkese açık forumlarda nefret dolu veya müstehcen olarak sınıflandırıldığında

SVM, Doğal Dil Sınıflandırmasıyla Nasıl Çalışır?

Destek Vektör Makinesi, metni belirli bir konuya ait metin ve konuya ait olmayan metin olarak sınıflandırmak için kullanılır. Bu, önce metin verilerinin çeşitli özelliklere sahip bir veri kümesine dönüştürülmesi ve temsil edilmesiyle elde edilir.

Bunu yapmanın bir yolu, veri kümesindeki her kelime için özellikler oluşturmaktır. Ardından, her metin veri noktası için, her kelimenin kaç kez geçtiğini kaydedersiniz. Öyleyse, veri setinde benzersiz kelimelerin meydana geldiğini varsayalım; veri kümesinde özelliklere sahip olacaksınız.

Ek olarak, bu veri noktaları için sınıflandırmalar sağlayacaksınız. Bu sınıflandırmalar metne göre etiketlenirken, çoğu DVM uygulaması sayısal etiketler bekler.

Bu nedenle, eğitimden önce bu etiketleri sayılara dönüştürmeniz gerekecektir. Bu özellikleri koordinat olarak kullanarak veri kümesi hazırlandıktan sonra, metni sınıflandırmak için bir SVM modeli kullanabilirsiniz.

Python'da SVM Oluşturma

Python'da bir destek vektör makinesi (SVM) oluşturmak için sklearn.svm kitaplığından SVC sınıfını kullanabilirsiniz. Python'da bir SVM modeli oluşturmak için SVC sınıfını nasıl kullanabileceğinize bir örnek:

 from sklearn.svm import SVC # Load the dataset X = ... y = ... # Split the data into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19) # Create an SVM model model = SVC(kernel='linear') # Train the model on the training data model.fit(X_train, y_train) # Evaluate the model on the test data accuracy = model.score(X_test, y_test) print("Accuracy: ", accuracy)

Bu örnekte, önce sklearn.svm kitaplığından SVC sınıfını içe aktarıyoruz. Ardından veri setini yükleyip eğitim ve test setlerine ayırıyoruz.

Ardından, bir SVC nesnesini başlatarak ve kernel parametresini 'linear' olarak belirleyerek bir SVM modeli oluşturuyoruz. Daha sonra modeli fit yöntemini kullanarak eğitim verileri üzerinde eğitiriz ve modeli score yöntemini kullanarak test verileri üzerinde değerlendiririz. score yöntemi, konsola yazdırdığımız modelin doğruluğunu döndürür.

SVC nesnesi için, düzenlileştirmenin gücünü kontrol eden C parametresi ve belirli çekirdekler için çekirdek katsayısını kontrol eden gamma parametresi gibi diğer parametreleri de belirleyebilirsiniz.

SVM'nin Faydaları

Destek vektör makinelerini (SVM'ler) kullanmanın bazı faydalarının bir listesi aşağıda verilmiştir:

  • Verimli : DVM'ler, özellikle örnek sayısı fazla olduğunda, genellikle eğitmek için verimlidir.
  • Gürültüye Dayanıklı : DVM'ler, gürültüye diğer sınıflandırıcılardan daha az duyarlı olan maksimum marj sınıflandırıcısını bulmaya çalıştıklarından, eğitim verilerinde gürültüye karşı nispeten dayanıklıdır.
  • Bellek Verimliliği: DVM'ler, herhangi bir zamanda eğitim verilerinin yalnızca bir alt kümesinin bellekte olmasını gerektirir, bu da onları diğer algoritmalardan daha verimli bellek yapar.
  • Yüksek Boyutlu Uzaylarda Etkili: DVM'ler, özellik sayısı örnek sayısını aştığında bile iyi performans gösterebilir.
  • Çok yönlülük : DVM'ler, sınıflandırma ve regresyon görevleri için kullanılabilir ve doğrusal ve doğrusal olmayan veriler dahil olmak üzere çeşitli veri türlerini işleyebilir.

Şimdi, Destek Vektör Makinesi'ni (SVM) öğrenmek için en iyi kaynaklardan bazılarını keşfedelim.

Öğrenme Kaynakları

Destek Vektör Makinelerine Giriş

Destek Vektör Makinelerine Giriş konulu bu kitap, size Çekirdek tabanlı Öğrenme yöntemlerini kapsamlı ve kademeli olarak tanıtıyor.

Ön izleme Ürün Değerlendirme Fiyat
Destek Vektör Makinelerine ve Diğer Çekirdek Tabanlı Öğrenme Yöntemlerine Giriş Destek Vektör Makinelerine ve Diğer Çekirdek Tabanlı Öğrenme Yöntemlerine Giriş Henüz derecelendirme yok 75,00 $

Size Destek Vektör Makineleri teorisi hakkında sağlam bir temel sağlar.

Destek Vektör Makineleri Uygulamaları

İlk kitap Destek Vektör Makineleri teorisine odaklanırken, Destek Vektör Makineleri Uygulamaları hakkındaki bu kitap pratik uygulamalarına odaklanıyor.

Ön izleme Ürün Değerlendirme Fiyat
Destek Vektör Makineleri Uygulamaları Destek Vektör Makineleri Uygulamaları 15,52 dolar

SVM'lerin görüntü işleme, örüntü algılama ve bilgisayar görüşünde nasıl kullanıldığına bakar.

Destek Vektör Makineleri (Bilgi Bilimi ve İstatistik)

Destek Vektör Makineleri (Bilgi Bilimi ve İstatistik) hakkındaki bu kitabın amacı, çeşitli uygulamalarda destek vektör makinelerinin (SVM'ler) etkinliğinin ardındaki ilkelere genel bir bakış sağlamaktır.

Ön izleme Ürün Değerlendirme Fiyat
Destek Vektör Makineleri (Bilgi Bilimi ve İstatistik) Destek Vektör Makineleri (Bilgi Bilimi ve İstatistik) 167,36 dolar

Yazarlar, sınırlı sayıda ayarlanabilir parametre ile iyi performans gösterme yetenekleri, çeşitli hata ve anormallik türlerine karşı dirençleri ve diğer yöntemlere kıyasla verimli hesaplama performansları dahil olmak üzere DVM'lerin başarısına katkıda bulunan çeşitli faktörleri vurgulamaktadır.

Çekirdeklerle Öğrenme

“Çekirdeklerle Öğrenme”, okuyuculara vektör makinelerini (SVM'ler) ve ilgili çekirdek tekniklerini desteklemeyi tanıtan bir kitaptır.

Ön izleme Ürün Değerlendirme Fiyat
Çekirdeklerle Öğrenme: Vektör Makinelerini, Düzenlileştirmeyi, Optimizasyonu ve Ötesini Destekleyin (Uyarlamalı Hesaplama ve Makine Öğrenimi serisi) Çekirdeklerle Öğrenme: Vektör Makinelerini, Düzenlileştirmeyi, Optimizasyonu ve Ötesini Destekleyin (Uyarlanabilir… 80,00 $

Okuyuculara temel bir matematik anlayışı ve makine öğreniminde çekirdek algoritmalarını kullanmaya başlamaları için ihtiyaç duydukları bilgileri vermek için tasarlanmıştır. Kitap, SVM'lere ve çekirdek yöntemlerine kapsamlı ancak erişilebilir bir giriş sağlamayı amaçlamaktadır.

Sci-kit Learn ile Vektör Makinelerini Destekleyin

Coursera proje ağı tarafından hazırlanan bu çevrimiçi Destek Vektör Makineleri ile Sci-kit Learn kursu, popüler makine öğrenimi kitaplığı Sci-Kit Learn kullanılarak bir SVM modelinin nasıl uygulanacağını öğretir.

Sci-kit Learn ile Vektör Makinelerini Destekleyin

Ek olarak, SVM'lerin arkasındaki teoriyi öğrenecek ve güçlü yanlarını ve sınırlamalarını belirleyeceksiniz. Kurs başlangıç ​​seviyesinde olup yaklaşık 2,5 saat sürmektedir.

Python'da Destek Vektör Makineleri: Kavramlar ve Kod

Udemy tarafından Python'da Destek Vektör Makineleri konulu bu ücretli çevrimiçi kurs, 6 saate kadar video tabanlı eğitim içerir ve bir sertifika ile birlikte gelir.

Python'da Destek Vektör Makineleri: Kavramlar ve Kod

SVM'leri ve Python'da nasıl sağlam bir şekilde uygulanabileceklerini kapsar. Ayrıca, Destek Vektör Makinelerinin iş uygulamalarını da kapsar.

Makine Öğrenimi ve Yapay Zeka: Python'da Vektör Makinelerini Destekleyin

Makine Öğrenimi ve Yapay Zeka konulu bu kursta, görüntü tanıma, spam algılama, tıbbi teşhis ve regresyon analizi dahil olmak üzere çeşitli pratik uygulamalar için destek vektör makinelerini (SVM'ler) nasıl kullanacağınızı öğreneceksiniz.

Makine Öğrenimi ve Yapay Zeka: Python'da Vektör Makinelerini Destekleyin

Bu uygulamalar için makine öğrenimi modellerini uygulamak üzere Python programlama dilini kullanacaksınız.

Son sözler

Bu yazıda, Destek Vektör Makinelerinin arkasındaki teoriyi kısaca öğrendik. Makine Öğrenimi ve Doğal Dil İşleme'deki uygulamalarını öğrendik.

Ayrıca scikit-learn kullanılarak uygulanmasının nasıl olduğunu da gördük. Ayrıca Destek Vektör Makinelerinin pratik uygulamalarından ve faydalarından bahsettik.

Bu makale yalnızca bir giriş niteliğindeyken, ek kaynaklar daha fazla ayrıntıya girmeyi ve Destek Vektör Makineleri hakkında daha fazla açıklama yapmayı önerdi. Ne kadar çok yönlü ve verimli oldukları göz önüne alındığında, SVM'ler bir veri bilimcisi ve makine öğrenimi mühendisi olarak büyümek için anlaşılmaya değer.

Ardından, en iyi makine öğrenimi modellerine göz atabilirsiniz.