Diff for ''
| Deletions are marked like this. | Additions are marked like this. |
| Line 1: | Line 1: |
| {{Předmět|Dobývání znalostí|Doc. RNDr. Mrázová Iveta, CSc.|NDBI023}} ## Požadavky 12/13 ## * výsledná známka = 40% body ze zkoušky, 20% body z dvou písemek, 40% body z úkolů ze cvičení a projektu (včetně bodů ze cvičení, všechny úkoly jsou povinné) * vypracovat projekt * celkem je potreba splnit aspon 56% * terminy v září budou jeden až dva ## Zdroje k předmětu ## * [Stránky předmětu](http://ksvi.mff.cuni.cz/%7Emraz/datamining/index.html) * <NDBI023%20Shrnutí> * [Wikipedia:Datamining](Wikipedia:Datamining) * [Statistics Tutorials](http://home.okstate.edu/homepages.nsf/toc/onlinetutorialsstatistics) * [How to choose a statistical test](http://www.graphpad.com/www/book/choose.htm) * [Statistical Data Mining Tutorials](http://www.autonlab.org/tutorials/) * [Data mining in Matlab](http://matlabdatamining.blogspot.cz/) ### Fisherův test ### * http://en.wikipedia.org/wiki/Fisher%27s_exact_test#Example - odvození, příklad jednostranného * http://oldweb.izip.cz/ds3/hypertext/JZAAA.htm - příklad česky * http://www.quantpsy.org/fisher/fisher.htm - hezké vysvětlení jednostranných a oboustranných testů, kalkulačka * http://graphpad.com/quickcalcs/contingency2/ - ještě jedna kalkulačka pro kontrolu :) * http://www.stahroun.me.cz/interstat/kategorialni/asociace/fisher/index.htm - spousta zdrojů ### chi-kvadrát test ### * http://mathhelpforum.com/advanced-statistics/44800-two-tailed-chi-squared-tests.html - trošku světla na oboustranné testy * http://stats.stackexchange.com/questions/22347/chi-squared-always-a-one-sided-test - a jeste jednou oboustranné testy * http://itl.nist.gov/div898/handbook/eda/section3/eda3674.htm - tabulky ## Písemky ## [NDBI023_Písemky](NDBI023_Písemky) ## Příklady ze cvičení ## ### Algoritmus TDIDT/ID3 ### * http://ksvi.mff.cuni.cz/~mraz/datamining/Cvicenie_DT.pdf Zvol jeden atribut jako kořen podstromu #### Kořen #### ##### Vitamín ##### * B (2+, 3-) $-\frac{n_+(Vit(B))}{n(Vit(B))}.log_2\frac {n_+(Vit(B))}{n(Vit(B))} - \frac{n_-(Vit(B))}{n(Vit(B))}.log_2\frac {n_-(Vit(B))}{n(Vit(B))} = - \frac{2}{5}.log_2\frac {2}{5} - \frac{3}{5}.log_2\frac {3}{5} = 0.97$ * C (4+, 0-) $\dots = 0.0$ (z "definície"...) * D (3+, 2-) $\dots = 0.97$ Entropia: $H(Vit) = \frac{0.971*5 + 0*4 + 0.971*5}{14} = 0.6936$ (vážený priemer) ##### Velikost rodiny ##### * veľká (2+, 2-) $-\frac{n_+(Rodina(velka))}{m(Rodina(velka))}.log_2\frac {n_+(Rodina(velka))}{n(Rodina(velka))} - \frac{n_-(Rodina(velka))}{n(Rodina(velka))}.log_2\frac {n_-(Rodina(velka))}{n(Rodina(velka))} = 1$ * stredná (4+, 2-) $\dots = 0.9183$ * malá (3+, 1-) $\dots = 0.8113$ Entropia: $H(Rodina)=0.9111$ ##### Cvičil ##### * pravidelně (3+, 4-) $\dots = - \frac{3}{7}.log_2\frac {3}{7} - \frac{4}{7}.log_2\frac {4}{7} = 0.985$ * málo (6+, 1-) $\dots = - \frac{6}{7}.log_2\frac {6}{7} - \frac{1}{7}.log_2\frac {1}{7} = 0.592$ Entropia: $H(Cvicil) = \frac{0.985*7 + 0.592*7}{14} = 0.7885$ ##### Bypass ##### Entropia: $H(Bypass)=0.8922$ ... budeme teda pokračovať podľa atribútu Vitamín (najmenšia entropia). Množinu rozdelíme na 3 skupiny (B,C,D). C-čko všetci prežili, máme dve skupiny pre Bcomplex a D - spočítame znovu strednú entropiu (aby sme vedeli, podľa čoho ďalej štiepiť). #### B #### vyberieme riadky s Bcomplex a robíme to isté :) ##### Velikost rodiny ##### * veľká (0, 2-) $\dots = 0$ (z "definice"...) * stredná (1+, 1-) $\dots = 1$ * malá (1+, 0) $\dots = 0$ (z "definice"...) Entropia: $H(Rodina) = \frac{0*2 + 1*2 + 0*1}{5} = 0.4$ ##### Cvicil ##### $H(Cvicil)=0$ ##### Bypass ##### $H(Bypass)=0.9183$ #### C #### ...je jasné, tam nik nezomrel... :) #### D #### $H(Rodina)=0.9183$ $H(Cvicil)=0.9183$ $H(Bypass)=0$ ...ďalej sa teda bude štiepiť v Bčku podľa "Cvicil" a v Dčku podľa "Bypass" Vitamin / | \ B/ C| \D Cviceni + Bypassprav./ m.| a| n\ - + - + ### Perceptron ### * uloha: naucit perceptron rozoznavat body v 2D na 2 skupiny... * popis perceptronu v matlabe: $p=\[ \begin{matrix} w_1 & w_2 & prah \end{matrix} ]$ * vyhodnoti sa potom... $x=\[\begin{matrix} x_1 & x_2 \end{matrix} ]$ => $perc_{recall} = w_1*x_1 + w_2*x_2 + prah*1$ * ...rozsireny vstupny vektor $x_1'=\[\begin{matrix} x_1 & x_2 & 1 \end{matrix} ]$ * $vystup=hardlim1(p*x_1')$ (hardlim1(<=0)=0; hardlim1(>0)=1) * inicializacia : $p=\[ \begin{matrix} 1 1 1 \end{matrix} ]$ * vstup: $A=\left\[ \begin{matrix} 1 & 1 & 2 & 3 \\ 1 & 3 & 2 & 1 \end{matrix} \right]$ * vystup (chceme): $ c = \[ \begin{matrix} 1 & 1 & 0 & 0 \end{matrix} ] $ * uciaca konstanta $a=0.2$ * ucenie prebieha takto: * vezme sa vzor, ak sedi, nic nerobime * ak najdeme chybu - pricitame/odcitame (pozadovany-skutocny vystup - napr. v priklade $y=hardlim1(p*AA); dif=c(3)-y(3)$) dany vektor k vaham... $(c(3)-y(3))*AA(:,3)$ * dostavam novy perceptron $p1=p+a*((c(3)-y(3))*AA(:,3))'$ * $y1=hardlim1(p1*AA) = \[ \begin{matrix} 1 & 1 & 1 & 1 \end{matrix} ]$ * to je zla matica (ma byt samozrejme \[1 1 0 0])- znovu zopakujeme postup... ****$ p1=\[ \begin{matrix} 0.6 & 0.6 & -0.2 \end{matrix} ] => y1=\[ \begin{matrix} 1 & 1 & 1 & 1 \end{matrix} ]$ ****$ p2=\[ \begin{matrix} 0 & 0.4 & -0.4 \end{matrix} ] => y2=\[ \begin{matrix} 0 & 1 & 1 & 0 \end{matrix} ]$ *****teraz budeme skusat prvy vektor (ktory je nespravny) ****$ p3=\[ \begin{matrix} 0.2 & 0.6 & -0.2 \end{matrix} ] => y2=\[ \begin{matrix} 1 & 1 & 1 & 1 \end{matrix} ]$ * ... N iteracii (N=?) [Category:Informatika](Category:Informatika) |