Elektrotehnički fakultet Univerzitet u...
Transcript of Elektrotehnički fakultet Univerzitet u...
Elektrotehnički fakultet
Univerzitet u Beogradu
Primena Big Data analize u elektronici preko statističkih funkcija dubine
mentor:
Prof. dr Milan Merkle
Elektrotehnički fakultet
Univerzitet u Beogradu
analize u elektronici preko statističkih funkcija dubine
Diplomski rad
student:
Srđan Jovanović
Beograd, jun 2017.
analize u elektronici preko statističkih funkcija dubine
Srđan Jovanović
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
1
Sadržaj
1. Uvod ...............................................................................................................................2
2. Teorijska osnova dubine tačaka .......................................................................................4
2.1. Tjukijeva (Tukey) dubina tačke ....................................................................................4
2.2. Grafička reprezentacija Tjukijeve dubine tačaka ...........................................................4
2.3. Osobine funkcija dubina ...............................................................................................7
2.4. Robusnost .................................................................................................................. 13
3. ABCDepth algoritam ..................................................................................................... 14
3.1. R programski jezik ..................................................................................................... 14
3.2. ABCDepth algoritam za računanje Tjukijevih dubina tačaka ...................................... 16
3.3. Aproksimacija ABCDepth algoritma .......................................................................... 25
3.4. ABCDepth algoritam za računanje Tjukijeve medijane ............................................... 25
3.5. Složenost ABCDepth algoritma za nalaženje medijane ............................................... 27
4. Klasifikacija komponenata ............................................................................................ 28
4.1. Bagdistance postupak ................................................................................................. 28
4.2. kNN klasifikator ......................................................................................................... 29
4.3. Form Fit Functional Equivalents (FFFs) ..................................................................... 30
5. Zaključak ...................................................................................................................... 33
6. Literatura ....................................................................................................................... 34
7. Prilog: programski kodovi ............................................................................................. 35
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
2
1. Uvod Medijana je tačka koja se u intuitivnom značenju vezuje za centar neke raspodele.
Odrediti medijanu je prilično trivijalno kod jednodimenzionih skupova tačaka. Ipak, kod
višedimenzionih podataka, a takvih je najviše, to često nije jednostavno jer ne postoji
dovoljna intuitivnost. Stoga je jasno da postoji izuzetna potreba za stvaranjem metode koja bi
rešila ovaj problem. Jedan od pristupa ka rešenju, a koji će biti i predstavljen u ovom radu, je
definisanje dubine tačaka tako da su one centralne zapravo najveće dubine („najdublje“).
Medijana je na primer najdublja tačka u sistemu i postojeće metode za nalaženje medijane
biće polazna tačka ka realizaciji algoritma koji bi računao dubinu svake tačke. U ovom radu
od interesa će biti one metode koje se zasnivaju na definiciji dubine u višedimenzionom
prostoru pomoću poluravni (halfspace depth) . Nastanak ove definicije se vezuje još
za 1975. godinu, a idejnim tvorcem se smatra Džon Tjuki (John Tukey). Kasnije, 1992.
godine, Dejvid Donahju (David Donoho) i Mirijam Gasko (Miriam Gasko) formalno su i
zapisali ovu definiciju, koja se smatra jednom od najvažnijih definicija dubine tačaka.
Čak i pored mnogih pokušaja, još uvek nije pronađena efikasna metoda kojom bi se
računale dubine tačaka u višedimenzionom prostoru dimenzija većih od 100. Zbog toga je ova
oblast i dalje nedovoljno istražena i zasniva se pre svega na teorijskim razmatranjima. U
dvodimenzionom prostoru, Peter Rousseuw i Ida Ruts su 1998. godine predstavili HALFMED
algoritam za računanje medijane koji je poprilično brz. U višedimenzionom prostoru, Struyf i
Rousseeuw su 2000. godine osmislili aproksimativni DEEPLOC algoritam za računanje
medijane. Ovaj algoritam ima problema sa efikasnošću, obzirom da njegovo vreme
izvršavanja ima eksponencijalnu zavisnost od dimenzije. Tymothy Chan je 2004. godine
osmislio veoma precizan algoritam koji je pritom izuzetno složen za izračunavanje. Pavlo
Mozharovskyi je 2016. godine objavio algoritam koji je egzaktan, a čija složenost još uvek
nije ispitana. Neki od ovih algoritama poslužiće kasnije za poređenje sa ABCDepth
algoritmom koji je, inače, okosnica ovog rada.
Značaj funkcija dubine je višestruk. On se ogleda kroz mnoge podoblasti statistike u
kojima se ove funkcije upotrebljavaju. Kod robusne estimacije parametara, klasterizacije,
klasifikacije ove funkcije nalaze veliku primenu. Funkcionalna analiza podataka koja je sve
zastupljenija koristi dubine tačaka u velikoj meri.
U današnje vreme podaci su postali gotovo neizostavan deo svakodnevice. Svakog
trenutka nastaje ogromna količina informacija koju je potrebno obraditi i iz nje izvući
konkretne zaključke. Da bi se to uradilo, često je potrebno ove podatke transformisati u
pogodan oblik, a zatim na njih primeniti neki od dostupnih modela procesiranja. Sve ovo
jednim imenom se naziva Big Data. Ovaj termin dobija sve više na značaju upravo zbog svoje
osobine da gomilu naizgled nebitnih i za nas beznačajnih informacija predstavi u pogodnom i
razumljivom obliku. Statistika, dakle, u ovoj oblasti ima značajnu ulogu i njen osnovni
zadatak je da sve te podatke uprosti i predstavi na pogodan način. U ovom radu biće
prikazana potencijalna primena Big Data analize u elektronici kroz neke od statističkih
metoda klasifikacija.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
3
Jedan od izazova u elektronici je pronalaženje zamenskih komponenti koje ulaze u
sastav nekog proizvoda. Nazivi komponenata nekog elektronskog uređaja se zapisuju u Bill of
Material (BOM) dokumentima. Ovi dokumenti su veoma značajni sa strane korisnika
(profesionalci ili hobisti), jer omogućavaju jednostavan odabir komponenti za neke druge
primene na osnovu svog sadržaja. Ipak, često se ne koriste baš iste pobrojane komponente,
već se traže zamenske komponente koje su im slične po karakteristikama. Postoji više razloga
zbog kojih se traže zamene: nekada je potrebno uzeti jeftiniju varijantu komponente,
pobrojane komponente se više ne proizvode ili se ne ponašaju dovoljno dobru u radu pa im se
traži slična verzija. Često se komponente predstavljaju opisno (primer za otpornik R 100K
0.0625W 10%) pa je potrebno naći njihove ekvivalente ili odrediti grupu kojoj pripadaju. U
ovom radu će se razmatrati pasivne komponente koje se predstavljaju višedimenzionim
skupom, tako da svaka dimenzija označava neku karakteristiku komponente. Kako bi se što
preciznije identifikovala komponenta, potrebno je izvršiti klasifikaciju, videti kojoj klasi ona
pripada i zatim samo pročitati komponente iz te klase koje se mogu koristiti kao zamena.
Ideja je da se primenom kNN metoda izvrši klasifikacija, pri čemu se za merenje rastojanja
koristi bagdistance pristup ([3], 2.2 The Bagdistance). Ovaj pristup računa rastojanja među
tačkama koristeći medijanu, čime se postiže značajna robusnost i smanjuje osetljivost na
outlier-e (tačke koje po karakteristikama ne pripadaju skupu). Izračunavanje medijane u
višedimenzionalnom prostoru je kompleksno i zato je bitno odabrati efikasan algoritam. S tim
u vezi, biće izložen ABCDepth algoritam ([2], ) koji ima linearnu zavisnost od broja
dimenzija, što ga čini jednim od najefikasnijih algoritama ove vrste. Sva implementacija,
testiranja i simulacije radiće se u programskom jeziku R koji predstavlja osnovni alat u
statistici.
Predmet razmatranja u ovom radu je primena novog aproksimativnog ABCDepth
algoritma zasnovanog na Tjukijevim (Tukey) dubinama u pomenutoj klasifikaciji u
elektronici. S tim u vezi, izložiće se teorijski osvrt, implementacija algoritma i računarske
simulacije koje se bave ovom temom.
U drugom delu izlaganja biće objašnjene halfspace funkcije dubine, u trećem
ABCDepth algoritam i implementacija u R-u, dok će se četvrti deo odnositi na bagdistance
pristup i klasifikaciju elektronskih komponenti primenom kNN-a. Na kraju rada su priloženi
svi koršćeni programski kodovi.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
2. Teorijska osnovaDubina tačke se može shvatiti kao mera koliko je neka tačka blizu „centra“ raspodele
konačnog skupa � ∈ ℝ�, pa se na osnovu toga kaže koliko je ona zapravo
u tom skupu. Kod jednodimenzionalnog
da je dovoljno samo sortirati ih i zatim izbrojati koliko pozicija je
najbližeg kraja. U primeru na
tačke 1 je 1 jer se nalazi odmah na početku niza. Dubina tačke 2 je
početka), isto kao i tačke 4 koja je udaljena
3 (dubine 3) i ona je ujedno i medijana ovog niza.
dubina nije tako trivijalno.
Slika
2.1.Tjukijeva (Tukey
Funkcija koja računa dubi
meru raspodele tačaka, �, ona se
tumačenja ovih funkcija, ali u ovom radu će
bazira na dubinama poluprostora (
Tjukijeva (Tukey) ili
definiše kao najmanja od svih verovatnoća da ta tačka pripada bilo kom zatvorenom
poluprostoru koji je sadrži, odnosno
�(�; �) = ���{�(�) |
2.2.Grafička reprezentacija
U nastavku je ilustrovana pomenuta teorema na primeru dvodimenzionog slučaja
Neka je dato 9 tačaka kao na slici
provući pravu (polupravu) kroz tu tačku tako
dvodimenzionom prostoru, poluprostor je zapravo poluravan)
tačaka (uključujući i tačku za koju se računa dubina).
dubinu posmatrane tačke, odnosno
predstavlja dubinu tačke. Na slici je prikazan jedan skup dvodimenzionih tačaka. Plava tačka
na slici 2 je dubine 1/9 jer u jednoj poluravni ima samo jednu tačku (sama ta tačka), dok
drugoj poluravni nalazi 9 tačaka.
jednoj njenoj poluravni nalaze 4 tačke, a u drugoj 6.
skupa, jer ima najveću dubinu.
LIZE U ELEKTRONICI PREKO
Teorijska osnova dubine tačaka se može shvatiti kao mera koliko je neka tačka blizu „centra“ raspodele
, pa se na osnovu toga kaže koliko je ona zapravo
dimenzionalnog slučaja dubinu tačaka je relativno lako naći obzirom
e dovoljno samo sortirati ih i zatim izbrojati koliko pozicija je neka
slici 1 postoji 5 tačaka koje su poređane po vrednosti.
jer se nalazi odmah na početku niza. Dubina tačke 2 je 2 (udaljena
početka), isto kao i tačke 4 koja je udaljena dva mesta od kraja niza. Najdublja tačka je tačka
) i ona je ujedno i medijana ovog niza. Kod višedimenzionalnog slučaja nalaženje
Slika 1: Primer jednodimenzionog niza tačaka
Tukey) dubina tačke
Funkcija koja računa dubinu tačke naziva se funkcija dubine. Za datu tačku
ona se obeležava sa �(�; �). Shodno tome postoje više različitih
tumačenja ovih funkcija, ali u ovom radu će zbog svojih osobina od interesa biti ono koje se
bazira na dubinama poluprostora (halfspace depth).
ili poluprostorna (halfspace) dubina tačke � ∈
definiše kao najmanja od svih verovatnoća da ta tačka pripada bilo kom zatvorenom
koji je sadrži, odnosno
( ) | � ∈ �}, gde je � zatvoreni poluprostor u ℝ�
Grafička reprezentacija Tjukijeve dubine tačaka
nastavku je ilustrovana pomenuta teorema na primeru dvodimenzionog slučaja
tačaka kao na slici 2. Da bi se odredila dubina neke od tačaka, potrebno je
(polupravu) kroz tu tačku tako da u jednoj od dve dobijene poluravni
dimenzionom prostoru, poluprostor je zapravo poluravan) bude što je moguće manje
(uključujući i tačku za koju se računa dubina). Broj tačaka u toj poluravni određuje
dubinu posmatrane tačke, odnosno, taj broj podeljen sa ukupnim brojem tačaka u skupu
Na slici je prikazan jedan skup dvodimenzionih tačaka. Plava tačka
1/9 jer u jednoj poluravni ima samo jednu tačku (sama ta tačka), dok
nalazi 9 tačaka. Crvena tačka na slici 3 ima dubinu 4/9, obzirom da se u
jednoj njenoj poluravni nalaze 4 tačke, a u drugoj 6. Ova tačka je ujedno i medijana ovog
skupa, jer ima najveću dubinu.
SRĐAN JOVANOVIĆ
4
se može shvatiti kao mera koliko je neka tačka blizu „centra“ raspodele
, pa se na osnovu toga kaže koliko je ona zapravo „duboko“ smeštena
je relativno lako naći obzirom
neka tačka udaljena od
postoji 5 tačaka koje su poređane po vrednosti. Dubina
(udaljena dva mesta od
od kraja niza. Najdublja tačka je tačka
Kod višedimenzionalnog slučaja nalaženje
Za datu tačku x i za datu
Shodno tome postoje više različitih
od interesa biti ono koje se
∈ ℝ� raspodele � se
definiše kao najmanja od svih verovatnoća da ta tačka pripada bilo kom zatvorenom
�.
tačaka
nastavku je ilustrovana pomenuta teorema na primeru dvodimenzionog slučaja.
. Da bi se odredila dubina neke od tačaka, potrebno je
u jednoj od dve dobijene poluravni (u
bude što je moguće manje
Broj tačaka u toj poluravni određuje
taj broj podeljen sa ukupnim brojem tačaka u skupu
Na slici je prikazan jedan skup dvodimenzionih tačaka. Plava tačka
1/9 jer u jednoj poluravni ima samo jednu tačku (sama ta tačka), dok se u
ima dubinu 4/9, obzirom da se u
Ova tačka je ujedno i medijana ovog
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
5
Slika 2: Tačka dubine 1 u dvodimenzinalnom prostoru
Slika 3: Tačka dubine 4 u dvodimenzinalnom prostoru
Interesantno je pogledati i primer sa 3 tačke. Tada svaka od tačaka ima istu dubinu
koja iznosi 1/3, obzirom da se preostale dve tačke uvek nalaze u istoj poluravni. To je
prikazano na slici 4.
Slika 4: Primer sa 3 tačke dubine 1/3 u dvodimenzinalnom prostoru
Pošto se višedimenzionalni podaci (d > 2) ne mogu predstaviti u dve dimenzije, javlja
se problem njihove vizuelizacije. Ovo se rešava uvođenjem pojma dubinskih regiona(depth
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
6
regions ili level sets). Ovaj pojam označava sve tačke koje se nalaze na istoj dubini. Dubinski
region nivoa � ∈ (�0,1] definiše se kao ([1], M. Merkle 2010)
�� = ��(�): = {� ∈ ℝ� | �(�; �) ≥ �)}
Dubinski region može se zamisliti i kao presek kugli koje sadrže tačke u d-dimenzionom
prostoru. Svaka kugla � je određena svojim centrom i sadrži najbiližih ⌊�(1 − �) + 1⌋ tačaka
računajući euklidsko rastojanje. Onda se dubinski region može zapisati kao
�� = � �
�(�)����
Jasno je da se sa povećanjem dubine (�) smanjuje ovaj region i da je �� = 0 za � > ��, gde
je �� maksimalna dubina za datu meru verovatnoće � . Granice ovih regiona se nazivaju
dubinske konture(depth contours) za dve dimenzije, odnosno dubinske površi (depth surface)
uopšte. Isto tako se i medijana može definisati pomoću preseka kugli kao
���(�) = ⋂ ��(�)��� , gde je � = {��, ��, . . , ��}.
Na primeru tri dvodimenzionalna skupa mogu se videti ove konture. Prvi skup
nycrime.dat sadrži podatke o procentualnim promenama ljudstva u policiji i dogođenim
krađama za određeni vremenski period. Drugi skup single-engine_aircraft.tsv sadrži težinu i
cenu letelica. Treći skup animals_log.tsv sadrži težinu životinja i težinu njihovog mozga. Na
slikama 5, 6, i 7 su prikazane dubinske konture svakog od skupova pojedinačno. Konture su
iscrtane korišćenjem funckije isodepth() iz R-paketa depth, o čemu će biti više reči kasnije.
Slika 5: Dubinske konture nycrime.dat skupa korišćenjem funkcije isodepth
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
7
Slika 6: Dubinske konture animals_log.tsv skupa korišćenjem funkcije isodepth
Slika 7: Dubinske konture single_engine-aircraft.tsv skupa korišćenjem funkcije isodepth
Ovo je bitno jer u praksi vrlo retko postoji potreba da se izračuna dubina konkretne
tačke. Dubine tačaka se koriste samo kako bi se formirale konture i regioni, a svi ostali
zaključci se donose upravo na osnovu njihovih predstava.
2.3.Osobine funkcija dubina
Jedan od razloga zbog čega se baš poluprostorne (halfspace) dubine koriste jesu
osobine koje poseduju, a koje su veoma korisne u statistici. Postoji 4 osobina za koje je
poželjno da ih poseduje svaka dubinska funkcija i to su: afina invarijantnost, monotonost u
odnosu na najdublje tačke, maksimum dubine u centru raspodele, nestajanje u beskonačnosti.
Pomenute karakteristike su glavni kriterijumi pri odabiru dubinske funkcije. U tom smislu
poluprostorna dubina daje najbolje rezultate u poređenju sa ostalima zbog čega je i jedna od
najzastupljenijih dubinskih funkcija. Ove osobine biće objašnjenje u nastavku teksta.
Afina invarijantnost (affine invariance) je osobina dubinske funkcije takva da dubina
tačke � ∈ ℝ� ne zavisi od izabranog koordinatnog sistema, ili od bilo kakvog skaliranja i
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
8
razmere. Drugim rečima, nad posmatranim skupom tačaka može se odraditi bilo koja
linearna transformacija � → � × � + �, gde je � ∈ ℝ�×� regularna matrica i � ∈ ℝ�, tako
da dubine tačaka ostanu nepromenjene. To se može zapisati u obliku
�(�; �) = �(�� + �; �)
Maksimum u centru raspodele je osobina da centralne tačke skupa imaju najveću dubinu
kako bi taj centar bio jedinstven (kod simetričnih raspodela tačaka).
Monotonost je osobina da kako se tačka � ∈ ℝ� udaljava od najdublje tačke iz skupa,
njena dubina opada monotono.
Nestajanje u beskonačnosti znači da dubina tačke teži nuli kako se tačka približava
beskonačnosti.
Jedna od najosnovnijih definicija dubine je dubina po koordinatama (coordinate-wise
depth), koja se često koristi za poređenje sa ostalim dubinama. Na ovaj način pomenute
osobine, a naročito afina invarijantnost, se mogu vrlo lako razumeti.
Dubina po koordinatama (Coordinate-wise) dubina se definiše kao,
��(�, �) = inf(�(��), � ∈ ��)
gde je �� zatvoreni poluprostor čija je granica ortogonalna na jednu od osa. Ovo znači da za
svaku tačku dubina se određuje za svaku dimenziju i ne uzimaju se svi poluprostori u skupu,
već samo oni čija je granica ortogonalna na osu za odgovarajuću dimenziju. Definicija CW
dubinskih kontura je ista kao i Tjukijevih (Tukey) kontura.
Definicija CW dubine samim tim određuje i izgled dubinskih kontura. U dve dimenzije
one će biti u obliku pravougaonika definisanog stranicama �� i ���� na svakoj koordinatnoj
osi, gde je Q kvantil odgovarajućeg reda za jednodimenzione raspodele. Kako se ovde, za
razliku od Tjukijevih (Tukey) dubina, ne uzimaju u obzir sve poluravni, već samo one
ortogonalne, to znači da će i preseci tih poluravni biti mnogo veći, a samim tim će i dubinske
konture biti obimnije od Tjukijevih dubinskih kontura. CW dubina je iz tog razloga nadskup
Tjukijeva (Tukey) dubina, i važi relacija � ⊆ ��, gde je sa � označena Tjukijeva (Tukey)
dubina. Ovo se može koristiti da bi se u nekim situacijama gde je potrebna gruba
aproksimacija Tjukijeve dubine, jer je algoritam za nalaženje CW medijane daleko
jednostavniji.
Kako bi se ove osobine najbolje uočile, na slikama 8, 9 i 10 su dati primeri poređenja
Tjukijeve(Tukey) medijane i CW medijane. CW medijana predstavlja vektor čije su koordinate
jednodimenzione medijane. Ona nije afina invarijantna i zbog toga je zanimljivo uporediti je
sa Tjukijevom (Tukey) medijanom. Poređenje će biti izvršeno na tri već pomenuta skupa
dvodimenzionih podataka. Crvenom bojom prikazana je CW medijana, a plavom Tjuki
medijana. U sva tri slučaja ove medijane su približno slične.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
9
Slika 8: CW i poluprostorna medijana – nycrime.dat
Slika 9: CW i poluprostorna medijana – animals_log.tsv
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
10
Slika 10: CW i poluprostorna medijana – single-engine_aircraft.tsv
Radi ispitivanja afine invarijantnosti potrebno je uvesti transformaciju � → � × � + �
koja tačku x transformiše u novi koordinatni sistem. Ispitivanje se vrši nad skupom od 6
dvodimenzionih tačaka. Zbog jednostavnosti posmatra se CW medijana i Tjukijeva (Tukey)
medijana (može bilo koja tačka). To je prikazano na slici 11. Odatle se vidi da i jedna i druga
medijana imaju pozicije koje im garantuju istu dubinu.
Slika 11: CW i poluprostorna medijana pre transformacije
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
11
Za parametre transformacije uzete su vrednosti,
� = �15 55 1
� � = �0.50.5
�
Nakon transformacije medijane su pomerene i originalni raspored tačaka je promenio
oblik. Kod CW medijane to je uticalo da se promeni njena dubina, dok je dubina Tjukijeve
medijane ostala ista. Prikaz toga je na slici 12. Osobina afine invarijantnosti dakle zadržava
iste dubine tačaka bez obzira na transforaciju. Ovo je veoma važno jer u statistici postoje
metode koje imaju za cilj da originalne podatke predstave u neki pogodniji oblik kako bi se
lakše procesirali. Ukoliko bi se tada dubine tačaka menjale, onda korišćena dubinska funkcija
ne bi bila verodostojna i dovela bi do pogrešnih rezultata.
Slika 12: CW i Tjukijeva medijana nakon transformacije
Trebalo bi uporediti i dubinske konture CW i Tjukijevih dubina. Prema teoriji, CW
dubinske konture su pravougaone i treba da sarže Tjukijeve konture. Algoritam za njihovo
nalaženje je mnogo jednostavniji i brži. Na slikama 13, 14 i 15 su prikazane konture oba tipa
za dubine 1, 2 i najveću dubinu 7, na podacima iz skupa nycrime.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
12
Slika 13: Konture dubine 1 - nycrime
Slika 14: Konture dubine 2 - nycrime
Slika 15: Konture dubine 7 - nycrime
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
13
2.4.Robusnost
Bitna osobina dubinskih funkcija pored onih pomenutih je i robusnost. Ovo ne spada u
kriterijum za odabir funkcije, jer svaka dubinska funkcija po svojoj prirodi je robusna. Po
definiciji, robusnost je osobina sistema da bude otporan na promene. U želji da se ceo set
podataka opiše nekim parametrom, kao što je npr. srednja vrednost, često dolazi do pogrešnih
zaključaka usled različitih raspodela tih podataka. Kao adekvatan primer može se uzeti
prosečna plata u zemlji koja se računa kako bi se procenio životni standard stanovništva.
Prosešna plata se računa kao srednja vrednost plata svih radnika. Ova plata u Srbiji iznosi oko
35.000 dinara na osnovu čega se da zaključiti da je životni standard poprilično dobar. Ipak,
ispostvlja se da velika većina stanovništva ima daleko niže plate od proseka, a da mali, ali ne i
zanemarljiv deo, ima ekstremno visoke. Srednja vrednost u ovom slučaju navodi na pogrešan
zaključak. Ako se pak umesto srednje vrednosti računa medijana, dobija se mnogo manja i
verodostojnija vrednost plate. Medijana daje mnogo preciznije rezultate baš zbog svoje
robusnosti. U literaturi se ovaj termin povezuje sa pojmom breakdown, koji znači najmanji
broj tačaka koje je moguće promeniti da bi medijana ostala ista. Kod poluprostorne medijane
breakdown iznosi najmanje �
���, a najviše 1/3 [5, Donoho and Gasko].
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
14
3. ABCDepth algoritam
Ovaj deo odnosi se na konkretnu implementaciju algoritma koji koristi prethodno
opisanu teoriju u R programskom jeziku. Biće detaljno opisan svaki korak algoritma i
objašnjeno kako je to realizovano u kodu. Jedan deo izlaganja je posvećen upoznavanju sa
osnovana R-a, kako bi se objasnile strukture koje su upotrebljene u programu.
3.1.R programski jezik
U računarstvu, R je programski jezik i programsko okruženje za statistička
izračunavanja i grafičko predstavljanje. R je interpreterski jezik, tako da se u njemu mnoge
stvari mogu odraditi veoma brzo bez suvišnog kompajliranja i linkovanja, što je poprilično
bitno u statistici.
R koristi interfejs komandne linije kroz više grafičkih korisničkih okruženja. Njegova
široka upotreba posledica je bogatog izbora gotovih biblioteka koje omogućavaju korišćenje
linearnih i nelinearnih modela, sprovođenje klasičnih statističkih testova, analizu vremenskih
serija, klasifikaciju, kao i mnoge grafičke funkcije za vizuelizaciju podataka. Takođe, R može
biti proširen od strane korisnika kroz pakete za specijalne namene. Ovaj jezik je takođe
optimizovan za rad sa matricama što je veoma značajna pogodnost. Sintaksa i semantika
jezika su dosta slični Matlab-u i Python-u, jezicima koji se isto mogu koristiti u obradi
podataka. Postoji nekoliko programskih okruženja koji olakšavaju rad u R-u. Za potrebe
implementacija u ovom radu korišćen je RStudio koji nudi tekstualni editor, komandnu liniju,
pregled promenljivih, pregled generisanih slika, instalaciju paketa. Na slici 16 je prikazano
ovo okruženje. Na početku rada potrebno je podesiti radni direktorijum pozivom funkcije
setwd() i prosleđivanjem željene putanje. Od paketa je korišćen ggplot2 koji je namenjen za
grafičko predstavljanje, dok je za izračunavanja i poređenja rezultata korišćen depth paket
koji nudi podršku u vidu gotovih funkcija za neke poznate tipove medijana i dubinskih
funkcija. Postoje još neki paketi koji se tiču dubinskih funkcija kao npr. ddalpha, ExPD2D,
WMTRegions ili rainbow. Ipak, oni se odnose na klasifikaciju ili koriste neke druge vrste
dubinskih funkcija tako da neće biti od interesa u ovom izlaganju. Paketi se instaliraju
odabirom opcije Packages->Install u prozoru za grafičko predstavljanje i instalaciju
paketa. U projekat se uključuju korišćenjem funkcije library().
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
Slika
Za razliku od nekih tradicionalnih jezika poput
po tome što ne postoji deklaracija tipa promenljive. Svaka promenljiva ima tip
se kreira pozivom odgovarajuće funkcije sa prosleđenim argumentima. Tip
Vektor – Najprostiji tip podataka koji ima 6 klasa u zavisnosti od tipa podatka koji
sadrži (Logical, Numeric, Integer, Complex, Character, Raw). Dobija se pozivom
funkcije c( ) koja prihvata konkretne vrednosti iz neke od ovih 6 klasa
Lista – Objekat koji sadrži različite tipove objekata poput vektora, funkcija ili drugih
lista. Kreira se pozivom funkcije
Matrica – Dvodimezioni niz podataka i takođe može sadržati elemente koji su iz
različitih klasa. Ovo je bitna razlika u odnosu na C programski jezik. Dobija se
pozivom funkcije matrix( )
i vrsta.
Niz – Za razliku od matrica koje su ograničene na dve, niz može imati više dimenzija.
Kreira se pozivom funkcije
dimenzija.
Faktor – Objekat koji nastaje koristeći vektore. U sebi sadrži vektor zajedno sa
različitim vrednostima iz vektora označenim kao labele. Formira se pozivom funkcije
factor( ) kojoj se kao argument prosleđuje vektor. Koristeći funkciju
se dobiti broj različitih vrednosti vektora, odnosno labela.
Tabela podataka (data f
podatke iste klase. Svaka kolona ima svoje ime, a pristupa joj se korišćenjem operanda
$. Dobija se pozivom funkcije
LIZE U ELEKTRONICI PREKO
Slika 16: RStudio programsko okruženje
Za razliku od nekih tradicionalnih jezika poput C-a, sintaksa i semantika
po tome što ne postoji deklaracija tipa promenljive. Svaka promenljiva ima tip
se kreira pozivom odgovarajuće funkcije sa prosleđenim argumentima. Tip
Najprostiji tip podataka koji ima 6 klasa u zavisnosti od tipa podatka koji
sadrži (Logical, Numeric, Integer, Complex, Character, Raw). Dobija se pozivom
koja prihvata konkretne vrednosti iz neke od ovih 6 klasa
Objekat koji sadrži različite tipove objekata poput vektora, funkcija ili drugih
lista. Kreira se pozivom funkcije list( ) sa prosleđenim argumentima.
Dvodimezioni niz podataka i takođe može sadržati elemente koji su iz
. Ovo je bitna razlika u odnosu na C programski jezik. Dobija se
matrix( ) kojoj se kao argumenti prosleđuju podaci, ali i broj kolona
Za razliku od matrica koje su ograničene na dve, niz može imati više dimenzija.
Kreira se pozivom funkcije array( ) čiji su argumenti podaci, i veličina svake od
Objekat koji nastaje koristeći vektore. U sebi sadrži vektor zajedno sa
različitim vrednostima iz vektora označenim kao labele. Formira se pozivom funkcije
kojoj se kao argument prosleđuje vektor. Koristeći funkciju
se dobiti broj različitih vrednosti vektora, odnosno labela.
data frame) – Tabelarni objekat u kome svaka kolona sadrži
podatke iste klase. Svaka kolona ima svoje ime, a pristupa joj se korišćenjem operanda
. Dobija se pozivom funkcije data.frame( ).
SRĐAN JOVANOVIĆ
15
a, sintaksa i semantika R-a se razlikuje
po tome što ne postoji deklaracija tipa promenljive. Svaka promenljiva ima tip R-objekta koji
se kreira pozivom odgovarajuće funkcije sa prosleđenim argumentima. Tipovi koji postoje su:
Najprostiji tip podataka koji ima 6 klasa u zavisnosti od tipa podatka koji
sadrži (Logical, Numeric, Integer, Complex, Character, Raw). Dobija se pozivom
koja prihvata konkretne vrednosti iz neke od ovih 6 klasa.
Objekat koji sadrži različite tipove objekata poput vektora, funkcija ili drugih
sa prosleđenim argumentima.
Dvodimezioni niz podataka i takođe može sadržati elemente koji su iz
. Ovo je bitna razlika u odnosu na C programski jezik. Dobija se
kojoj se kao argumenti prosleđuju podaci, ali i broj kolona
Za razliku od matrica koje su ograničene na dve, niz može imati više dimenzija.
čiji su argumenti podaci, i veličina svake od
Objekat koji nastaje koristeći vektore. U sebi sadrži vektor zajedno sa
različitim vrednostima iz vektora označenim kao labele. Formira se pozivom funkcije
kojoj se kao argument prosleđuje vektor. Koristeći funkciju nlevels( ) može
Tabelarni objekat u kome svaka kolona sadrži
podatke iste klase. Svaka kolona ima svoje ime, a pristupa joj se korišćenjem operanda
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
Za potrebe realizacije narednih
jeziku poput for i while petlji,
jezikom tako da nema potrebe dodatno ih objašnjavati.
3.2.ABCDepth algoritam za računanje
Svi dosad poznati algoritmi za računanje dubine višedimenzio
veoma veliku složenost i sa povećanjem broja dimenzija
izuzetno sporo i računarski neprihvatljivo.
ukoliko je potrebno izvršiti neku obradu u smislenom vremenu.
kompleksnost raste linearno sa broj
algoritama za računanje dubina tačaka
redosled i pseudo-kod prikazan je na slici
Slika 17: Pseudo-kod
LIZE U ELEKTRONICI PREKO
narednih algoritama koristiće se svi pomenuti tipovi
petlji, if/else uslova, definisanja funkcija prilično su slični sa
jezikom tako da nema potrebe dodatno ih objašnjavati.
ABCDepth algoritam za računanje Tjukijevih dubin
algoritmi za računanje dubine višedimenzionalnih
i sa povećanjem broja dimenzija njihovo izračunavanje
izuzetno sporo i računarski neprihvatljivo. Postojanje efikasnog algoritma je veoma bitno
no izvršiti neku obradu u smislenom vremenu. ABCDepth
sa brojem dimenzija što ga čini efikasnijim od drugih predloženih
algoritama za računanje dubina tačaka za � > 2. Sam algoritam se sastoji iz 3 faze
kod prikazan je na slici 17.
kod ABCDepth algoritma za računanje dubine tačaka
SRĐAN JOVANOVIĆ
16
ipovi. Ostale strukture u
uslova, definisanja funkcija prilično su slični sa C
dubina tačaka
nalnih podataka imaju
njihovo izračunavanje postaje
Postojanje efikasnog algoritma je veoma bitno
ABCDepth je algoritam čija
em dimenzija što ga čini efikasnijim od drugih predloženih
algoritam se sastoji iz 3 faze, a njihov
algoritma za računanje dubine tačaka
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
Faza 1: Računanje rastojanja između tačaka
Na početku algoritma potrebno je sračunati euklidsko rastojanje između svake
tačke, obzirom da su kugle određene svojim centrom i sadrže
Pošto su tačke d – dimenzionalne u C
kroz svaku koordinatu i na taj način sračunala rastojanje između dve tačke
�(�). U R-u, međutim, računanje ovog rastojanja se svodi na skalarni p
tačke i to se vrlo jednostavno i brzo izvršava(složenost
matrici dimenzija � × �, tako da
matrica je simetrična u odnosu na dijagonalu.
calculateDistances() koja prima podatak tipa
Faza 2: Sortiranje tačaka i formiranje struktura lopti
U drugoj fazi se svaka tačka iz matrice transformiše u strukturu
ne bi izgubila informacija o sv
slici 18. Ona sadrži polja point
rastojanje od tačke u čijem redu u matrici se nalazi. Nakon toga, tačke iz svakog reda matrice
se sortiraju prema rastojanju i formira se nova struktura
Objekat popTup[i] ima polja
sorted_points koje je zapravo niz od
za svaku tačku, ove strukture se smeštaju u listu
populateTuples(). Na slikama
LIZE U ELEKTRONICI PREKO
Računanje rastojanja između tačaka
Na početku algoritma potrebno je sračunati euklidsko rastojanje između svake
, obzirom da su kugle određene svojim centrom i sadrže ⌊� − � +
dimenzionalne u C-u bi npr. bila potrebna jedna for petlja koja bi pro
kroz svaku koordinatu i na taj način sračunala rastojanje između dve tačke
računanje ovog rastojanja se svodi na skalarni proizvod
i to se vrlo jednostavno i brzo izvršava(složenost �(1)). Rastojanja se smeštaju u
, tako da ��� predstavlja distancu između i-te i j-te tačke
matrica je simetrična u odnosu na dijagonalu. Za ovaj deo algoritma koristi se funkcija
koja prima podatak tipa data frame ili matricu dimenzija
ka i formiranje struktura lopti
U drugoj fazi se svaka tačka iz matrice transformiše u strukturu distanceTuple
ne bi izgubila informacija o svakoj tački i njenim rastojanjima. Ova struktura prikazana je na
point koje se odnosi na tačku i polje distance koje označava njeno
rastojanje od tačke u čijem redu u matrici se nalazi. Nakon toga, tačke iz svakog reda matrice
se sortiraju prema rastojanju i formira se nova struktura popTup[i], gde je
ima polja ref_point označavajući tačku na koju se odnosi i polje
koje je zapravo niz od n-1 struktura tipa distanceTuple. Nakon što se formiraju
za svaku tačku, ove strukture se smeštaju u listu popTuple. Za ovu svrhu koristi se funkcija
Na slikama 20 i 21 su prikazane strukture popTuple[i] i popTuple
Slika 18: Struktura distanceTuple
SRĐAN JOVANOVIĆ
17
Na početku algoritma potrebno je sračunati euklidsko rastojanje između svake dve
1⌋ najbližih tačaka.
u bi npr. bila potrebna jedna for petlja koja bi prolazila
kroz svaku koordinatu i na taj način sračunala rastojanje između dve tačke sa zavisnošću
roizvod razlike dve
Rastojanja se smeštaju u
te tačke skupa. Ova
Za ovaj deo algoritma koristi se funkcija
ili matricu dimenzija � × �.
distanceTuple, kako se
struktura prikazana je na
koje označava njeno
rastojanje od tačke u čijem redu u matrici se nalazi. Nakon toga, tačke iz svakog reda matrice
gde je i redni broj tačke.
vajući tačku na koju se odnosi i polje
Nakon što se formiraju
Za ovu svrhu koristi se funkcija
i popTuple.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
Faza 3: Formiranje preseka lopti i traženje dubine tačke
U poslednjoj fazi vrši se iterativno presek lopti sve dok se ne zadovolje određeni
uslovi. U svakoj iteraciji povećava se parametar
posmatra, dok se presek kugli
iteraciji pripada, a da u iteraciji
slučaju da se dođe do kraja iteracije, a da tačka i dalje pripada preseku, njena dubina je
Ovde je bitno napomenuti još jednu veoma bitnu operaciju koja se izvršava nad skupom
LIZE U ELEKTRONICI PREKO
Slika 19: Struktura popTuple[i]
Slika 20: Struktura popTuple
preseka lopti i traženje dubine tačke
U poslednjoj fazi vrši se iterativno presek lopti sve dok se ne zadovolje određeni
uslovi. U svakoj iteraciji povećava se parametar � za 1. Ovako se povećava dubina koja se
dok se presek kugli smanjuje ili ostaje isti. Ukoliko se dogodi da tačka u
iteraciji pripada, a da u iteraciji k+1 ne pripada preseku kugli, to znači da je njena dubina
slučaju da se dođe do kraja iteracije, a da tačka i dalje pripada preseku, njena dubina je
Ovde je bitno napomenuti još jednu veoma bitnu operaciju koja se izvršava nad skupom
SRĐAN JOVANOVIĆ
18
U poslednjoj fazi vrši se iterativno presek lopti sve dok se ne zadovolje određeni
Ovako se povećava dubina koja se
Ukoliko se dogodi da tačka u k-toj
ne pripada preseku kugli, to znači da je njena dubina k. U
slučaju da se dođe do kraja iteracije, a da tačka i dalje pripada preseku, njena dubina je n.
Ovde je bitno napomenuti još jednu veoma bitnu operaciju koja se izvršava nad skupom
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
19
tačaka. Kako se čitav koncept poluprostornih funkcija dubina zasniva na nalaženju preseka
kugli (poluprostora), u praksi se može desiti da se za određenu dobinu dobije prazan skup,
odnosno da kugle nemaju zajedničkih tačaka. To znači da ne bi bilo moguće da se procene
najdublje tačke (ili medijana) nekog skupa. Zbog toga se uvode dodatne veštačke tačke koje
generiše generator slučajnih brojeva, a koje imaju uniformnu raspodelu u opsegu u kom se
nalaze tačke iz skupa. Ovo pomaže da se “osvetle“ (prepoznaju) regioni koji su dublji od
najdublje tačke iz originalnog skupa. Iz tog razloga se u zavisnosti od potrebe na početku
algoritma opciono mogu dodati nove tačke na originalni skup. Novi skup sada ima ukupno N
tačaka (� > �).
Realizovana funkcija zadužena za pronalaženje preseka kugli naziva se getLevelSet().
Ova funkcija, u zavisnosti od zahtevanog broja originalnih tačaka koje treba da se nalaze u
kugli, prolazi kroz sve tačke i od svake uzima onoliki broj najbližih tačaka koji je dovoljan da
se u njemu nalazi zahtevani broj originalnih tačaka. Nakon svake tačke, koristeći ugrađenu
funkciju intersect(), vrši presek novih tačaka sa postojećim, kako bi se na kraju dobile
zajedničke tačke za sve kugle. Funkcija intersect() je veoma bitna jer u najvećoj meri utiče na
brzinu algoritma, obzirom da se poziva veliki broj puta.
Na slikama 21, 22, 23, 24, 25 i 26 su prikazane dubine tačaka za tri skupa podataka
(nycrime, single-aircraft_engine, animals_log) računate na originalnom skupu i na skupu
proširenim veštačkim tačkama.
Slika 21: Dubine tačaka računate na originalnom skupu tačaka ABCDepth algoritmom - nycrime
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
20
Slika 22: Dubine računate dodavanjem veštačkih tačaka ABCDepth algoritmom – nycrime
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
21
Slika 23: Dubine računate na originalnom skupu tačaka ABCDepth algoritmom - aircraft
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
22
Slika 24: Dubine računate dodavanjem veštačkih tačaka ABCDepth algoritmom - aircraft
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
23
Slika 25: Dubine računate na originalnom skupu tačaka ABCDepth algoritmom – animals_log
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
24
Slika 26: Dubine računate dodavanjem veštačkih tačaka ABCDepth algoritmom – animals_log
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
25
3.3.Aproksimacija ABCDepth algoritma
Ovaj algoritam smatra se aproksimativnim iz razloga što nije u potpunosti zadovoljena
definicija Tjukijeve dubine. Po definiciji, tačka određene dubine mora biti sadržana u preseku
beskonačnog broja poluprostora (kugli). Takva izračunavanja naravno nisu moguća u realnim
uslovima i zbog toga se račun vrši koristeći konačan broj kugli, tačnije, onoliko koliko ima
tačaka. Tu se nesumnjivo unosi određeni procenat greške. Da bi se ispitalo da li dodavanje
veštačkih tačaka poboljšava tačnost, treba uporediti dubine dobijene ABCDepth algoritmom
sa dubinama dobijenih pomoću funkcije depth iz R-paketa depth. Ova funkcija računa tačnu
dubinu tačke u dvodimenzionalnom prostoru. U tabeli 1 je prikazano procentualno poklapanje
rezultata sa tačnim vrednostima.
Skup Originalne tačke [%]
Veštačke tačke [%]
Nycrime 26.09 30.43
Single-airraft_engine 13.04 26.09
Animals_log 25.92 44.44
Tabela 1: Procentualno poklapanje dubina dobijenih ABCDepth algoritmom na originalnim i veštačkim tačkama
Iz tabele se može zaključiti da ABCDepth algoritam ne daje najbolje rezultate ukoliko
se koriste samo tačke iz originalnog skupa. Dodavanjem veštačkih tačaka, može se povećati
efikasnost. To se može objasniti time da se povećava broj kugli, koji teorijski treba da bude
beskonačan. U simulacijama je broj veštačkih tačaka bio 100 pre svega zbog sporog
izvršavanja u R-u. U nekom bržem jeziku trebalo bi pokrenuti simulacije sa ogromnim brojem
veštačkih tačaka (reda 1000) i rezultati bi trebalo da budu u velikoj meri slični egzaktnim
dubinama.
3.4.ABCDepth algoritam za računanje Tjukijeve medijane
Kako je za kasniju primenu u postupku klasifikacije u ovom radu neophodno
poznavanje medijane konkretnog višedimenzionalnog skupa, potrebno je predstaviti i
algoritam za njeno nalaženje. Postupak za nalaženje višedimenzionalne medijane ABCDepth
algoritmom u dobroj meri se oslanja na prethodni algoritam za nalaženje dubina. Postoje neke
izmene u 3. fazi algoritma, dok su 1. i 2. faza identične. Na slici je predstavljen pseudo-kod
samo 3. faze.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
Slika 27: Pseudo-kod 3. faze
U ovom koraku vrše se iteracije u kojima se svaki put uvećava vrednost parametra
za �
�. Ovim se smanjuje veličina lopti, odnosno broj tačaka u njima. U svakoj iteraciji nalazi se
presek svih kugli u zavisnosti od broja originalnih tačaka. Ukoliko se dogodi da broj tačaka u
preseku bude isti kao u prethodnoj iteraciji, zaustavlja se petlja jer
predstavljaju medijanu. Dobijanje preseka je u kodu realizovano funkcijom
Na slikama je prikazana medijana dobijena na ovaj način i medijana dobijena koršćenjem
egzaktne metode med() iz
ABCDepth algoritmom na originalnim tačkama,
veštačkih tačaka, HALFMED i
Slika 28: Poređenje medijana na skupu
LIZE U ELEKTRONICI PREKO
kod 3. faze ABCDepth algoritma za dobijanje medijane
U ovom koraku vrše se iteracije u kojima se svaki put uvećava vrednost parametra
Ovim se smanjuje veličina lopti, odnosno broj tačaka u njima. U svakoj iteraciji nalazi se
presek svih kugli u zavisnosti od broja originalnih tačaka. Ukoliko se dogodi da broj tačaka u
preseku bude isti kao u prethodnoj iteraciji, zaustavlja se petlja jer su pronađene tačke koje
Dobijanje preseka je u kodu realizovano funkcijom
Na slikama je prikazana medijana dobijena na ovaj način i medijana dobijena koršćenjem
iz R-depth paketa. Na slici su upoređene medijane dobijene
algoritmom na originalnim tačkama, ABCDepth algoritmom dodavanjem
i DEEPLOC medijana.
: Poređenje medijana na skupu animals_log
SRĐAN JOVANOVIĆ
26
algoritma za dobijanje medijane
U ovom koraku vrše se iteracije u kojima se svaki put uvećava vrednost parametra �
Ovim se smanjuje veličina lopti, odnosno broj tačaka u njima. U svakoj iteraciji nalazi se
presek svih kugli u zavisnosti od broja originalnih tačaka. Ukoliko se dogodi da broj tačaka u
su pronađene tačke koje
Dobijanje preseka je u kodu realizovano funkcijom getLevelSets().
Na slikama je prikazana medijana dobijena na ovaj način i medijana dobijena koršćenjem
Na slici su upoređene medijane dobijene
algoritmom dodavanjem
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
27
3.5.Složenost ABCDepth algoritma za nalaženje medijane
Opisani algoritam za nalaženje medijane ima složenost ��(� + �)�� + �� log �� .
Algoritamska složenost u ovom slučaju može se posmatrati iz dva ugla. U pogledu
dimenzionalnosti, dobija se linearna zavisnost od broja dimenzija, što je zapravo i najveća
prednost ovog algoritma. U samom algoritmu, uticaj dimenzionalnosti može se videti samo
kroz računanje distanci između tačaka. Tada se za svake dve tačke sračuna euklidsko
rastojanje (Eucledian distance). To se u R-u vrlo lako ostvaruje koristeći pogodnosti
matričnog množenja i skalarnog proizvoda koji ovaj jezik pruža. Ovaj korak zahteva neko
vreme za svoje izvršavanje, ali daleko manje od vremena koje je kasnije potrebno za
nalaženja preseka kugli. U slučaju zavisnosti od broja tačaka n, složenost je polinomijalna i
naročito je zahtevan deo koji se odnosi na računanje preseka lopti, obzirom da se tada
izvršava nekoliko ugnježdenih for petlji.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
4. Klasifikacija komponenata
4.1.Bagdistance postupak
Predstavljeni postupak
neizostavan deo narednog koraka u klasifikaciji,
Naime, pošto poznavanje dubine neke tačke ne nosi informaciju o udaljenosti te
centra skupa, bilo bi dobro pronaći meru kojom se to rastojanje predstavlja.
intuitivno shvatilo, mora se najpre sagledati slika. Na slici je plavom linijom
konturom) označen najdublji region (dubine 9) tačaka iz skupa
crvenom region koji sadrži tačke dubine veće od 2.
ABCDepth algoritmom sa veštačkim tačkama.
za outlier-e. Ovakav prikaz tačaka se u literaturi naziva
osobina posmatranog skupa, kao što su: centar skupa i prisustvo ili odsustvo
1 i 2 su očigledno outlier-i iste dubine
bilo zgodno imati meru kojom se uzima u obzir i centar skupa ali i disperzija ovih tačaka.
Jedan od načina na koji se mera rastojanja može definisati je
Mera rastojanja, bagdistance
datog skupa i euklidskog rastojanja tačke
spaja � i � i konture određene dubine. To se može zapisati kao,
��(�; ��) = � 0 ‖� − �
LIZE U ELEKTRONICI PREKO
komponenata
postupak
Predstavljeni postupak u odeljku 3.4 za nalaženje medijane je veoma
ostavan deo narednog koraka u klasifikaciji, a koji se zasniva na bagdistance
Naime, pošto poznavanje dubine neke tačke ne nosi informaciju o udaljenosti te
centra skupa, bilo bi dobro pronaći meru kojom se to rastojanje predstavlja.
, mora se najpre sagledati slika. Na slici je plavom linijom
najdublji region (dubine 9) tačaka iz skupa single
crvenom region koji sadrži tačke dubine veće od 2. Zvezdicom je označena medijana dobijena
algoritmom sa veštačkim tačkama. Tačke koje se nalaze izvan kontura smatraju se
Ovakav prikaz tačaka se u literaturi naziva bagplot i on prikazuje nekoliko
skupa, kao što su: centar skupa i prisustvo ili odsustvo
i iste dubine iako su na različitim rastojanjima od centra
bilo zgodno imati meru kojom se uzima u obzir i centar skupa ali i disperzija ovih tačaka.
Jedan od načina na koji se mera rastojanja može definisati je bagdistance pristup.
bagdistance, je odnos euklidskog rastojanja tačke
datog skupa i euklidskog rastojanja tačke �� do medijane, gde je �� tačka preseka prave koja
i konture određene dubine. To se može zapisati kao,
, � = ��‖/‖�� − �‖ , � ≠ �
� , gde je �� disperzija u pravcu od
Slika
SRĐAN JOVANOVIĆ
28
za nalaženje medijane je veoma bitan jer je
bagdistance pristupu.
Naime, pošto poznavanje dubine neke tačke ne nosi informaciju o udaljenosti te tačke od
centra skupa, bilo bi dobro pronaći meru kojom se to rastojanje predstavlja. Da bi se to
, mora se najpre sagledati slika. Na slici je plavom linijom(dubinskom
single-engine_aircraft, a
Zvezdicom je označena medijana dobijena
Tačke koje se nalaze izvan kontura smatraju se
i on prikazuje nekoliko
skupa, kao što su: centar skupa i prisustvo ili odsustvo outlier-a. Tačke
iako su na različitim rastojanjima od centra. Stoga bi
bilo zgodno imati meru kojom se uzima u obzir i centar skupa ali i disperzija ovih tačaka.
pristup.
, je odnos euklidskog rastojanja tačke x do medijane �
tačka preseka prave koja
disperzija u pravcu od � ka �.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
29
Na slici su pomenuta rastojanja predstavljena zelenim, odnosno žutim, vektorom. Na osnovu
prethodne definicije mera udaljenosti tačke 1 iznosi 7.10, dok za tačku 2 koja je bliža centru
iznosi 0.96. Ono što je prednost bagdistance pristupa je afino-invarijantnost i to što se može
primeniti i na asimetrične skupove.
4.2. kNN klasifikator
kNN metod je jedan od najkorišćenijih u problemima klasifikacije i predikcije.
Dodeljivanje određene jedinke nekoj klasi osnovni je zadatak ovog metoda. Sam postupak
teče na sledeći način. Neka postoji k grupa (ovde se k uzima kao unapred poznato, dok se
nekad i ovaj parametar mora prvo odrediti) tačaka. Svaka tačka na osnovu nekih svojih
osobina pripada nekoj od klasa. Postavlja se pitanje: Kako odrediti kojoj grupi tačka pripada?
Na slici 29 je predstavljen ovaj problem.
Slika 29: Određivanje kojoj grupi tačka pripada
Potrebno je tačku označenu crnim trouglom svrstati u jednu od dve grupe. Da bi se to
uradilo, mora se najpre opisati nekakav kriterijum po kome će se dodela vršiti. Ovaj
kriterijum označava meru sličnosti tačke i određene klase. Obično se za kriterijum uzima
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
30
rastojanje tačke od srednje vrednosti grupe ili zbir kvadratnih rastojanja između tačke i tačaka
iz grupe. U ovom radu posmatra se pomenuto bagdistance rastojanje. Sračuna se bagdistance
vrednost za svaku od klasa i tačka se dodeljuje onoj klasi za koju je ta vrednost najmanja.
Odmah se da videti da je metod poprilično jednostavan, a da se kvalitet klasifikacije bazira na
dobro izabranoj funkciji za meru rastojanja. U narednom odeljku biće opisan konkretan
problem u elektronici gde se kNN klasifikator može koristiti.
4.3.Form Fit Functional Equivalents (FFFs)
Ovaj pojam odnosi se na pronalaženje alternativne komponente već ugrađenim
komponentama. Novi deo (komponenta) mora po svojim fizičkim i funkcionalnim svojstvima
da zadovoljava karakteristike onoga što zamenjuje. U elektronskoj industriji termin FFFs je
postao popularan naročito u samom postupku proizvodnje. Često se dešava da nestanu zalihe
neke komponente (npr. otpornik) i potrebno je brzo reagovati nalaženjem zamenske
komponente kako se proizvodnja ne bi prekidala duži vremenski period. Nekada je neka
komponenta zastarela i mora se menjati, pa se pribegava traženju komponente koja bi mogla
da je zameni. Form Fit Function pravila specificiraju koliko nova komponenta može da se
razlikuje od originalne, a da se još uvek zadrži željeno ponašanje. Dakle, nova komponenta
mora da zadovolji uslove u vidu: forme (Form) kao što su oblik, dimenzije itd., fizičku
interakciju sa ostalim delovima sistema i funkcionalnost. Ovaj radi bavi se nalaženjem
zamenske komponente na osnovu forme kod pasivnih elemenata (konkretno otpornika).
Različiti proizvođači nude različite dizajne otpornika u zavisnosti od tehnologije. Ipak,
svi oni se opisuju istim osobinama (otpornost, dimenzije, tolerancija, disipacija itd. ). Na
osnovu ovih svojstava otpornici se mogu svrstati u grupe. Težnja da za svaki dizajn (klasu)
postoje otpornici sa svim mogućim kombinacijama snage i otpornosti kako bi se povećala
proizvodnja, dovela je do toga da se u klasama koje su specijalizovane za npr. otpornike sa
malim snagama, pojavljuju i otpornici sa većim snagama. Ukoliko se posmatra raspodela
otpornika u ovim klasama, najveći deo je smešten u centralnom delu, što je i očekivano, dok
postoje i neke tačke koje se dosta izdvajaju od centra. To se može videti na slici na kojoj je
prikazana klasa otpornika za specijalne namene (Special Resistors). Za predstavljanje su
korišćene dve karakteristike (dimenzije) pri čemu je na jednoj osi otpornost, a na drugoj
snaga. Pošto je ova klasa otpornika namenjena generalno za male snage, očekivano je da po
y-osi tačke ne odstupaju mnogo jedna od druge. Ipak, kako u klasi postoje i otpornici sa većim
snagama (kojih je inače mali broj) odstupanje je primetno. Takve tačke su stoga outlier-i.
Klasifikacija pomoću bagdistance-a na bazi dubinskih funkcija ovde dobija na ogromnom
značaju, jer zbog svoje definicije, ove tačke ne ubraja u centar klase. Na ovaj način, mera
sličnosti novih tačaka koje treba klasifikovati ne zavisi od outlier-a već samo od medijane i
centralnih tačaka iz klase.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
31
Slika 30: Prisustvo outlier-a u klasi otpornika
Primena kNN metoda u klasifikaciji otpornika
Neke od grupa otpornika koje se razmatraju su: Surface Mount, Through Hole, Chasis
Mount, Resistor Networks. Podaci neophodni za klasifikaciju prikupljeni su sa sajta DigiKey
proizvođača. Oni su podeljeni u 4 klase, a iz svake klase 2/3 tačaka se koristi kao referentni
skup (train set) i 1/3 tačaka za testiranje uspešnosti(test set). Otpornici su predstavljeni kao
tačke u 5 dimenzija (otpornost, snaga, tolerancija, duzina, visina). U tabeli je prikazano kako
ovi podaci izgledaju. Svaka tačka ima svoj identifikator (SM, TH, CM, RN) koji označava
kojoj klasi pripada.
CLASS Resistance Tolerance Power Length Width TH 300 0.05 0.25 1.7 3.2 CM 22 0.05 50 50 28.96 CR 1000 0.05 0.063 1 0.5 RN 47000 0.02 0.3 20.27 2.49
Tabela 2: Prikaz tabele sa podacima o otpornicima
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
32
Radi provere uspešnosti ovog klasifikatora, računa se bagdistance rastojanje za svaku
tačku iz skupa za testiranje. Zatim se poredi prava pripadnost tačke nekoj klasi sa onom
dobijenom simulacijom i na osnovu toga se računa količnik uspešnih dodela sa ukupnim
brojem tačaka za testiranje. Za medijanu računatu ABCDepth algoritmom na originalnom
skupu tačaka, dobijena je uspešnost oko 80%, što je veoma dobar rezultat obzirom da nije
rađena nikakva normalizacija(skaliranje) podataka niti dodavanje tačaka. Korišćenjem
medijane dobijene dodavanjem veštačkih tačaka, uspešnost je povećana na 86%, što je i
razumljivo, jer je medijana preciznija. Korišćenjem originalne funkcije bagdistance iz paketa
mrfDepth uspešnost je 88%. Uspešnost ABCDepth algoritma može se povećati povećanjem
broja tačaka i nalaženjem preciznije medijane. Tada, međutim, broj tačaka mora biti veći od
1000, što bi veoma dugo trajalo u R-u.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
33
5. Zaključak Ideja ovog rada je bila da se kroz primenu u konkretnom problemu ispita jedna
popularna oblast u statistici. Prikazane su osobine funkcija dubina koje su veoma značajne, jer
omogućavaju robusnost, osetljivost na outlier-e i nezavisnost od linearne transformacije, što
je veoma korisno u analizi podataka. Opisan je algoritam koji radi sa višedimenzionalnim
podacima (reda većeg od 100) sa linearnom zavisnošću od dimenzije koji je jedinstven takve
vrste. Ovo omogućava da se rad nad ovakvim podacima proširi u mnogim poljima Big Data
analize, a naročito u domenu klasifikacije kao na primeru u radu. Na konkretnom primeru je
pokazano da bagdistance pristup sa poluprostornom medijanom daje poprilično dobre
rezultate, koji mogu i da se poboljšaju uvođenjem dodatnih tačaka i određivanjem preciznije
pozicije medijane.
Takođe, ovaj diplomski rad može poslužiti kao korisna literatura prilikom proširivanja
postojećih paketa za izračunavanje funkcija dubine u višedimenzionalnom prostoru. Ideja je
od samog početka bila da se temeljno objasni i sam programski jezik R, ali i da se kroz
implementaciju algoritma stvori dobra potpora za kasnije proširivanje i nadogradnju
postojećih paketa. Realizovane funkcije mogu se dodatno ubrzati implementacijom u C-u, a
zatim koršćenjem funkcija koje pokreću taj kod u R-u. To je jedno od poboljšanja koje je
realno moguće ostvariti.
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PREKO STATISTIĆKIH FUNKCIJA DUBINE
SRĐAN JOVANOVIĆ
34
6. Literatura [1] Milan Merkle. Jensen's inequality for multivariate medians. J. Math. Anal. Appl.,
370:258-269, 2010.
[2] Milica Bogićević and Milan Merkle, ABCDepth: efficient algorithm for Tukey depth,
arXiv 1603.05609v2
[3] Mia Hubert, Peter J. Rousseeuw and Pieter Segaert. Multivariate and functional
classification using depth and distance. Adv. Data Anal. Classif. (2016),
doi:10.1007/s11634-016- 0269-3
[4] C. G. Small. A survey of multidimensional medians. arXiv, 58:263-277, 1990.
[5] D. L. Donoho and M. Gasko. Breakdown properties of location estimates based on halfspace depth and projected outlyingness. Ann. Statist., 20:1803-1827, 1992.
[6] Dokumentacija za depth paket, dostupna na https://cran.r-project.org/web/packages
[7]Dokumentacija za mrfDepth paket, dostupna na https://cran.r-project.org/web/packages
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
7. Prilog: programski kodovi
U ovom delu dati su programski kodovi u
funkcionalnosti ABCDepth algoritma.
- calculateDistances()
- populateTuples()
LIZE U ELEKTRONICI PREKO
Prilog: programski kodovi
U ovom delu dati su programski kodovi u R-u kojim su implementirane
algoritma.
calculateDistances()
SRĐAN JOVANOVIĆ
35
u kojim su implementirane
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
- getLevelSet()
LIZE U ELEKTRONICI PREKO
SRĐAN JOVANOVIĆ
36
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
- getDepth()
LIZE U ELEKTRONICI PREKO
SRĐAN JOVANOVIĆ
37
PRIMENA BIG DATA ANALIZE U ELEKTRONICI PSTATISTIĆKIH FUNKCIJA DUBINE
- getLevelSets()
LIZE U ELEKTRONICI PREKO
SRĐAN JOVANOVIĆ
38