Neden tek bir sıcak kodlama makine öğrenimi performansını iyileştirir?


127

One Hot kodlama belirli bir veri setinde (bir matris) kullanıldığında ve öğrenme algoritmaları için eğitim verisi olarak kullanıldığında, orijinal matrisin kendisini eğitim verisi olarak kullanmaya kıyasla tahmin doğruluğu açısından önemli ölçüde daha iyi sonuçlar verdiğini fark ettim. Bu performans artışı nasıl olur?

Yanıtlar:


260

Birçok öğrenme algoritması ya özellik başına tek bir ağırlık öğrenir ya da örnekler arasındaki mesafeleri kullanır. İlki, açıklanması kolay olan lojistik regresyon gibi doğrusal modeller için geçerlidir.

"İngiltere", "Fransız" ve "ABD" değerlerine sahip, yalnızca tek bir kategorik özellik olan "milliyet" içeren bir veri kümeniz olduğunu varsayalım. Genelliği kaybetmeden, bunların 0, 1 ve 2 olarak kodlandığını varsayın. Daha sonra, bu özellik için doğrusal bir sınıflandırıcıda w × x + b> 0 kısıtlamasına dayalı bir tür karar verecek olan bir w ağırlığınız olduğunu varsayın. veya eşdeğer olarak w × x <b.

Şimdi sorun, w ağırlığının üç yollu bir seçimi kodlayamamasıdır. W × x'in üç olası değeri 0, w ve 2 × w'dir. Ya bu üçü aynı karara götürür (hepsi <b veya ≥b) ya da "İngiltere" ve "Fransız" aynı karara götürür veya "Fransız" ve "ABD" aynı kararı verir. Modelin, "İngiltere" ve "ABD" nin aynı etiket olması gerektiğini, "Fransız" ın tuhaf olduğunu öğrenmesine imkan yok.

Tek sıcak kodlama ile, özellik alanını etkili bir şekilde üç özelliğe genişletmiş olursunuz, bu özelliklerin her biri kendi ağırlıklarını alır, böylece karar işlevi artık w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, burada tüm x'ler boole'lerdir. Bu alanda, böyle bir doğrusal fonksiyon olasılıkların herhangi bir toplamını / ayrışmasını ifade edebilir (örneğin, İngilizce konuşan biri için bir öngörü olabilecek "İngiltere veya ABD").

Benzer şekilde, numuneler arasındaki standart mesafe ölçütlerine (k-en yakın komşular gibi) dayalı herhangi bir öğrencinin tek sıcak kodlama olmadan kafası karışacaktır. Naif kodlama ve Öklid mesafesi ile Fransız ve ABD arasındaki mesafe 1'dir. ABD ile İngiltere arasındaki mesafe 2'dir. Ancak tek sıcak kodlamada [1, 0, 0], [0, 1 arasındaki ikili mesafeler , 0] ve [0, 0, 1] 'in tümü √2'ye eşittir.

Bu, tüm öğrenme algoritmaları için geçerli değildir; Karar ağaçları ve rastgele ormanlar gibi türetilmiş modeller, yeterince derinse, kategorik değişkenleri tek sıcak kodlama olmadan işleyebilir.


4
Bu Lars için teşekkürler, ancak özelliklerin sayısını etkili bir şekilde artıran bir OneHotEncoding yaptığımızda, aşırı uymadığından emin olmak için örnekleri de artırmamıza gerek yok.
Manoj

@Manoj Kategorik değişkenlerin açık alternatif temsiline kıyasla, her seviyeyi ayrı bir tam sayı olarak kodlayarak, bunun önemli olduğunu düşünmüyorum: her iki şekilde de yeterli istatistiğe ihtiyacınız var.
Fred Foo

7
Bu konuyu daha fazla okuyabilmem için gösterebileceğiniz herhangi bir literatür var mı? Teşekkürler.
Dr.Knowitall

1
(Bir az tam rank matrisi kullanarak bir faydası var mıdır olmaz böyle artırılması olarak makine öğrenimi tekniklerin kullanıldığı düzenli istatistiksel bir model oluştururken yapmak)?
Steve S

2
Bu bana tıpkı bir istatistikçinin "kukla değişkenler" dediği gibi görünüyor. Ama belki bir miktar depolama alanı tasarrufu vardır.
Soldalma

3

Tek sıcak kodlama yaparak özelliklerin artırılmasıyla ilgili olarak, özellik hashlemesi kullanılabilir. Karma işlemi yaptığınızda, yeni tanıtılan özelliklerin sayısından çok daha az olan grup sayısını belirleyebilirsiniz.


0

Kategorileri tahmin etmek istediğinizde, bir kümedeki öğeleri tahmin etmek istersiniz. Tek sıcak kodlamanın kullanılmaması, kategorilerin belirli bir şekilde ve belirli bir sırada düzenlenmiş komşu kategorilere sahip olmasına (örneğin, bunun yerine kategorilerin tam sayılarıyla bir regresyon yaptıysanız) izin vermeye benzer.

Şimdi, kategori 0'dan 0'a, kategori 1'den 1'e ve kategori 2'den 2'ye tek sıcak kodlama olmadan atarsanız ve algoritmanızın öngörüsü, 0'ı mı yoksa 2'yi mi seçmesi gerektiğinden emin değilse ne olur? 0 mı yoksa 2 mi olduğunu düşünüyor?

Nereye gittiğini görüyorsunuz. Aynı şey veri girdileriniz için de geçerlidir: eğer komşu olmaları gerekmiyorsa, onları algoritmanıza komşu olarak göstermeyin.

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.