Büyük kategorik değerler için bir sıcak kodlama alternatifi?


13

Merhaba 1600 kategoriler üzerinde büyük kategorik değerlere sahip veri çerçevesi var Ben 1600 sütunları yok böylece alternatifleri bulabilirsiniz herhangi bir yolu yoktur.

Bunu aşağıda ilginç bir bağlantı buldum http://amunategui.github.io/feature-hashing/#sourcecode

Ama istemediğim sınıfa / nesneye dönüşüyorlar. Nihai çıktımı bir veri çerçevesi olarak istiyorum, böylece farklı makine öğrenme modelleri ile test yapabilir miyim? veya Lojistik regresyon veya XGBoost dışındaki diğer makine öğrenimi modellerini eğitmek için üretilen matrisi kullanabilmemin bir yolu var mı?

Yine de uygulayabileceğim var mı?


Bu gerçekten bir sorun mu? Seyrek matris temsili kullandığınızı varsayarsak, onehot kodlaması gerçek bir sorun olmayacaktır.
Louis T

@LouisT 500 milyondan fazla kayıttan milyonlarca kaydım var
vinaykva

Yine de sıcaksa, seyrek matris kullanmanın önemi olmayacak
Louis T

@LouisT Karmaşıklığı artacak ve tren zamanı da artacak ve verilerim çok seyrek olacak
vinaykva

1
yayınınız yaklaşık 1 yıl önce ve belki de artık ilgilenmiyorum, ancak yine de ilgileniyorsanız Nöral Ağları kullanarak Varlık Gömme'yi duydunuz mu? medium.com/@satnalikamayank12/…
TwinPenguins

Yanıtlar:


10

Bir seçenek, nadir değerleri 'diğer' ile eşlemektir. Bu genellikle örneğin doğal dil işlemede yapılır - sezgi, çok nadir etiketlerin çok fazla istatistiksel güç taşımadığıdır.

İnsanların 1-sıcak kategorik değerlerini, her 1-sıcak vektörün çok değişkenli bir Gaussian'dan bir beraberlik olarak yeniden temsil edildiği daha düşük boyutlu vektörlerle eşleştirdiklerini gördüm. Bkz. Örneğin, bu yaklaşımın sıkıştırılmış algılama fikri tarafından motive edildiğini söyleyen Derin Bilgi İzleme makalesi:

BARANIUK, R. Basınçlı algılama. IEEE sinyal işleme dergisi 24, 4 (2007).

Özellikle, N uzunluğundaki her vektörü daha uzun bir uzunluk log2 (N) vektörüne eşlerler. Bunu kendim yapmadım ama bence denemeye değer.


Böyle kodlama ile mesafe hesaplamak nasıl merak ediyorum?
eric2323223

2

Verileri okuyabilir ve önce kategorik değişkenlerinizin tüm benzersiz değerlerinin bir listesini alabilirsiniz. Ardından, benzersiz değerler listenize bir sıcak kodlayıcı nesnesi (sklearn.preprocessing.CategoricalEncoder gibi) sığdırabilirsiniz.

Bu yöntem ayrıca bir tren testi çerçevesinde veya verilerinizi parçalar halinde okurken de yardımcı olabilir. Tüm bunları kendi başına yapan bir python modülü oluşturdum. Bu GitHub deposunda bulabilirsiniz - dummyPy

Bu kısa bir öğretici - Python bir Hot Encode Kategorik Değişkenler Nasıl?



0

En yakın değer içeren (veya çok benzer) desen içeren değerlerin (veya sütunların) bir değer (veya sütun) ile değiştirilebilmesi ve böylece 1600 değerlerinizin 400 (veya hatta az).

Ör. gibi değerler için (bulut gibi - Nimbus Bulutlar, çiseleyen yağmur, hafif yağmur, yağmur, şiddetli yağmur (hafif yağmur, yağmur, şiddetli yağmur) dönüştürülebilir.

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.