mi-adm_p02_slides

Download Report

Transcript mi-adm_p02_slides

České vysoké učení technické v Praze
Fakulta informačních technologií
Katedra teoretické informatiky
MI-ADM – Algoritmy data miningu (2010/2011)
Přednáška 2: Model, hodnocení modelu,
metoda K nejbližších sousedů
Pavel Kordík, FIT, Czech Technical University in Prague
1
CRISP-DM: Phases and tasks
MI-KDD
Business
Understanding
MI-PDD
Data
Understanding
MI-ROZ, MI-MVI
Data
Preparation
Modeling
Evaluation
MI-KDD
Deployment
Determine
Business
Objectives
Collect
Initial
Data
Select
Data
Select
Modeling
Technique
Evaluate
Results
Plan
Deployment
Assess
Situation
Describe
Data
Clean
Data
Generate
Test Design
Review
Process
Plan Monitering
&
Maintenance
Determine
Data Mining
Goals
Explore
Data
Construct
Data
Build
Model
Determine
Next Steps
Produce
Final
Report
Produce
Project Plan
Verify
Data
Quality
Integrate
Data
Assess
Model
Format
Data
Kordik, Holena CTU Prague, FIT, MI-ADM
Review
Project
MI-ADM
2
MI-ADM
Nahrazuje bakalářský předmět BI-VZD
 Větší důraz na porozumění data miningu
jak z algoritmického, tak teoretického
pohledu
 Částečný překryv s MI-ROZ, ale podáno z
jiné perspektivy
 Je přípravou na předmět MI-MVI


MI-MVI – Metody výpočetní inteligence
3
Metody výpočetní inteligence
Computational Intelligence Methods
Artificial Neural
Networks
Fuzzy Logic
Evolutionary
Computing
Machine Learning
HYBRID METHODS
1. Adaptive Resonance Theory
1. Divide and Conquer Methods
Decision trees, production rules…
2. Back Propagation Learning
3. Hopfield’s Associative Memory
4. Kohonen’s Self Organizing Maps
5. Pulsed Neural Networks
6. Radial Basis Functions
7. Real Time Recurrent Learning
2. Instance Based Learning
Nearest neighbor, case based
reasoning
3. Reinforcement Learning
4. Statistical Methods
Bayesian, Monte Carlo etc
5. Support Vector Machines
SVM, kernel methods, PCA, ICA
Dnešní přednáška





Model
Metoda K- nejbližších sousedů
Plasticita modelu
Hodnocení modelu
Regularizace
5
Modely v data miningu
Rozdělení modelů dle funkce
Popisné (descriptive)
Predikční (predictive)
Shlukování
a segmentace
Klasifikace
Souhrny
Regrese, predikce
budoucí hodnoty
Analýza vztahů a závislostí
Analýza časových řad
Přehled metod generujících modely
Funkce
Metody
Klasifikace
Linear separation, Rule induction methods,
Decision trees, Neural networks, SVM, nearest
neighbours, Case based reasoning
Regrese a predikce
budoucí hodnoty
Linear, polynomial, logistic regression,
Regression trees, Neural networks, nearest
neighbours
Analýza časových řad
Autoregression, Moving averages, Regression
trees, neural networks, SVM
Analýza vztahů a
závislostí
Association rules, Correlation analysis,
Regression analysis, Bayesian networks,
Inductive logic programming
Popis dat, souhrny
Statistical techniques, OLAP
Shlukování a
segmentace
K-nearest neighbour, Agglomerative clustering,
Neural networks, Visualization methods
Klasifikace a regrese



Klasifikační i regresní model:
y = f(x)
Klasifikace: y je nominální (název třídy)
Regrese: y je spojitá veličina (teplota, výška)
mpg
disp
weight
Klasifikační
model
cyl
disp
weight
Regresní
model
origin
(America, Europe, Japan)
mpg
300-800
Vytvoření a použití modelu
mpg
disp
weight

Klasifikační
model
origin
(America, Europe, Japan)
2 fáze

Fáze učení, trénování
 Model
je vygenerován, upravuje se vnitřní
struktura, parametry

Fáze použití, vybavování
 Model
je použit, vypočítá se výstup, model to
neovlivní
9
1NN – nejbližší soused

Trénování – generování modelu


Ulož trénovací data
Klasifikace – použití modelu

Najdi nejbližšího souseda a klasifikuj stejnou třídou
?

http://www.theparticle.com/applets/ml/nearest_neighbor/
Metrika, Euklidovská vzdálenost
 Je třeba nějak určit podobnost vzorů – jejich
vzdálenost
 Vzdálenost musí splňovat určité podmínky:
1.
2.
3.
4.
d(x,y)
d(x,y)
d(x,y)
d(x,y)
>
=
=
<
0.
0 iff x = y.
d(y,x).
d(x,z) + d(z,y) (trojúhelníková nerovnost ).
Dva body v n-rozměrném prostoru:
Euklidovská vzdálenost P a Q =
 Odmocňování není nezbytně nutné, když
vzdálenosti porovnáváme
Manhattonská vzdálenost

Jak budeme počítat vzdálenost dvou
cyklistů v Manhattonu?
M P, Q  p1  q1  p2  q2  ... pn  qn
Váha atributů


Problém – různé rozsahy vzdáleností
Při určování euklidovské vzdálenosti mají atributy
různou váhu – např. p je 100x důležitější než q
3,5 q
0
p
2
350
Normalizace atributů

Problém vyřešíme přeškálováním (normalizací) atributů:

vi  min vi
vi  Avg(vi )
ai 
ai 
nebo
StDev(vi )
max vi  min vi
Původní rozsahy se transformují do <0,1>
1 q
0
Kde přesně je rozhodovací hranice tříd?
p
0
1
Voronoiův diagram

http://www.cs.cornell.edu/Info/People/chew/Delaunay.html
kNN – k nejbližších sousedů

Klasifikace


Najdi k nejbližších sousedů a klasifikuj majoritní třídou
Příklad 3NN klasifikace:
?

Jak zvolit optimální k?
Klasifikace
Generalizace
Lineární klasifikátor (separátor)
Nelineární klasifikátor
1NN
3NN
9NN
9NN, měkké rozhodnutí (poměr mezi počtem
sousedů z různých tříd)
31NN – měkké rozhodnutí
Přeučení
x2
x2
x1
x1
Jak zjistit přeučení?
Rozdělit na trénovací a testovací data.
 Model vygenerovat na datech trénovacích.
 Chybu počítat na datech testovacích.

mpg
15
14
24
22
18
21
27
26
25
24
cyl
8
8
4
6
6
6
4
4
4
4
disp
400
455
113
198
199
200
97
97
110
107
hp
150
225
95
95
97
85
88
46
87
90
wgt
3761
3086
2372
2833
2774
2587
2130
1835
2672
2430
acc
9.5
10
15
15.5
15.5
16
14.5
20.5
17.5
14.5
year
70
70
70
70
70
70
70
70
70
70
Origin
US
US
JP
US
US
US
JP
EU
EU
EU
name
TRAIN
chevrolet_monte_carlo
TEST
buick_estate_wagon_(sw)
TRAIN
toyota_corona_mark_ii
plymouth_duster TRAIN
TEST
amc_hornet
TRAIN
ford_maverick
TRAIN
datsun_pl510
TRAIN
volkswagen_1131_deluxe_sed
TEST
peugeot_504
TEST
audi_100_ls
27
Učení a evaluace modelu
Trénovací
Vstupy Výstup
Model
Test.
Učení,
trénování modelu
Model
Predikce,
použití modelu
Odhady modelu
Výpočet chyby
modelu
Chyba na
testovacích datech
Chyba modelu

Klasifikační model:


procento nesprávných předpovědí
Regresní model:


i i
i
součet absolutních hodnot odchylek
2
err   yi  f ( xi ) 
součet čtverců odchylek
err 
y  f (x )
i


err 
1
N
  yi  f ( xi ) 
průměrný čtverec odchylky
i
odmocnina průměrného čtverce odchylky
(RMSE)
2
1
2
RMSE 
 yi  f ( xi ) 

N i
Rozhodovací hranice pro různá K

Viz. demostrační interaktivní program
(autor Petr Pošík)
Načtení dat
V dnešním cvičení budeme opět používat
databázi aut.
 Načtěte soubor auto-mpg.data-modnames.csv do objektu dataset a definujte
jména jednotlivých atributů


auta = dataset('file', 'auto-mpg.data-modnames.csv',...
'ReadVarNames', false, 'ReadObsNames', false,...
'delimiter', ',', ...
'VarNames', {'mpg', 'cyl', 'disp', ...
'hp', 'wgt', 'acc', 'year', 'org', 'name'});
Normalizace dat



auta_norm = datasetfun( @minmax, auta(:,1:5),
'UniformOutput', false );
auta_norm = [auta_norm{:}];
auta = replacedata( auta, auta_norm, 1:5);
Rozdělení dat I
První polovinu datasetu použijeme pro
trénování.
 Druhou polovinu pro testování.
 Jak to udělat?

Rozdělení dat I
První polovinu datasetu použijeme pro
trénování.
 Druhou polovinu pro testování.
 Jak to udělat?

auta_tren = auta(1:pocet_aut/2,:);
 auta_test = auta(pocet_aut/2+1:pocet_aut,:);


Co může být problém při tomto způsobu
dělení? Je trénovací a testovací množina
reprezentativní podmnožinou?
Lépe: náhodné rozdělení dat

Vysvětlete:
function [tren, test] = rozdel_data(inData, hranice)
vect = rand(1,length(inData));
velikost_trenovaci_mnoziny = hranice;
testIdx = find(vect > velikost_trenovaci_mnoziny);
trenIdx = find(vect <= velikost_trenovaci_mnoziny);
tren = inData(trenIdx,:);
test = inData(testIdx,:);
end
Najdi k nejbližších sousedů
Funkce pro výpočet nejbližšího souseda:
[indexy_nejblizsich,
vzdalenosti_k_nejblizsim] =
knnsearch(testovaci mn, trenovaci
mn, K)



Pro všechny testovací instance vrátí pole indexů
nejbližších sousedů z trénovací množiny a pole
vzdáleností k nim
Najděte v kódu funkce výpočet vzdálenosti
Najdi k nejbližších sousedů

Pro 1NN
if K==1
% Loop for each query point
for k=1:N
d=zeros(L,1);
Testovací instance
for t=1:M
d=d+(R(:,t)-Q(k,t)).^2;
end
Trénovací množina
[D(k),idx(k)]=min(d);
end
Najdi k nejbližších sousedů

kNN
for k=1:N
d=zeros(L,1);
Testovací instance
for t=1:M
d=d+(R(:,t)-Q(k,t)).^2;
end
Trénovací množina
[s,t]=sort(d);
idx(k,:)=t(1:K);
D(k,:)=s(1:K);
Seřaď vzdálenosti
end
s – vzdálenosti,
t - indexy
Klasifikuj do majoritní třídy

Funkce pro klasifikaci z indexu nejbližších sousedů
[oklasifikovana_testovaci_data] =
classify2(indexy_nejblizsich_sousedu,
klasifikace_trenovacich_dat mn, pocet_trid)
trénovací
testovací
3NN
Klasifikuj do majoritní třídy
 Funkce pro klasifikaci z indexu nejbližších sousedů
[oklasifikovana_testovaci_data] = classify2(indexy_nejblizsich_sousedu,
klasifikace_trenovacich_dat mn, pocet_trid)
function class = classify2(nearestIdxs, trainingClasses,
numClasses)
class = zeros(1,length(nearestIdxs));
for i = 1:length(nearestIdxs)
classesCount = zeros(1,numClasses);
for j = 1:numClasses
classesCount(j) = length(find(trainingClasses(i,:)
== j));
end
[cnt,finalClass] = max(classesCount);
class(i) = finalClass;
end
end
Klasifikuj do majoritní třídy

Funkce pro klasifikaci z indexu nejbližších sousedů
[oklasifikovana_testovaci_data] =
classify2(indexy_nejblizsich_sousedu,
klasifikace_trenovacich_dat mn, pocet_trid)
trénovací
testovací
3NN
indexy_nejblizsich_sousedu
classesCount
class
3 0
1 2
= oklasifikovana_testovaci_data
Křížová validace


Umožňuje odhadnout testovací chybu a
potřebuje k tomu jen trénovací data
Slouží k výběru (vhodné struktury a parametrů)
modelu
K-NN pro regresi

Jak byste použili k-NN pro regresi (pro predikci spojité
veličiny)?
cyl
disp
wgt
mpg
2
1800
2000
35
2
1900
2500
30
4
1800
1500
33
4
2400
2200
25
6
2000
2500
16
cyl
disp
4
wgt
2000
mpg
2800
????
K-NN regrese

Demostrace
Varianty kNN

Příspěvek souseda je vážen vzdáleností od klasifikovaného vzoru

Klasifikace pomocí etalonů – vybrána vhodná podmnožina
trénovací množiny
Experimenty na doma
Postav 2NN klasifikátor původu aut (origin)
a sleduj shodu klasifikace s originálním
atributem na všech datech
 Porovnej chybu klasifikace na testovací
množině pro 1NN a 10NN
 Zjisti, které K je optimální pro model mpg z
ostatních atributů pomocí metody KNN
 Pro konkrétní auto najdi 3 jeho nejbližší
sousedy

Diskuze k NN


Velmi populární metody a často i velmi úspěšné
Ale pomalejší vybavování


Pozor na váhy atributů


Řešením je normalizace dat
Důležité najít vhodné k


Při klasifikaci musím projít celou trénovací množinu
Abychom minimalizovali chybu na testovacích datech
Použitelné i pro regresní problémy