Model doğrulamasından önce veya içinde özellik normalizasyonu yapılıyor mu?


52

Makine Öğreniminde yaygın olarak kullanılan iyi bir uygulama, yordayıcı değişkenlerinin normalleştirilmesi veya veri standardizasyonu yapmaktır, işte bu, ortalamayı veren veriyi ortalamak ve varyansa (veya standart sapma ile) bölerek normalleştirmektir. Kendini kapsama ve anlamam için bunu iki ana şeyi başarmak için yapıyoruz:

  1. Sayısal stabilite amacıyla ekstra küçük model ağırlıklarından kaçının.
  2. Örneğin, Konjugat Gradient gibi optimizasyon algoritmalarının hızlı bir şekilde yakınlaşmasını sağlayın, böylece bir prediktör boyutunun büyüklüğü diğerlerinde yavaş yakınsamaya neden olmaz.

Genelde verileri eğitim, doğrulama ve test kümelerine ayırırız. Literatürde genellikle normalizasyon özelliği için tüm tahmin değişkenleri kümesi boyunca ortalama ve varyansı (veya standart sapmayı) aldıklarını görüyoruz. Burada gördüğüm en büyük hata, bunu yaparsanız, aslında gelecekteki bilgiyi eğitim öngörücü değişkenlerine, yani ortalama ve varyansa dahil gelecekteki bilgi olarak tanıtıyor olmanızdır.

Bu nedenle, antrenman verileri üzerinde normalizasyon özelliği var ve ortalamayı ve varyansı kurtarıyorum. Daha sonra eğitim normalini ve varyanslarını kullanarak validasyon ve test veri setlerinin yordayıcı değişkenlerine özellik normalizasyonu uygularım. Bununla ilgili herhangi bir temel kusur var mı? kimse daha iyi bir alternatif önerebilir mi?


Yanıtlar:


46

Yaklaşımınız tamamen doğru. Her ne kadar veri dönüşümleri çoğu kez "ön işleme" olarak değerlenmemiş olsa da, model performansını optimize etmek için dönüşümlerin model oluşturma sürecinin bir parçası olarak ele alınabileceği ve ele alınması gerektiği yeterince vurgulanamaz.

Sebep: Genel olarak, modelin yapıldığı tarihte bulunmayan görünmeyen verilere bir model uygulanacaktır. Doğrulama işlemi (veri bölme dahil) bunu simüle eder. Bu nedenle, model kalitesinin (ve genelleme gücünün) iyi bir tahminini almak için, normalleştirme parametrelerinin (ortalama ve varyans) hesaplanmasını eğitim seti ile sınırlandırması gerekir.

Bunun neden her zaman literatürde yapılmadığını tahmin edebiliyorum. Bir argüman, ortalama ve varyansın hesaplanmasının küçük veri varyasyonlarına karşı hassas olmadığı olabilir (ancak bu, yalnızca temel örneklem büyüklüğü yeterince büyükse ve veriler yaklaşık normalde aşırı aykırı değerler olmadan dağıtılıyorsa geçerlidir).


Bunu biraz kafa karıştırıcı buluyorum. OP, validasyon ve test veri setlerinde özellik normalizasyonu yaptığını söylüyor. Cevabınız önce yaklaşımının doğru olduğunu söylüyor. Daha sonra "kişinin normalizasyon parametrelerinin hesaplanmasını eğitim seti ile sınırlandırması gerektiğini" söylüyorsunuz. Yani cevabınız, yaptığı şeyin doğru olduğunu söyleyerek ve sonra başkalarını önererek kendisine çelişiyor. Burada neyi özlüyorum?
mahonya 13:14

4
OP’nin yaptığı son paragrafta anlatıldığı gibi. Eğitim setine uygulanmış olması halinde test / validasyon setine normalizasyon uygulanır. Önemli olan nokta, bu normalizasyonun parametrelerinin tüm eğitim için değil, sadece eğitim verileri üzerinde hesaplanmış olmasıdır. Bu yardımcı olur umarım.
steffen

Ah, çok teşekkürler. Cevabınızı yanlış anladım. Normalizasyonun 'uygulamasını' sadece eğitim setine uygulamanızı öneriyor olsanız da, açıkça önerdiğiniz gibi değildi.
mahonya

2

Özellik normalleştirmesi aynı ölçekte farklı özellikler yapmaktır. Ölçeklendirme, bir veya daha fazla özellik geri kalanından çok daha büyük değerler aldığında gerekli olan birçok fazla yinelemeden kaçınarak gradyan inişini hızlandırır (Ölçeklendirme olmadan, görüntülenen maliyet işlevi büyük bir asimetri gösterecektir).

Test verileri geldiğinde ortalamanın kullanılması ve eğitim setinden farklı olduğunu düşünüyorum. Ancak, veri boyutu çok büyükse, hem eğitim hem de doğrulama setleri yaklaşık olarak normal dağılım olarak görülebilir, bu nedenle kabaca ortalamayı ve değişkenini paylaşırlar.


1
Veri normalizasyonunun gradyan inişini hızlandırabilmesinin nedeni, normalleştirme olmadan rss'nin eliptik konturlara sahip olmasıdır, bu nedenle sabit öğrenme hızı göz önüne alındığında, gradyan inişinin yakınsaması için daha fazla yineleme gerekebilir. Ölçeklemeyle birlikte, rss daire hatlarına (simetrik) sahiptir, bu nedenle degrade iniş hızlı bir şekilde birleşir. Haklı mıyım
avokado

1

Tarif ettiğiniz metodoloji diğerlerinin söylediği gibi sağlamdır. Egzersiz setinizdeki özelliklerde yaptığınız gibi test seti özelliklerinde de aynı dönüşümü yapmanız gerekir.

Özellik normalleştirmesinin bir başka nedeninin, belirli değişkenlerin ölçeğine göre farklılıklara duyarlı olan belirli işlemlerin performansını artırmak olduğunu düşünüyorum. Örneğin, temel bileşenler analizi (PCA), varyansın en yüksek oranını yakalamayı amaçlamaktadır ve sonuç olarak, özellik normalizasyonu başlangıçta gerçekleştirilmezse, en büyük varyansı gösteren değişkenlere daha fazla ağırlık verecektir.


Çok iyi nokta! getirdiğiniz için teşekkür ederim. PCA'yı hesaplamadan önce giriş matrisini normalize eden çalışmalarımdan her zaman hatırlıyorum.
SkyWalker
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.