Soru:
Verilerim için ne zaman özellik ölçeklendirmesi uygulamalıyım?
jjepsuomi
2014-10-29 14:00:48 UTC
view on stackexchange narkive permalink

Bir iş arkadaşımla tartıştım ve merak etmeye başladık, verilere özellik normalleştirme / ölçeklendirme ne zaman uygulanmalı? Diyelim ki bazı özelliklerin çok geniş bir değer aralığına sahip olduğu ve bazı özelliklerin çok geniş bir değer aralığına sahip olmadığı bir dizi özelliğimiz var.

Temel bileşen analizi yapacak olsaydım, verileri normalleştirmem gerekirdi, bu açıktır, ancak verileri basit ve basit k-en yakın komşu / doğrusal regresyon kullanarak sınıflandırmaya çalıştığımızı varsayalım. yöntem.

Verileri hangi koşullar altında normalleştirmeli ya da normalleştirmemeliyim ve neden? Cevaba eklenen noktayı vurgulayan kısa ve basit bir örnek mükemmel olacaktır.

Bakınız: https://stats.stackexchange.com/questions/29781/when-conducting-multiple-regression-when-should-you-center-your-predictor-varia
Beş yanıtlar:
Karolis Koncevičius
2014-10-29 15:05:40 UTC
view on stackexchange narkive permalink

Bana göre, makine öğrenimindeki özellikleri ölçekleme / ölçeklememe hakkındaki soru, özelliklerinizin ölçü birimleriyle ilgili bir ifadedir. Ve sorunla ilgili önceden sahip olduğunuz bilgilerle ilgilidir.

Doğrusal Ayrım Analizi ve Naif Bayes gibi bazı algoritmalar ölçeklendirme özelliğine sahiptir. tasarım gereği ve manuel olarak gerçekleştirmede hiçbir etkiniz olmayacaktır. Knn gibi diğerleri bundan ciddi şekilde etkilenebilir.

Bu nedenle knn tipi sınıflandırıcıyla örnek çiftleri arasındaki mesafeleri ölçmeniz gerekir. Mesafeler elbette kişinin kullandığı ölçüm birimlerinden etkilenecektir. Nüfusu erkek ve kadın olarak sınıflandırdığınızı ve boy dahil bir dizi ölçümünüz olduğunu hayal edin. Artık sınıflandırma sonucunuz, yüksekliğin bildirildiği ölçümlerden etkilenecektir. Yükseklik nanometre cinsinden ölçülürse, en yakın k komşularının yalnızca benzer yükseklik ölçüleri olması muhtemeldir. Ölçeklendirmeniz gerekir.

Bununla birlikte, kontrast örneği olarak gürültüyle kaydedilmiş eşit ölçü birimlerine sahip bir şeyi sınıflandırdığınızı hayal edin. Bir fotoğraf veya mikroarray veya bir spektrum gibi. bu durumda, özelliklerinizin eşit birimlere sahip olduğunu önceden biliyorsunuzdur. Bunların hepsini ölçeklendirirseniz, tüm örneklerde sabit olan, ancak gürültü ile ölçülen özelliklerin etkisini artırırsınız. (Fotoğrafın arka planı gibi). Bu yine knn üzerinde bir etkiye sahip olacak ve verileriniz değişken olanlara kıyasla daha gürültülü sabit değerlere sahipse performansı büyük ölçüde düşürebilir. Artık k en yakın komşu arasındaki herhangi bir benzerlik gürültüden etkilenecek.

Bu, makine öğrenimindeki diğer her şey gibi - mümkün olduğunda ön bilgileri kullanın ve kara kutu özellikleri söz konusu olduğunda hem yapın hem de çapraz doğrulayın.

İyi örnekler ...
Hızlı bir takip, neden kNN özellik ölçeklemesinden etkilenir?Mahalanobis mesafesi, anladığım kadarıyla bunu zaten açıklamalı.
@SebastianRaschka Bir nedenden ötürü kNN denildiğinde aklımda sadece Öklid mesafesi vardı.Bu kafa karışıklığını açıklamalıdır.kNN elbette diğer mesafe ölçümleriyle birlikte kullanılabilir ve bunu fark ettiğiniz için teşekkür ederiz.
Andrew Ng'nin Makine Öğrenimi kursunda, doğrusal bir regresyon modeline uyacak şekilde gradyan inişi gerçekleştirirken özellik ölçeklemenin de önemli olduğunu açıklıyor (https://www.coursera.org/learn/machine-learning/lecture/xx3Da/gradient-descent-uygulamada-i-özellik-ölçeklendirme).
Neil G
2014-10-29 14:58:58 UTC
view on stackexchange narkive permalink

Bir özelliğin ölçeği alakasız veya yanıltıcı olduğunda normalleştirmeli ve ölçek anlamlı olduğunda normalleştirmemelisiniz.

K-mean Öklid mesafesini anlamlı kabul eder. Bir özelliğin diğerine kıyasla büyük bir ölçeği varsa, ancak ilk özellik gerçekten daha fazla çeşitliliği temsil ediyorsa, bu boyutta kümelenme cezalandırılmalıdır.

Bir önyargıya sahip olduğunuz sürece gerilemede önemli değildir Bir afin haritayı keşfettiğiniz için normalleştirirseniz ya da etmezseniz ve ölçekleme dönüşümünün ve afin haritasının bileşimi hala afinedir.

İlgili öğrenme oranları olduğunda, örneğin gradyan iniş yaptığınızda, giriş ölçeği gradyanları etkili bir şekilde ölçeklendirir, bu da parametre başına öğrenme oranlarını stabilize etmek için bir tür ikinci derece yöntemi gerektirebilir. Aksi takdirde önemli değilse girdileri normalleştirmek muhtemelen daha kolaydır.

show_stopper
2014-10-29 14:49:07 UTC
view on stackexchange narkive permalink

Birkaç normalleştirme yöntemi vardır.

Gerileme ile ilgili olarak, özelliği tek bir faktörle normalleştirmeyi planlıyorsanız, o zaman gerek yoktur. Bunun nedeni, bölünme veya bir sabitle çarpma gibi tek faktörlü normalizasyonun ağırlıklarda zaten ayarlanmış olmasıdır (yani bir özelliğin ağırlığı 3'tür, ancak özelliğin tüm değerlerini 2'ye bölerek normalize edersek, o zaman yeni ağırlık 6 olacaktır, bu nedenle genel olarak etki aynıdır). Bunun aksine, normalleşmeyi kastetiyorsanız, o zaman farklı bir hikaye vardır. Özellik değerlerinde çok büyük bir varyans olduğunda ortalama normalizasyon iyidir (1 70 300 4). Ayrıca, tek bir özelliğin hem olumlu hem de olumsuz bir etkisi varsa, o zaman normalleştirmek anlamına gelir. Bunun nedeni, belirli bir pozitif değerler kümesini normalleştirmeyi kastettiğinizde, aşağıdaki ortalama değerler negatif olurken, yukarıdaki ortalamalar pozitif olur.

K-en yakın komşularla ilgili olarak, normalleştirme her zaman yapılmalıdır. Bunun nedeni KNN'de noktalar arasındaki mesafenin kümelenmeye neden olmasıdır. Yani ilk özelliği 1-10, diğeri 1-1000 arasında değişen 2 özelliğe sahip bir probleme KNN uyguluyorsanız, tüm kümeler ikinci özelliğe göre üretilecektir, çünkü 1 ile 10 arasındaki fark 1-1000 ile karşılaştırıldığında küçüktür ve bu nedenle tümü tek bir grupta kümelenebilir

"... tek bir özelliğin hem olumlu hem de olumsuz bir etkisi varsa, o zaman normalleştirmek anlamına gelir. Bunun nedeni, belirli bir pozitif değerler kümesini normalleştirmeyi kastettiğinizde, aşağıdaki ortalama değerlerin negatif olurken yukarıdaki ortalamalar pozitif olur."- Bir önyargı teriminin varlığı, herhangi bir özelliğin pozitif değerler aralığına rağmen olumlu veya olumsuz bir etkiye sahip olmasına izin vermez mi?
cbeleites unhappy with SX
2015-10-04 17:00:37 UTC
view on stackexchange narkive permalink

İşte özellik ölçeklemenin felaket olacağı başka bir kemometrik uygulama örneği:

Bazı analit (= ilgilenilen madde) içeriğinin aşağıda olup olmadığını test etme "formunun birçok sınıflandırma (kalitatif analiz) görevi vardır. veya üzeri) belirli bir eşik (örneğin yasal sınır) ". Bu durumda, sınıflandırıcı için girdi verilerini üretecek sensörler, $$ sinyali = f (analit ~ konsantrasyon) $$ olacak şekilde seçilecektir, tercihen $ f $ dik ve hatta doğrusal bir fonksiyondur.

Bu durumda, özellik ölçekleme, temelde tüm ilgili bilgileri ham verilerden siler.


Genel olarak, ölçeklendirmenin iyi bir fikir olup olmadığına karar vermeye yardımcı olan bazı sorular:

  • Normalleştirme verilerinize ne yapar? elinizdeki görevi çözme? Bu daha kolay hale gelmeli mi yoksa önemli bilgileri silme riskiniz mi var?
  • Algoritmanız / sınıflandırıcınız verilerin (sayısal) ölçeğine duyarlı bir şekilde tepki veriyor mu? (yakınsama)
  • Algoritma / sınıflandırıcı, farklı özelliklerin farklı ölçeklerinden büyük ölçüde etkileniyor mu?
  • Öyleyse, özellikleriniz aynı (veya karşılaştırılabilir) ölçekleri veya hatta fiziksel birimleri paylaşıyor mu?
  • Sınıflandırıcınız / algoritmanız / gerçek uygulamanız kendi normalleştirmesini gerçekleştiriyor mu?
RUser4512
2018-04-19 13:55:32 UTC
view on stackexchange narkive permalink

Bu sorun, birçok makine öğrenimi kursunda / kaynağında aslında gözden kaçmış görünüyor. Blogumda ölçeklendirme hakkında bir makale yazdım.

Kısacası, "tekdüze dönüşüm" değişmez öğrenme yöntemleri (karar ağaçları ve bunlardan türetilen her şey), çeviriyle değişmeyen öğrenme yöntemleri (kNN, RBF kernel ile SVM) ve diğerleri vardır.

Açıktır ki, tekdüze dönüşümle değişmeyen öğrenme yöntemleri değişmez çeviri yöntemidir.

Birinci sınıfta, herhangi bir merkezleme / ölçekleme yapmanıza gerek yoktur. Çeviriye göre değişmeyen algoritmalarla merkezleme işe yaramaz. Şimdi, diğer yöntemler için, gerçekten verilere bağlı. Genellikle, ölçeklendirmeyi denemeye değer olabilir (özellikle değişkenlerin büyüklük sıraları farklıysa).

Genel bir durumda, verilerin çeşitli ön işlemlerini denemenizi öneririm: ölçeklendirme olmadan, standart sapmaya bölme, verilerinizin mutlak değerlerinin toplamına bölünme (bu, tek yönlüdür). Biri diğerlerinden daha iyi performans gösterecek, ancak denemeden hangisini söyleyemem.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...