Kezdőoldal » Tudományok » Alkalmazott tudományok » Hogy becsülhetném egy vektor...

Hogy becsülhetném egy vektor egyes elemeinek újdonságértékét?

Figyelt kérdés

Van egy nagy méretű adathalmazom, minden sora egy 50 elemű vektor. Az adatokban van mintázat, sok változó korrelál egymással, ha lefuttatok rajta egy PCA-t, akkor az első néhány dimenzióban is jól látszik, hogy van benne struktúra bőven.


A célom az lenne, hogy egy új vektornak megtaláljam azokat a részeit, amelyek "kilógnak" az ismert mintázatokból. Mondjuk úgy, hogy minden eleméhez rendelek egy számot, ami azt jelzi, hogy mennyire "meglepő" az adott változó értéke a többi tükrében.


Hogy egy példával érzékeltessem, mire gondolok: ha egy adatpont egy ember lenne, akkor mondjuk egy műszaki diplomával rendelkező, 47 éves, három gyerekes, informatikában dolgozó, havi egymilliót kereső, 120 m2-es házban élő, 18 éves Swifttel járó ember esetében az autó korához és típusához magas "újdonságértéket" rendeljen az algoritmus, a többihez pedig viszonylag alacsonyat.


Ugye a lényeg itt, hogy a változók nem önmagukban érdekesek (a havi 1 milla pl. kiugróbb, mint egy Swift) hanem a többi kontextusában. Az emberünk a legtöbb tulajdonságával a gazdag emberek csoportjába illeszkedik, de kilóg onnan a kocsijával. Nagyjából erre gondolok. Ha az emberünknek egy új Mondeoja lenne de műszaki diploma helyett történelemtanárival, akkor az lenne az érdekes változó.


Tudtok megoldást javasolni erre? Ha ismert probléma, van esetleg valami neve?


2017. jan. 23. 19:07
 1/2 K...László válasza:
Szerintem minimálbérért oda kell ültetni egy 8 osztályt elvégzett, írni-olvasni tudó embert, mert legtöbbször ebben a kérdésben a gép nem tud dönteni. Ha minden elemhez alapból rendelsz egy számot a szegénytől a gazdagig 1-től 255-ig, utána az 50 szám átlagát veszed, és minden elemét külön összehasonlítod ezzel az átlaggal, akkor a kiugró értékeket észre tudod venni. Főleg akkor, ha van mellette néhány normális 50db, amiknek a max kiugró értékeinek az átlagából egy referenciát tudsz venni, hogy na ennél nagyobb eltérésre jelezzen a program. Miben kéne megcsinálni, AVR-ben?
2017. jan. 27. 14:22
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

A manuális megoldás sajnos szóba sem jön. A gazdag emberes, kocsis dolog pedig csak egy rossz példa volt, nekem sima, numerikus, élettani adatokat tartalmazó vektoraim vannak. És nincs egy konkrét tulajdonság, ami érdekelne, hanem az összes érdekel egyszerre.


Pillanatnyilag amúgy olyasmivel próbálkozom, hogy betanítok 50 regressziós modellt a vektor 50 elemének mindegyikére a másik 49 felhasználásával (a különböző modelleket próbálgatom épp). Egy vektor elemeinek meglepetés-értékét pedig úgy számolom, hogy egyesével megbecsültetem őket a másik 49-ből regresszióval, és megnézem hogy mennyire tér el a becslés a valós értéktől. Minél nagyobb a különbség (normalizálva persze, az eloszlás varianciáját is figyelembe véve), annál meglepőbb az adott elem.


Hogy visszatérjek a hülye példámhoz, a fenti csókának a regresszió 4 éves autót tippelne, amitől a valós 18 nagyon eltér, ami magas újdonságértéket eredményezne az autó korára.

2017. jan. 30. 17:33

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!