diff --git a/anno3/apprendimento_automatico/ltximg/org-ltximg_067bd3e46d275c35d7eed76d72ba8c5ef3b78801.png b/anno3/apprendimento_automatico/ltximg/org-ltximg_067bd3e46d275c35d7eed76d72ba8c5ef3b78801.png new file mode 100644 index 0000000..add44c8 Binary files /dev/null and b/anno3/apprendimento_automatico/ltximg/org-ltximg_067bd3e46d275c35d7eed76d72ba8c5ef3b78801.png differ diff --git a/anno3/apprendimento_automatico/ltximg/org-ltximg_a4e1ea0aa3ebbd6c0df33c1794b3738079adcdfd.png b/anno3/apprendimento_automatico/ltximg/org-ltximg_a4e1ea0aa3ebbd6c0df33c1794b3738079adcdfd.png new file mode 100644 index 0000000..9bbf0e6 Binary files /dev/null and b/anno3/apprendimento_automatico/ltximg/org-ltximg_a4e1ea0aa3ebbd6c0df33c1794b3738079adcdfd.png differ diff --git a/anno3/apprendimento_automatico/preparazione.org b/anno3/apprendimento_automatico/preparazione.org index 55eca08..23f9d0a 100644 --- a/anno3/apprendimento_automatico/preparazione.org +++ b/anno3/apprendimento_automatico/preparazione.org @@ -6,8 +6,8 @@ nuove istanze di problemi in base ai dati gia` consumati *** Probabilistic classifier Stima probabilita` dai dati e fornisce predizioni usando la seguente regola: -- Yₘₐₚ = $arg max_{Y}P(Y|X)$ = $argmax_Y\frac{(P(X|Y)(PY)}{P(X))}$ = - $argmax_Y\frac{(P(X|Y)(PY)}{P(Y))}$ +- Yₘₐₚ = $arg max_{Y}P(Y|X) = argmax_Y\frac{(P(X|Y)(PY)}{P(X))} = + argmax_Y\frac{(P(X|Y)(PY)}{P(Y))}$ - Yₘₗ = $argmax_YP(X|Y)$ (se priori non importanti) *** Features Se vogliamo approssimare la funzione coseno e` inutile considerare @@ -335,7 +335,7 @@ mai viste. algorithm L dopo il training su D_c Permette di trasformare un sistema induttivo in deduttivo ** TODO Path Through hyp. space -Vedi che vuole sapere +Vedi che vuole sapere. ** TODO Trees (manca ranking e regression trees) I decision tree sono molto espressivi e corrispondono a proposizioni logiche in DNF. @@ -412,7 +412,66 @@ Il best split minimizza l'impurita` dei subset D₁, ..., Dₗ. - Gli alberi possono diventare rankers se imparano un ordinamento per i segmenti - Le foglie devono essere ordinate +Sfruttando la distribuzione delle classi nelle foglie possiamo +trasformare il feature tree in: +1. ranking tree: se ordiniamo le foglie in base alle probabilita` + empiriche +2. probability estimator +3. classifier: scegliendo le condizioni operative come conseguenza + della proporzione della frequenza sulle classi: + + clr = Pos/Neg + + c = Cfn / Cfp + + slope: 1/(c·clr) +TODO: Esercizi su Ranking trees e costi: 193 +*** Prune Tree +- PruneTree(T,D) +#+BEGIN_SRC +inputs: decision tree T; labelled data D +for every INTERNAL node N ∈T, partendo dal basso: +Tₙ ← subtree of T with N as root +Dₙ ← {x∈D | x is covered by N} +se l'accuracy di Tₙ su Dₙ e` peggiore della majority class in Dₙ : + sostituisci Tₙ in T con una foglia marcata con la maj. class di Dₙ +ritorna versione pruned di T +#+END_SRC +Invece di fare pruning si puo` introdurre un'errore di +generalizzazione (penalita` k su foglie) calcolato sul training set. +Non viene generata una foglia se non decrementa l'errore del padre di +almeno k+1. +TODO: Vedi come vengono stimati gli errori di generalizzazione sul +libro +TODO: vedi conseguenze inflation +*** Regression Trees +Possiamo inquadrare il problema del tree learning come un problema di +minimizzazione della varianza (o standard deviation nel caso di sqrt +GINI) sulle foglie: +| Var(Y) = 1/|Y| ∑(y-y̱)² y̱ e` y_predict +l'average della varianza e` la varianza moltiplicata per la +frequenza |Yⱼ|/|Y|. +- Nei problemi di regressione i valori del dominio di Y sono continui +- in BestSplit possiamo sostituire l'impurezza con la varianza + + Label(Y) = mean value dei valori di Y raccolte dalla foglia + + Homogeneous(Y) = true se la varianza e` sotto la soglia +- i regression tree son suscettibili all'overfitting in caso di pochi + esempi +*** Clustering Trees +- usiamo Dis: X×X ↦ R +- BestSplit usa l'average di Dis su ∀x₁,x₂ +- nel caso di vettori di features X⊆Rᵈ la somma della varianza sulle + features e` la distanza euclidea +- Complessita`: + + average squared distance = 2 volte la varianza + + Var(x) + + average vector delle distanze e Varᵢ(X) + + O(|D|) +Note: +- Cluster piccoli: overfitting +- outliers possono essere rimossi +- si possono rimuovere degli splits nei livelli piu` bassi + dell'albero: ~pruning~ +- label attraverso most representative instance: medoid (lowest total + dissimilarity) ** Rules Ordered rules are a chain of /if-then-else/. #+BEGIN_SRC @@ -474,6 +533,14 @@ coverage non convessa. I sottogruppi sono un subset dell'instance space la cui class distribution e` differente da quella di D. Mapping ĝ: X → C; D = (xᵢ, l(xᵢ))ⁱ +Precisione e average recall non sono sempre coincidono sulla +classificazione dei sottogruppi: +- Precision: focalizzato sui positivi +- avg recall: no fuoco +Nella subgroup discovery siamo interessati a imparare piu` di una +regola per individuare un gruppo omogeneo: weighted covering. +Si da un peso ad ogni esempio e lo si riduce ogni volta che si trova +una regola che lo copre. ** Distance models La distanza e` una misura di similarita`: minore la distanza, maggiore la similarita`. @@ -539,7 +606,7 @@ Dato Sum of Squared Error - Between cluster Sum of Squares: $BSS = \sum_i |C_i|(m-m_i)^2$ BSS + WSS e` costante. Il problema dei K-Means consiste nel trovare una soluzione che minimizza WSS (o massimizza BSS): cluster coesi. -*** Algoritmo di LLoyd +*** Algoritmo di Lloyd - Itera partizionando in base al centroide e ricalcola il centroide. - Converge ad un punto stazionario ma non garantisce che la soluzione sia il minimo globale. @@ -603,7 +670,7 @@ repeat until no change in D₁,...,Dₖ return D₁, ..., Dₖ #+END_SRC -- Cosine similarity: $cos θ = \frac{x\cdot y}{\Vert{x}\Vert \cdot +- Cosine similarity: $cos \theta = \frac{x\cdot y}{\Vert{x}\Vert \cdot \Vert{y} \Vert} = \frac{K(x,y)}{\sqrt{K(x,x)\times K(y,y)}}$ ** 5-cross validation dividi il dataset in 5 partizioni, 4 per il training set 1 per il test diff --git a/todo.org b/todo.org index 4f7b265..bfafda5 100644 --- a/todo.org +++ b/todo.org @@ -22,14 +22,15 @@ + [ ] Sum of squared error + [ ] Silhouttes + [ ] Rivedi kernelization -- [ ] Esposito [0/3] +- [ ] Esposito [0/4] + [ ] (w_0,w_1) ortogonale all'iperpiano + [ ] dimostrazione dualita` grangiana + [ ] Mercer condition + [ ] kernel semidefinito -- [ ] Meo [0/3] +- [-] Meo [1/5] + [ ] Vedi bene gini index - + [ ] Ranking e regression trees + + [X] Ranking e regression trees + + [ ] errori di generalizzazione e TODO ranking tree + [ ] subgroup discovery and ongoing + [ ] Voronoi + [ ] Proximity graph for measuring clusters