Explicaré mi problema con un ejemplo. Suponga que desea predecir el ingreso de un individuo dados algunos atributos: {Edad, Sexo, País, Región, Ciudad}. Tienes un conjunto de datos de entrenamiento como este
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
Ahora suponga que quiero predecir el ingreso de una nueva persona que vive en la Ciudad 7. Mi conjunto de entrenamiento tiene 3 muestras con personas en la Ciudad 7 (suponga que esto es mucho), por lo que probablemente pueda usar el ingreso promedio en la Ciudad 7 para predecir los ingresos de este nuevo individuo.
Ahora suponga que quiero predecir los ingresos de una nueva persona que vive en la Ciudad 2. Mi conjunto de entrenamiento solo tiene 1 muestra con la Ciudad 2, por lo que el ingreso promedio en la Ciudad 2 probablemente no sea un predictor confiable. Pero probablemente pueda usar el ingreso promedio en la Región 1.
Extrapolando un poco esta idea, puedo transformar mi conjunto de datos de entrenamiento como
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
Por lo tanto, el objetivo es combinar de alguna manera el promedio CityIncome, RegionIncome y CountryIncome mientras se usa el número de muestras de entrenamiento para cada una para dar un peso / credibilidad a cada valor. (Idealmente, aún incluye información de Edad y Género).
¿Cuáles son los consejos para resolver este tipo de problema? Prefiero usar modelos basados en árboles como bosque aleatorio o aumento de gradiente, pero tengo problemas para que estos funcionen bien.
ACTUALIZAR
Para cualquiera que esté dispuesto a probar este problema, he generado datos de muestra para probar su solución propuesta aquí .