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
Scarica

slides - clic