Saya akan menjelaskan masalah saya dengan sebuah contoh. Misalkan Anda ingin memprediksi penghasilan seseorang yang diberikan beberapa atribut: {Usia, Jenis Kelamin, Negara, Wilayah, Kota}. Anda memiliki dataset pelatihan seperti itu
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
Sekarang anggaplah saya ingin memprediksi pendapatan orang baru yang tinggal di City 7. Set pelatihan saya memiliki 3 sampel kekalahan dengan orang-orang di City 7 (anggap ini banyak) jadi saya mungkin dapat menggunakan penghasilan rata-rata di City 7 untuk prediksi pendapatan individu baru ini.
Sekarang anggaplah saya ingin memprediksi pendapatan orang baru yang tinggal di City 2. Set pelatihan saya hanya memiliki 1 sampel dengan City 2 sehingga pendapatan rata-rata di City 2 mungkin bukan prediktor yang andal. Tapi saya mungkin bisa menggunakan penghasilan rata-rata di Wilayah 1.
Mengekstrapolasi ide ini sedikit, saya bisa mengubah dataset pelatihan saya sebagai
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
Jadi, tujuannya adalah untuk entah bagaimana menggabungkan rata-rata CityIncome, RegionIncome, dan CountryIncome sambil menggunakan jumlah sampel pelatihan untuk masing-masing untuk memberikan bobot / kredibilitas untuk setiap nilai. (Idealnya, masih termasuk informasi dari Zaman dan Jender.)
Apa tips untuk mengatasi masalah seperti ini? Saya lebih suka menggunakan model berbasis pohon seperti meningkatkan hutan acak atau gradien, tapi saya mengalami kesulitan untuk melakukan ini dengan baik.
MEMPERBARUI
Bagi siapa pun yang mau mencoba masalah ini, saya telah menghasilkan data sampel untuk menguji solusi yang Anda usulkan di sini .