Sorunumu bir örnekle açıklayacağım. Bazı nitelikler verilen bir bireyin gelirini tahmin etmek istediğinizi varsayalım: {Yaş, Cinsiyet, Ülke, Bölge, Şehir}. Bunun gibi bir eğitim veri setine sahipsiniz
train <- data.frame(CountryID=c(1,1,1,1, 2,2,2,2, 3,3,3,3),
RegionID=c(1,1,1,2, 3,3,4,4, 5,5,5,5),
CityID=c(1,1,2,3, 4,5,6,6, 7,7,7,8),
Age=c(23,48,62,63, 25,41,45,19, 37,41,31,50),
Gender=factor(c("M","F","M","F", "M","F","M","F", "F","F","F","M")),
Income=c(31,42,71,65, 50,51,101,38, 47,50,55,23))
train
CountryID RegionID CityID Age Gender Income
1 1 1 1 23 M 31
2 1 1 1 48 F 42
3 1 1 2 62 M 71
4 1 2 3 63 F 65
5 2 3 4 25 M 50
6 2 3 5 41 F 51
7 2 4 6 45 M 101
8 2 4 6 19 F 38
9 3 5 7 37 F 47
10 3 5 7 41 F 50
11 3 5 7 31 F 55
12 3 5 8 50 M 23
Şimdi, Şehir 7'de yaşayan yeni bir insanın gelirini tahmin etmek istediğimi varsayalım. Eğitim setimde, Şehir 7'deki insanlarla dolu bir 3 örnek var (bunun çok fazla olduğunu varsayalım). bu yeni bireyin gelirini tahmin et.
Şimdi, Şehir 2'de yaşayan yeni bir insanın gelirini tahmin etmek istediğimi varsayalım. Eğitim setimde sadece City 2 ile birlikte 1 örnek var, bu yüzden City 2'deki ortalama gelir muhtemelen güvenilir bir tahmin değil. Ama muhtemelen Bölge 1'deki ortalama geliri kullanabilirim.
Bu fikri bir miktar ekstrapolasyonla, eğitim veri kümemi şu şekilde dönüştürebilirim
Age Gender CountrySamples CountryIncome RegionSamples RegionIncome CitySamples CityIncome
1: 23 M 4 52.25 3 48.00 2 36.5000
2: 48 F 4 52.25 3 48.00 2 36.5000
3: 62 M 4 52.25 3 48.00 1 71.0000
4: 63 F 4 52.25 1 65.00 1 65.0000
5: 25 M 4 60.00 2 50.50 1 50.0000
6: 41 F 4 60.00 2 50.50 1 51.0000
7: 45 M 4 60.00 2 69.50 2 69.5000
8: 19 F 4 60.00 2 69.50 2 69.5000
9: 37 F 4 43.75 4 43.75 3 50.6667
10: 41 F 4 43.75 4 43.75 3 50.6667
11: 31 F 4 43.75 4 43.75 3 50.6667
12: 50 M 4 43.75 4 43.75 1 23.0000
Bu nedenle amaç, her bir değere ağırlık / güvenilirlik kazandırmak için her biri için eğitim örneği sayısını kullanırken ortalama Şehir Gelirini, Bölge Gelirini ve Ülke Gelirini birleştirmektir. (İdeal olarak, hala Yaş ve Cinsiyet bilgileri dahil)
Bu tür bir sorunu çözmek için ipuçları nelerdir? Rastgele orman veya gradyan artırma gibi ağaç tabanlı modelleri kullanmayı tercih ediyorum, ancak bunların iyi performans göstermesinde sorun yaşıyorum.
GÜNCELLEŞTİRME
Bu problemi aşmak isteyen herkes için, önerilen çözümünüzü burada test etmek için örnek veriler oluşturdum .