SVM'leri kullanırken neden özellikleri ölçeklendirmem gerekiyor?


9

Scikit-learn'daki StandardScaler nesnesinin belgelerine göre :

Örneğin, bir öğrenme algoritmasının objektif işlevinde kullanılan birçok öğe (Destek Vektör Makinelerinin RBF çekirdeği veya doğrusal modellerin L1 ve L2 düzenleyicileri gibi) tüm özelliklerin 0 etrafında ortalandığını ve aynı sırayla varyansa sahip olduğunu varsayar. Bir özellik, diğerlerinden daha büyük büyüklük sıralarına sahip bir varyansa sahipse, nesnel işleve hakim olabilir ve tahmin edicinin diğer özelliklerden beklendiği gibi doğru şekilde öğrenememesini sağlayabilir.

Sınıflandırmadan önce özelliklerimi ölçeklemeliyim. Bunu neden yapmam gerektiğini göstermenin kolay bir yolu var mı? Bilimsel makalelere referanslar daha da iyi olurdu. Zaten buldum birini ancak diğer birçok muhtemelen vardır.

Yanıtlar:


16

Tüm çekirdek yöntemleri mesafeye dayanır. RBF çekirdek işleviκ(u,v)=exp(uv2)( basitlik için \ gamma = 1 kullanarak γ=1).

3 özellik vektörü verildi:

x1=[1000,1,2],x2=[900,1,2],x3=[1050,10,20].

sonra , yani sözde ve daha benzerdir .κ(x1,x2)=exp(10000)κ(x1,x3)=exp(2905)x1x3x2

ve: arasındaki göreli farklarx1

x2[0.1,0,0],x3[0.05,10,10].

Yani ölçeklendirme olmadan, biz sonucuna daha benzer olan daha , olsa arasındaki özellik başına nispi farklar ve , ve çok daha büyük .x1x3x2x1x3x1x2

Diğer bir deyişle, tüm özellikleri karşılaştırılabilir aralıklarla ölçeklendirmezseniz, en geniş aralığa sahip özellikler çekirdek matrisinin hesaplanmasında tamamen hakim olacaktır.

Bunu açıklamak için basit örnekleri aşağıdaki makalede bulabilirsiniz: Vektör Sınıflandırmasını Desteklemeye Yönelik Pratik Bir Kılavuz (Bölüm 2.2).


Ayrıca normalleştirmeyi de tartışmak isteyebilirsiniz: ağırlıkların ölçeği girdilerin ölçeğine bağlıdır ...
seanv507

Düzenlemenin etkisi, farklı ölçeklemelerin , bu özel konuya biraz dik olan farklı optimal ima etmesidir . C
Marc Claesen

2
Ama aslında bir boyut boyunca yakınlık daha önemli olabilir. Dolayısıyla amaç, tüm özelliklerde aynı varyansa sahip olmak değil, her özellikteki mesafelerin görev için yaklaşık olarak aynı öneme sahip olacak şekilde ölçeklendirilmesidir.
isarandi

@Marc Claesen, değişkenleriniz farklı büyüklük sıralarına sahipse, ağırlıklarınız da farklı büyüklük sıralarına sahip olacak ve l2 normu, küçük varyansa ve buna bağlı olarak büyük ağırlıklara sahip girişlere odaklanacaktır. başka bir deyişle, ağırlık normlarının düzenlenmesi 'küçük' girdilerin küçük etkilere sahip olmasını sağlar. Bu, yalnızca değişkenlerinizi normalleştirerek 'küçük' (girdilerinizde) standartlaştırdıysanız mantıklıdır
seanv507

1
@ seanv507 yalnızca doğrusal SVM için geçerlidir.
Marc Claesen

0

Hangi çekirdeği kullandığınıza bağlıdır. Şimdiye kadar en yaygın kullanılan (lineer dışında),

f=exp(||x1x2||22σ2)

SVM bu işlevi alır ve bir noktanın ( ) eğitim setindeki diğer her bir nokta ile benzerliğini , farklılıkları şöyle toplayarak karşılaştırmak için kullanır:x1

(x1l1)2+(x2l2)2...+(xnln)2

burada sizin örneğinizdir ve değerleri işarettir.xl

Özelliği ise özelliği ise 50,000 - 0 arasında değişen oranı 0 - 0.01, bu görebilir hakim olacak ve bu rakam da neredeyse hiç etkisi olmayacak. Bu nedenle, çekirdeği uygulamadan önce özelliklerin ölçeklendirilmesi gerekir.x1x2x1x2

Daha fazla bilgi edinmek istiyorsanız, Coursera'daki makine öğrenimi konusunda Stanford çevrimiçi kursundan modül 12'yi (Destek Vektör Makineleri) öneririm (ücretsiz ve her zaman kullanılabilir): https://www.coursera.org/course/ml

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.