Skip to content

Margus Roo –

If you're inventing and pioneering, you have to be willing to be misunderstood for long periods of time

  • Cloudbreak Autoscale fix
  • Endast

Degree of Freedom?

Posted on September 17, 2013 - September 17, 2013 by margusja

Osad regressionivõrrandite tulemused on võrreldavad degree of freedom väljundiga. Mis imeloom see siis on ja kuidas teda käsitleda?

Näiteks kuidas käsitleda infot: 271  degrees of freedom ?

Hea on degree of freedom olemus esitleda läbi näite:

Me teame, et meie arvhulga 20,10, 50, x keskmine on 25. Saame tundmatu arvutada valemiga: (20 + 10 + 50 + x)/4 = 25, kus x=20

Kui meil oleks nüüd kaks tundmatut: 20,10, y, x, Valem oleks sellisel juhul: (20 + 10 + y + x)/4 = 25, kus y = 70 – x.

On näha, et y sõltub x suurusest. Antud juhul on Degree of Freedom 1

Kui meil on andmehulk 20, x, y, z tundmatutega ja valem: (20 + x + y + z)/4 = 25, kus y = (80 + x + z). Antud juhul on Degree of Freedom 2 ehk x ja z võivad varieeruda.

Ehk Degree of Freedom on tundmatute arv valemis, mis võivad varieeruda. Siit tulenevalt on ka selge, et mida rohkem tundmatuid võivad varieeruda, seda vähem me tulemust võime usaldada. Ehk mida väiksem on Degree of Freedom, seda rohkem tulemust võime usaldada.

 

Posted in Machine Learning

Arduino Uno based simple two engine robot can stop behind an obstacle

Posted on September 11, 2013 by margusja

Posted in Elektroonika

Kelly gümnaasiumi lõpupildid

Posted on September 10, 2013 - September 10, 2013 by margusja

Alles see oli…

Lasteaia_l_petamine

 

Ja nüüd siis selline lugu…
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021

Posted in Lapsed

SVM – Support Vector Machine

Posted on September 9, 2013 - September 11, 2013 by margusja

SVM (Support Vector Machine) püüab eristada n-dimensioonilises  ruumis sarnaseid gruppe üksteisest, eristades neid joontega.

Parim joon (hyperplane rohkem kui 2D ruumis) on selline, mis asub kõikidest eristatud gruppidest võimalikult kaugel. Allpool oleval joonisel on selleks “Optimal hyperplane” joon

 

Screen Shot 2013-09-09 at 9.35.58 AM

Screen Shot 2013-09-09 at 9.40.54 AMehk y = wx+b

w – weight vector (kaalu vektor)

b- bias

x – punkt treeningsetis, mis on lähim hyperplane’le ehk punkte teeningsetis , mis on lähim hyperplanele, kutsutakse Support Vectoriks (e canonical hyperplane).

Support vectoreid on kõige raskem klassifitseerida, kuna nad on nn decision linele kõige lähemal.

x on vektor.

Optimaalne hyperplane on esitletav väga paljudel Bo ja Bx kombinatsioonidena –Screen Shot 2013-09-09 at 9.46.42 AM

 

Nüüd leiame kauguse hyperplane (Bo, B) ja punkti x vahel – Screen Shot 2013-09-09 at 10.43.32 AM * Antud juhul võib käsitleda valemis olevat avaldist ||B|| = |B| eg abs(b) (For complex numbers, Norm[z] is Abs[z].)

Võtame näiteks lihtsa andmehulga lineaarselt eraldatava R^2 ruumis:

Grupp 1 (+1) on: {(3;1), (3; -1), (6;1), (6;-1)}

Grupp 2 (-1) on: {(1;0), (0;1), (0;-1), (-1;0)}

Screen Shot 2013-09-09 at 4.34.13 PM

On näha, et jaotus saab olla selgelt lineaarne ja support vektorid oleks antud juhul:

{s1=(1;0), s2=(3;1), s3=(3;-1)}

Valides bias (b) = 1 saame:

{s1’=(1;0;1), s2’=(3;1;1), s3’=(3;-1;1)}

Koostame võrrandisüsteemi:

a1*s1’*s1′ + a2*s2’*s1′ + a3*s3’*s1′ = -1  // tegu on -1 grupi (grupp 1) support vectoriga

a1*s1’*s2′ + a2*s2’*s2′ + a3*s3’*s2′ = +1 // tegu on +1 grupi (grupp 2) support vectoriga

a1*s1’*s3′ + a2*s2’*s3′ + a3*s3’*s3′ = +1 // tegu on +1 grupi (grupp2) support vectoriga

Teades s1′, s2′ ja s3′ saame:

a1*{1,0,1}*{1,0,1} + a2*{3,1,1}*{1,0.1}*a3*{3;-1;1}*{1,0,1} = -1

a1*{1,0,1}*{3;1;1} + a2*{3,1,1}*{3;1;1}*a3*{3;-1;1}*{3,1,1} = +1

a1*{1,0,1}*{3,-1,1} + a2*{3,1,1}*{3,-1.1}*a3*{3;-1;1}*{3,-1,1} = +1

Korrutame vektorid:

a1*2 + a2*4 + a3*4 = -1

a1*4 + a2*11 + a3*9 = +1

a1*4 + a2*9 + a3*11 = +1

…

a1=-3.5; a2=0.75; a3=0.75

w’ = a1*s1’1 + a2*s2′ + a3*s3′ = -3.5*{1;0;1} + 0.75*{3;1;1} + 0.75*{3;-1;1} = {-3.5;0;-3.5} + {2.25;0.75;0.75} + {2.25;-0.75;0.75} = {1;0;-2}

Kuna me laiendasime meie algseid vektoreid biase (1), siis vektori w’ kaks esimest elementi on w ja viimane element on b ehk y = {1;0}*x + -2 graafikuga:

Screen Shot 2013-09-09 at 5.20.25 PM, kus on nähe selgelt kolm (kollast) support vektorit ja neid eraldav arvutatud hyperplane.

Siiani tegelesime lineaarse probleemiga. Kujutame seekord, et meil on selline andmehulk:

Group 1 (+1) {(-2;-2), (2;2), (2;-2), (-2;-2)}

Group 2 (-1) {(-1;1), (1;1), (1;-1), (-1;-1)}

mida saab 2D kordinaatteljestikul esitleda nii:

Screen Shot 2013-09-09 at 9.46.11 PM

Mittelineaarse probleemi korral võib punktid anda teatud funktsiooni sisendiks, mis teisendab input space -> feature space

Screen Shot 2013-09-11 at 1.41.51 PM

 

Näeme, et tingimusele sqr(x1^2 + x2^2) > 2 vastavad punktid {(-2;-2), (2,2), (2,-2), (-2,-2)} , mis kuuluvad gruppi +1. Funktsioon tagastab meile uue andmehulga:

Group 1 (+1) {(2;2), (6;2), (6;6), (2;6)}

Group 2 (-1) {(-1;1), (1;1), (1;-1), (-1;-1)}

Kanneme andut punktid kordinaatteljestikule:

demo_svm_space_moved

 

Ja nüüd on antud andmehulka juba võimalik lineaarselt lahendada.

Võib kasutada ka tehnikat, mida kutsutakse Kernel Trick

Põhimõtteliselt anname input space ehk sisendandmetele juurde veel ühe mõõtme ja tekitame features space R^2 -> R^3

Screen Shot 2013-09-11 at 1.57.58 PM

tulemusena tekib R^3 andmehulk:

Group 1 (+1) {(-2;-2;1), (2;2;1), (2;-2;1), (-2;-2;1)}

Group 2 (-1) {(-1;1;-1), (1;1;-1), (1;-1;-1), (-1;-1;-1)}

, mis on lineaarse(te) support vektoritega eraldatav.

Visuaalselt oleks see nüüd esitletav:

Screen Shot 2013-09-10 at 2.38.54 PM, selgelt on nüüd eristatavad lineaarselt punased ja sinised punktid 3D ruumis.

SVM andmete ettevalmistamine:

  • Viia kõik tekstilised klassifikaatorid numbrilisele kujule
  • Scaling – aitab vältida olukorda, kus mõni atribuut domineerib teise üle.

Tuleb kindlasti eristada, mida otsitakse, kas regressioonimudelit või klassifitseerimist (SVM-Type:  C-classification)

 

Mida praktilist SVN annaks?

Oletame, et meil on hulk andmeid, mis iseloomustavad mingit objekti ja meil on iga objektiga seotud sündmus kujul 1 ja 0 e 1 tähendab, et sündmus toimus ja 0, et sündmus ei toimunud.

Kasutades SVN abi, saame näiteks alloleval pildil oleva info, mis kirjeldab:

event – reaalselt toimunud sündmus treeningandmetes; y – ennustatud event SVN poolt; 0 – sündmuse mittetoimumise tõenäosus; 1 – sündmuse toimumise tõenäosus

Screen Shot 2013-09-10 at 1.42.11 PM

Posted in Machine LearningTagged support vector machine, svm

Marek sai kahe aastaseks

Posted on September 3, 2013 - September 3, 2013 by margusja

Siin on paar pildikest

Marek ühe kuune

IMG_1554x

 

Natuke läks aega ja kutt sai juba kaks

P1010129P1010126P1010133 P1010139

Palju õnne Marek!!!

 

Posted in Lapsed

Tulen ise poodi järele

Posted on September 2, 2013 - September 2, 2013 by margusja

Screen Shot 2013-09-02 at 2.32.58 PM

Posted in Fun

Logistic Regression

Posted on August 29, 2013 - August 29, 2013 by margusja

Logistiline regressioon on üks binaarse tunnuse analüüsimeetod, mis prognoosib uuritava sündmuse toimumise tõenäosust ja selle muutumist sõltuvalt pideva argumenttunnuse väärtuse muutumisest

Logistiline regressioon arvutab binaarse tulemuse tõenäosuse ühe või mitme numbrilise ja/või diskreetse faktori põhjal. Lineaarset regressiooni ei saa kasutada binaarse tulemuse tõenäosuse arvutamiseks, kuna tõenäosus ei oleks 0 ja 1 vahel, aga logistiline regressioon tagab, et uuritava sündmuse tõenäosus jääb alati vahemiku 0 kuni 1.

LogReg_1

Põhivalem: Screen Shot 2013-08-29 at 2.00.02 PM

 

Konstant b0 liigutab logistilise regressioonigraafiku kõverat vasakule ja paremale.

Näiteks lineaarfunktsioon y=-0.1+0.2*x, mille graafik on:

Screen Shot 2013-08-29 at 4.50.19 PM

 

funktsioon 1/(1+e^-(1-0.3*x)) argumendiga b0 = 1, annab graafiku:

Screen Shot 2013-08-29 at 7.30.04 PM

 

Muutes b0 = 10, annab funktsioon 1/(1+e^-(10-0.3*x)) graafiku:

Screen Shot 2013-08-29 at 7.34.00 PM

Muudame konstanti b0 – 0.1 -> 0.3, saame lineaarfunktsiooni y=-0.3+0.2*x, mille graafik on:

Screen Shot 2013-08-29 at 4.52.43 PM

Konstant b1…bn mõjutab logistilise regressioonigraafiku kõvera nurka.

funktsioon 1/(1+e^-(10-0.6*x)), kus b1=0.6 graafik on:

Screen Shot 2013-08-29 at 5.49.45 PM

funktsioon 1/(1+e^-(10-0.3*x)), kus b1=0.3 graafik on:

Screen Shot 2013-08-29 at 5.51.17 PM

Nagu eelnevalt mainisin, saab logistiline regressioon hakkama suurema hulga parameetritega: Screen Shot 2013-08-29 at 2.02.07 PM

 

Kindlasti tuleb toonitada, et arvutustulemus annab sündmuse toimumise tõenäosuse, mitte tõenäosus reaalse väärtuse suhtes!

Näiteks andmehulk, kus esimesel kohal on sõltumatu muutuja ja teisel kohal sõltuv muutuja:

X1,Y
18,1
19,1
20,0
20,1
20,1
21,1
25,1
26,0
28,1
32,0
35,0
37,1
37,0
37,0
38,0
40,0
45,0

annab sündmuse toimumise tõenäosused:

X1 Y Calc Prob
18.0000 1 0.8825
19.0000 1 0.8602
20.0000 0 0.8344
20.0000 1 0.8344
20.0000 1 0.8344
21.0000 1 0.8049
25.0000 1 0.6500
26.0000 0 0.6034
28.0000 1 0.5051
32.0000 0 0.3148
35.0000 0 0.2015
37.0000 1 0.1448
37.0000 0 0.1448
37.0000 0 0.1448
38.0000 0 0.1218
40.0000 0 0.0851
45.0000 0 0.0332

Selgelt on näha, et vanuse kasvades, tõenäosus saada Y=1 väheneb.

Kanname andmed X/Y koordinaatteljestikule

Screen Shot 2013-08-29 at 7.53.19 PM

 

Proovime ise ka proovimeetodiga leida b0 ja b1 argumente funktsioonile 1/(1+e^-(b0+b1*x))

Katsetame b0 = 0.1 ja b1 = 0.1. Saame graafiku:

Screen Shot 2013-08-29 at 8.05.26 PM

 

Antud juhul on kenasti näha, et valitud parameetrid b0 ja b1 ei toimi ja funktsioon ei iseloomusta sõltuvat muutujat peale sõltuva muutuja kasvamist üle 32.

Proovime b0 = 5 ja b1 = -0.2, tulemus on juba reaalsem.

Screen Shot 2013-08-29 at 8.24.38 PM

 

Proovime b0 = 10, b1 = -04, nende parameetrityega oleks tarvis graafikut natukene paremale liigutada.

Screen Shot 2013-08-29 at 8.38.54 PM

 

Nagu ma ülal mainisin, saab graafikut paremale ja vasakule liigutada b0 argumendiga.

Valime b0 = 13 ja b1 = -0.4, sest graafiku nn kumerus sobis meile eelmisel katsel. Tulemus on juba ideaalilähedane.

Screen Shot 2013-08-29 at 8.53.16 PM

 

Loomulikult ei tule igapäevases toimimises niimoodi proovimeetodiga kordajaid otsida, samas on ülaltoodu hea selgitus kuidas logistiline regressioon toimib.

Posted in Machine Learning

Decision Tree #2

Posted on August 27, 2013 by margusja

Oletame, et meil on mingi kogus informatsiooni ja me soovime tuletada reegleid, kuidas mingi tulemus on tekkinud ehk luua decision tree, nagu alloleval joonisel

Screen Shot 2013-08-27 at 7.00.22 PMArvutame nn “Target” entroopia . Target jaguneb 5 X No ja 9 X Yes. Kokku on 14 kirjet. 5/14 ümardame ja saame 0.36. 9/14 ümardame ja saame 0.64.

Entroopia valem on Screen Shot 2013-08-27 at 7.10.18 PM

Meie puhul tuleb arvutus: Screen Shot 2013-08-27 at 7.14.54 PM

Nüüd otsime, millieses tulbas on kõige rohkem informatsiooni:

Screen Shot 2013-08-27 at 7.18.53 PM , kus T on target ja X on tulp.

Meil on neli tulpa: Outlook, Temp, Humidity ja Windy.

Outlook arvutamine:

Screen Shot 2013-08-27 at 7.33.53 PM

Kasutame valemit:

Screen Shot 2013-08-27 at 7.40.07 PM

ehk:

Screen Shot 2013-08-27 at 7.37.22 PM

Screen Shot 2013-08-27 at 7.50.07 PMScreen Shot 2013-08-27 at 7.18.53 PM

0.94-0.69=0.25

Temp arvutamine:

Screen Shot 2013-08-27 at 7.55.31 PM

Screen Shot 2013-08-27 at 8.03.22 PM

 

Humidity arvutamine:

Screen Shot 2013-08-27 at 8.14.11 PM

 

Windy arvutamine:

Screen Shot 2013-08-27 at 8.18.45 PM

 

Selgus, et kõige rohkem informatsiooni sisaldab tulp outlook – 0.25. Siit saame joonistada välja esimesed harud:

Screen Shot 2013-08-27 at 8.25.15 PM

 

Kuna Outlook -> Overcast target on igal juhil Yes, siis joonistub siit nn leht:

Screen Shot 2013-08-27 at 8.29.18 PM

 

Siit edasi tuleb harud, mis sisaldavad entroopiat (suuremat, kui 0) edasi harutada Outlook > Sunny, saame info:

Screen Shot 2013-08-27 at 9.02.05 PM

 

Kõik hakkab otsast peale. Arvutame target tulba entroopia:

Screen Shot 2013-08-27 at 9.09.54 PM

 

Windy annab kahtlemata lehed Yes/No:

Screen Shot 2013-08-27 at 9.29.25 PM

Tulemus:

Screen Shot 2013-08-27 at 9.35.04 PM

 

Nüüd on jäänud haru Outlook > Rainy, mis sisaldab informatsiooni:

Screen Shot 2013-08-27 at 9.42.08 PM

 

Siin võib kasutada juba visuaalset analüüsi:

Screen Shot 2013-08-27 at 9.45.03 PM

 

Siit saame viimased lehed:

Screen Shot 2013-08-27 at 9.46.30 PM

 

Decision tree meetodit on samuti pseodokeeles hea esitleda:

Screen Shot 2013-08-27 at 9.47.56 PM

Posted in Machine Learning

Decision Tree Part 1

Posted on August 15, 2013 - August 15, 2013 by margusja

Kujutame ette, et me peame valima kas avada ehitus- või elektroonikaäri. Teame, et valides ehitusäri oleks kasum 100 EUR ja valides elektroonikaäri kasuks, oleks kasum 90 EUR. Valik ei ole raske, loomulikult valiksime ehitusäri. Miks? Sest kasum on suurem.

Screen Shot 2013-08-15 at 7.47.56 PM

Teeme asja natukene keerulisemaks.

Valides Ehitusäri, siis on õnnestumise võimalus 50% ja ebaõnnestumise võimalus samuti 50%. Kusjuures õnnestumise puhul on kasum 100 EUR ja ebaõnnestumise puhul kahjum -30 EUR.

Valides Elektroonikaäri, siis õnnestumise võimalus on samuti 50% ja ebaõnnestumise võimalus on 50%. Õnnestumise puhul on kasum 90 EUR ja ebaõnnestumise puhul kahjum -10 EUR.

Screen Shot 2013-08-15 at 7.55.23 PM

 

Mõistlik valik oleks elektroonikaäri, sest siin on kasum võrreldes elektroonikaäriga natukene vähem, aga kahjum on samuti väiksem oluliselt, seega kogu risk väiksem.

Vaatleme ka seda otsust matemaatiliselt.

Screen Shot 2013-08-15 at 8.00.35 PM

 

On näha, et eeltoodud muutujate korral, valides elektroonikaäri, siis on EELDATAV kasum 40 EUR. Eeldatava kasumi all peetakse silmas seda, et kui samade tingimuste korral teha ülaltoodud valikuid, siis paljude-paljude proovimiste korral on keskmine kasum, valides elektroonikaäri, 40 EUR.

Posted in Machine Learning

Kristel HART 2013-08-06

Posted on August 8, 2013 by margusja

Posted in Langevarjundus

Posts navigation

Older posts
Newer posts

The Master

Categories

  • Apache
  • Apple
  • Assembler
  • Audi
  • BigData
  • BMW
  • C
  • Elektroonika
  • Fun
  • Hadoop
  • help
  • Infotehnoloogia koolis
  • IOT
  • IT
  • IT eetilised
  • Java
  • Langevarjundus
  • Lapsed
  • lastekodu
  • Linux
  • M-401
  • Mac
  • Machine Learning
  • Matemaatika
  • Math
  • MSP430
  • Muusika
  • neo4j
  • openCL
  • Õpetaja identiteet ja tegevusvõimekus
  • oracle
  • PHP
  • PostgreSql
  • ProM
  • R
  • Turvalisus
  • Varia
  • Windows
Proudly powered by WordPress | Theme: micro, developed by DevriX.