Diff for ''

Revision 37
Author:
black
Time:
2022-10-16 02:32
Revision 85
Time:
2024-09-18 21:04
Comment:
Automatizovaná konverze z MediaWiki do Markdownu
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
<div style="background-color: #CEF; border: 1px solid #8AF; padding: 5px 5px 5px 5px; margin: 5px 5%;">
<small>
'''[[Státnice_-_Informatika_-_I2:_Softwarové_systémy|Státnice -- Softwarové systémy]]'''<br/>
''Složitost a vyčíslitelnost'' -- [[Státnice - Metody tvorby algoritmů_I2|Tvorba algoritmů (10🎓)]], [[Státnice - NP-úplnost_I2|NP-úplnost (15🎓)]], [[Státnice - Aproximační algoritmy a schémata_I2|Aproximační algoritmy (6🎓)]], [[Státnice - Algoritmicky vyčíslitelné funkce_I2|Vyčíslitelné funkce a rekurzivní množiny (8🎓)]], [[Státnice - Algoritmicky nerozhodnutelné problémy_I2|Nerozhodnutelné problémy (9🎓)]], [[Státnice - Věty o rekurzi_I2|Věty o rekurzi (6🎓)]]<br/>
''Datové struktury'' -- [[Státnice - Stromové vyhledávací struktury_I2|Stromy (32🎓)]], [[Státnice - Hašování_I2|Hašování (13🎓)]], [[Státnice - Třídění_I2|Třídění (10🎓)]]<br/>
''Databázové systémy'' -- '''[[Formální základy databázové technologie|Formální základy]]''': [[Formální základy databázové technologie/Relace|Relace (12🎓)]], [[Formální základy databázové technologie/Datalog|Datalog (9🎓)]], [[Formální základy databázové technologie/Ostatni|Ostatní (0🎓)]] &nbsp; '''[[Databázové modely a jazyky|Modely a jazyky]]''': [[Databázové modely a jazyky/SQL|SQL (7🎓)]], [[Databázové modely a jazyky/DIS|DIS (7🎓)]], [[Databázové modely a jazyky/Odborne|Odborné (3)]] &nbsp; '''[[Implementace databázových systémů|Implementace]]''': [[Implementace databázových systémů/Transakce|Transakce (5🎓)]], [[Implementace databázových systémů/Indexace|Indexace (10🎓)]], [[Implementace databázových systémů/Komprese|Komprese (3)]]<br/>
''Softwarové inženýrství'' -- [[Programovací jazyky a překladače|Programovací jazyky a překladače]], [[Objektově orientované a komponentové systémy|Objektově orientované a komponentové systémy]], [[Analýza a návrh softwarových systémů|Analýza a návrh softwarových systémů]]<br/>
''Systémové architektury'' -- [[Operační systémy (státnice)|Operační systémy]], [[Distribuované systémy|Distribuované systémy]], [[Architektura počítačů a sítí|Architektura počítačů a sítí]]<br/>
''Počítačová grafika'' -- [[Geometrické modelování a výpočetní geometrie|Geometrické modelování a výpočetní geometrie]], [[Analýza a zpracování obrazu, počítačové vidění a robotika|Analýza a zpracování obrazu, počítačové vidění a robotika]], [[2D počítačová grafika, komprese obrazu a videa|2D počítačová grafika, komprese obrazu a videa]], [[Realistická syntéza obrazu, virtuální realita|Realistická syntéza obrazu, virtuální realita]]<br/>
<br>
🎓 - znamená kolikrát byla otázka u státnic
</small>
</div>
{{Předmět|Dobývání znalostí|Doc. RNDr. Mrázová Iveta, CSc.|NDBI023}}
Line 15: Line 3:
[[Category:Státnice - Softwarové systémy]] ## 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"

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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} ]$
&nbsp;&nbsp;&nbsp;&nbsp;* vyhodnoti sa potom... $x=\[\begin{matrix} x_1 & x_2 \end{matrix} ]$ => $perc_{recall} = w_1*x_1 + w_2*x_2 + prah*1$
&nbsp;&nbsp;&nbsp;&nbsp;* ...rozsireny vstupny vektor $x_1'=\[\begin{matrix} x_1 & x_2 & 1 \end{matrix} ]$
&nbsp;&nbsp;&nbsp;&nbsp;* $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:
&nbsp;&nbsp;&nbsp;&nbsp;* vezme sa vzor, ak sedi, nic nerobime
&nbsp;&nbsp;&nbsp;&nbsp;* 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)$
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* dostavam novy perceptron $p1=p+a*((c(3)-y(3))*AA(:,3))'$
&nbsp;&nbsp;&nbsp;&nbsp;* $y1=hardlim1(p1*AA) = \[ \begin{matrix} 1 & 1 & 1 & 1 \end{matrix} ]$
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* 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)