Mam następujący problem:Algorytm do uzupełnienia uszkodzonej macierzy danych
Wyodrębniłem zestaw danych, ale część tych danych jest niedostępna lub ich brakuje; dla różnych przedmiotów zidentyfikowałem 10 parametry:
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
istnieje niejawna logika w tworzeniu przedmiotów, więc chciałbym, aby wypełnić te wartości z najlepszej możliwej wartości oczekiwanej.
Przykład:
Wyobraźmy sobie, masz 2 parametry i 3 pozycji.
param1 param2
item1 400 200
item2 200 100
item3 100 N/A
Przy interpolacji liniowej będzie łatwo dostać param2 dla item3 = 50
.
Mój pomysł:
Jak mam 10 parametrów i 1500 wartości, myślałem o robi PCA na covariance matrix z 750 elementów, które są kompletne (znalezienie główny kierunek zbioru danych).
PCA doprowadzi mnie do jednego głównego kierunku dla moich przedmiotów (największej wartości własnej) i podrzędnego kierunku dla podgrup przedmiotów (mniejsze wartości własne).
Chciałem wyświetlić na przykład wektory z brakującymi parametrami na głównym kierunku. aby uzyskać przybliżoną wartość brakujących parametrów.
Od mojego pierwszego przykładu:
param1 param2
item1 400 200
item2 200 100
item3 100 X ?
kompletnej macierzy: macierzy
param1 param2
item1 400 200
item2 200 100
kowariancji:
1 0.5
0.5 1
eigen wektorów i Eigen wartości:
V1 i L1:
1
1 associatedd to 1.5
V2 i L2:
1
-1 associated to 0.5
wynik:
Gdybym projektu na Tylko V1 otrzymuję X1=100
.
Jeśli wykonam projekt na l1.V1 + l2.V2
, otrzymam X1=50
. Jest tak dlatego, że istnieje idealna korelacja między pierwszymi 2 przedmiotami.
Więc moje pytanie:
tej pory to tylko teoria, że nie zastosowano go jeszcze, ale zanim zacznę chciałbym wiedzieć, czy jadę gdzieś z tym.
Czy mogę zrobić lepiej? (Naprawdę uważam, że tak). Co mogę zrobić, jeśli wszystkie przedmioty mają jeden brakujący parametr? Skąd mam kierunek?
Czy są znane dobre algorytmy do wypełniania uszkodzonych matryc, czy możesz pomóc mi uzupełnić mój pomysł (zalecając mi dobre odczyty lub metody)?
Myślę, że Netflix używa tego rodzaju algorytmu do automatycznego wypełniania matrycy wyników filmowych (np. Problem z dolarem Netflix 1M).
Jeśli uważasz, że należy do innej witryny stosu, możesz ją przenieść.
Masz rację, z powodu takiego problemu uczenie maszynowe może być dobrym podejściem. Spróbuję Weka. Dzięki –