Sinir ağlarında ikili ve sürekli girdilerin bir karışımıyla nasıl başa çıkılır?


14

Kınamak için emlak fiyatları (kişisel proje) tahmin etmek için bir YSA oluşturmak için R nnet paketini kullanıyorum. Ben bu konuda yeniyim ve matematik geçmişim yok, bu yüzden lütfen bana çıplak.

Hem ikili hem de sürekli girdi değişkenleri var. Örneğin, başlangıçta evet / hayır olan bazı ikili değişkenler, sinir ağı için 1/0'a dönüştürülmüştür. Diğer değişkenler sürekli gibidir Sqft.

Giriş verisi örneği

Tüm değerleri 0-1 ölçeğinde olacak şekilde normalleştirdim. Belki Bedroomsve Bathroomsaralıkları sadece 0-4 olduğu için normalleştirilmemelidir?

Bu karışık girdiler YSA için bir sorun teşkil ediyor mu? İyi sonuçlar aldım, ancak daha yakından incelendiğinde YSA'nın belirli değişkenler için seçtiği ağırlıklar anlamlı görünmüyor. Kodum aşağıda, herhangi bir öneriniz var mı?

ANN <- nnet(Price ~ Sqft + Bedrooms + Bathrooms + Parking2 + Elevator + 
            Central.AC + Terrace + Washer.Dryer + Doorman + Exercise.Room + 
            New.York.View,data[1:700,], size=3, maxit=5000, linout=TRUE, decay=.0001)

GÜNCELLEME: İkili girdileri her bir değer sınıfı için ayrı alanlara bölmeyle ilgili aşağıdaki yorumlara dayanarak, kodum şimdi şöyle görünüyor:

ANN <- nnet(Price ~ Sqft + Studio + X1BR + X2BR + X3BR + X4BR + X1Bath
        + X2Bath + X3Bath + X4bath + Parking.Yes + Parking.No + Elevator.Yes + Elevator.No 
        + Central.AC.Yes + Central.AC.No + Terrace.Yes + Terrace.No + Washer.Dryer.Yes 
        + Washer.Dryer.No + Doorman.Yes + Doorman.No + Exercise.Room.Yes + Exercise.Room.No 
        + New.York.View.Yes + New.York.View.No + Healtch.Club.Yes + Health.Club.No,
    data[1:700,], size=12, maxit=50000, decay=.0001)

Yukarıdaki koddaki gizli düğümler 12'dir, ancak 3'ten 25'e kadar gizli düğümleri denedim ve hepsi yukarıda yayınlanan orijinal kodda gördüğüm orijinal parametrelerden daha kötü sonuçlar verdi. Ayrıca doğrusal çıktı = true / false ile denedim.

Benim tahminim veriyi nnet'e farklı bir şekilde beslemem gerektiğidir çünkü ikili girişi düzgün yorumlamamaktadır. Ya bu, ya da farklı parametreler vermem gerekiyor.

Herhangi bir fikir?


1
İkili veya kategorik verileri sinir ağı girişleri olarak kullanmanın standart yolu, alanı gösterge vektörlerine genişletmektir. Örneğin, 1,2 veya 3 değerlerini alabilecek bir alanınız varsa, 1, [1,0,0], 2 -> [0,1,0] ve 3 -> [ 0,0,1]. Gerçek değerli girdiler genellikle olduğu gibi tutulur.
user1149913

1
Şimdi bundan bahsettiğinize göre, cevap arama sırasında bunu bir yerde okuduğumu hatırlıyorum. Bilgi kaynağı bir csv dosyasında olduğundan, aslında her ikili giriş için yeni alanları karşılamak için sütun eklemeniz gerekir? Örneğin, yatak odası girişi 0-4 arasında değişiyorsa, yukarıdaki örneğinizi kullanarak 4 ek sütun ('0' yatak odası stüdyo anlamına geldiği için toplam 5) oluşturacaktım ve 3BR kınamak 0,0,0,1 olarak ifade edilecekti 0?
ChrisArmstrong

Yanıtlar:


8

Bu durumu ele almanın bir yolu, varyansların kabaca aynı ölçekte olması için girdileri yeniden ölçeklendirmektir. Bu tavsiye genellikle regresyon modellemesi için verilir, ancak gerçekten farklı ölçeklerde ölçülen değişkenleri içeren tüm modelleme durumları için geçerlidir . Bunun nedeni, bir ikili değişkenin varyansının, sürekli bir değişkenin varyansından genellikle oldukça farklı olmasıdır. Gelman ve Hill (2006) (ölçeklendirilmemiş) ikili girişlerle eşitlik elde etmek için sürekli girdilerin iki standart sapma ile yeniden ölçeklendirilmesini önermektedir. Bu öneri bir bildiriye ve blog yazısına da yansır .

Sinir ağları için daha spesifik bir öneri, "kukla kodlama" (0 ​​ve 1) yerine ikili girişler (yani -1 ve 1) için "efekt kodlaması" kullanmak ve sürekli değişkenleri ortalamak için ek adım atmaktır. Bu öneriler bir gelen yoğun SSS özellikle bölümleri "Neden kod ikili girişler 0 ve 1 olarak?", Warren Sarle tarafından ve "Giriş değişkenlerini standartlaştırmalı mıyım?" Bununla birlikte, esas aynıdır:

Bir girdinin katkısı büyük ölçüde diğer girdilere göre değişkenliğine bağlı olacaktır.

Sıralanmamış kategorik değişkenlere gelince - bunları ikili göstergelere ayırmalısınız . Aksi takdirde anlamlı değillerdir.


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.