tengo el problema siguiente:Algoritmo para completar una matriz corrupta de datos
extraje un conjunto de datos, sino que parte de estos datos o bien no están disponibles o no; para diversos artículos identifiqué 10 parámetros:
param1 param2 ... param10
Item 1 1220 N/A 1000
Item 2 1300 200 ... 1000
.. ... ...
item N N/A 1000 ... 200
N ~ 1500 and half of the values are complete
hay una lógica implícita en la creación de artículos, así que me gustaría que llenar estos valores con el mayor valor esperado sea posible.
Ejemplo:
Imaginemos que tiene 2 parámetros y 3 artículos.
param1 param2
item1 400 200
item2 200 100
item3 100 N/A
Con interpolación lineal se podrían obtener fácilmente param2 para item3 = 50
.
Mi idea:
Como tengo 10 parámetros y 1500 los valores, se me ocurrió hacer un PCA en el covariance matrix de los 750 artículos que son completa (la búsqueda de la dirección principal del conjunto de datos).
El PCA me llevará a una dirección principal para mis artículos (mayor valor propio), y subdirección para subgrupos de elementos (valores propios más pequeños).
Quería proyectar los vectores con parámetros faltantes en la dirección principal, por ejemplo. para obtener el valor aproximado de los parámetros faltantes
Desde mi primer ejemplo:
param1 param2
item1 400 200
item2 200 100
item3 100 X ?
matriz completa: matriz
param1 param2
item1 400 200
item2 200 100
covarianza:
1 0.5
0.5 1
vectores propios y valores propios:
V1 y L1:
1
1 associatedd to 1.5
V2 y L2:
1
-1 associated to 0.5
resultado:
Si yo proyecto sobre V1 solo consigo X1=100
.
Si proyecto en l1.V1 + l2.V2
obtengo X1=50
. Esto es porque hay una correlación perfecta entre los primeros 2 artículos.
Así que mi pregunta:
Hasta el momento es sólo teoría, que no han aplicado todavía, pero antes de empezar me gustaría saber si voy a alguna parte con esto.
¿Puedo hacer algo mejor? (Realmente creo que sí.) ¿Qué puedo hacer si todos los elementos tienen un parámetro que falta? ¿De dónde saco la dirección?
¿Hay buenos algoritmos conocidos para completar las matrices dañadas, o puede ayudarme a completar mi idea (recomendando buenas lecturas o métodos)?
Creo que Netflix utiliza este tipo de algoritmo para completar automáticamente la matriz de puntaje de la película (problema de 1M dólar de Netflix).
Si crees que esto pertenece a otro sitio stackexchange, puedes migrarlo.
Tienes razón, para un problema como el aprendizaje automático puede ser un buen enfoque. Voy a intentar Weka. Gracias –