TEORIE E TECNICHE DEL RICONOSCIMENTO Apprendimento automatico Classificazione in SciKit-Learn CLASSIFICAZIONE • In questa lezione ritorniamo alla classificazione • Vediamo come classificare dati di tipo abbastanza semplice • Scrivendo gli algoritmi noi SKLEARN • Useremo la versione 0.16.1 • Istruzioni piu’ affidabili per scaricare scikitlearn per diverse architetture (Windows / Mac / Ubuntu) – https://github.com/scikit-learn/scikitlearn/blob/master/doc/install.rst IL DATASET IRIS • Un classico dataset per apprendimento automatico • Dati su istanze di fiore (iris) • Per ogni fiore il dataset contiene – La specie (Iris Setosa, Iris Virginica, Iris Versicolor) – Quattro attributi: Sepal length / width, Petal length /width • Il problema di classificazione: – Date certe caratteristiche di un Iris, e’ possibile prevederne la specie? • Dataset molto piccolo (150 esempi) in the center (circle) and Iris Virginica are indicated with "x" marks. We can se at there are two large groups: one is of Iris Setosa and another is a mixture of Iri rsicolor and Iris Virginica. Primo passo: visualizzazione Come caricare i dati Il dataset >>> data {'target_names': array(['setosa', 'versicolor', 'virginica'], dtype='|S10'), 'data': array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], [ 4.6, 3.1, 1.5, 0.2], [ 5. , 3.6, 1.4, 0.2], [ 5.4, 3.9, 1.7, 0.4], [ 4.6, 3.4, 1.4, 0.3], [ 5. , 3.4, 1.5, 0.2], [ 4.4, 2.9, 1.4, 0.2], [ 4.9, 3.1, 1.5, 0.1], [ 5.4, 3.7, 1.5, 0.2], [ 4.8, 3.4, 1.6, 0.2], [ 4.8, 3. , 1.4, 0.1], ... Features >>> features array([[ 5.1, 3.5, 1.4, 0.2], [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], [ 4.6, 3.1, 1.5, 0.2], [ 5. , 3.6, 1.4, 0.2], [ 5.4, 3.9, 1.7, 0.4], [ 4.6, 3.4, 1.4, 0.3], [ 5. , 3.4, 1.5, 0.2], [ 4.4, 2.9, 1.4, 0.2], [ 4.9, 3.1, 1.5, 0.1], [ 5.4, 3.7, 1.5, 0.2], [ 4.8, 3.4, 1.6, 0.2], [ 4.8, 3. , 1.4, 0.1], [ 4.3, 3. , 1.1, 0.1], [ 5.8, 4. , 1.2, 0.2], Classe degli oggetti >>> target array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]) Codice per ottenere la visualizzazione UN CLASSIFICATORE FATTO A MANO • Sulla base del diagramma possiamo concludere per esempio che l’attributo ‘petal length’ discrimina Iris Setosa dagli altri esempi di Iris • Possiamo scoprire automaticamente qual’e’ il punto di separazione Il cutoff Output: 1.9, 3.0 Il classificatore i f exampl e[ best _f i ] > t : pr i nt ' vi r gi ni ca' el se: pr i nt ' ver si col or ' Come separare Virginica e Versicolor? we get is split on the petal length. We can visualize the decision boundary. In the following screenshot, we see two regions: one is white and the other is shaded in grey. Anything that falls in the white region will be called Iris Virginica and anything In a threshold model, the decision boundary will always be a line that is parallel to one of the axes. The plot in the preceding screenshot shows the decision boundary Selezione automatica delle features Cross-validation Un dataset piu’ complesso: Seeds • Misure di semi di grano • 3 categorie: Canadian, Koma, Rosa • 7 attributi: – Area – Perimetro – Compattezza – Length – Width – …. Nearest-Neighbors • Un approccio alla classificazione che classifica nuove istanze in base alla DISTANZA dagli esempi di addestramento CLASSIFICAZIONE BASATA SULLA DISTANZA Codice Unlike the Iris dataset, which was collected in the 1930s, this is a very recent datase and its features were automatically computed from digital images. More datasets This is how image pattern recognition can be implemented: you can take images in digital form, compute a few relevant features from them, and use a generic side of this problem and compute features in images. For the moment, we will wor with the features that are given to us. UCI Machine Learning Dataset Repository The University of California at Irvine (UCI) maintains an online repository of machine learning datasets (at the time of writing, they are listing 233 datasets). Both the Iris and Seeds dataset used in this chapter were taken from there. The repository is available online: ht t p: / / ar chi ve. i cs. uci . edu/ ml / LETTURE QUESTA LEZIONE • Echert & Coelho, capitolo 2