+ All Categories
Home > Documents > MI-ADM – Algoritmy data miningu (2010 /2011)

MI-ADM – Algoritmy data miningu (2010 /2011)

Date post: 08-Jan-2016
Category:
Upload: vahe
View: 45 times
Download: 4 times
Share this document with a friend
Description:
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. Business Understanding. Data Understanding. Data Preparation. Modeling. Evaluation. Deployment. - PowerPoint PPT Presentation
47
České vysoké učení technické v České vysoké učení technické v Praze Praze Fakulta Fakulta inform inform ačních technologií ačních technologií Katedra teoretické informatiky Katedra teoretické informatiky 1 MI-ADM – Algoritmy data miningu (2010/2011) Přednáška 2: Model, hodnocení modelu, metoda K nejbližších sousedů Kordík, FIT, Czech Technical University in Prague
Transcript
Page 1: MI-ADM – Algoritmy data miningu (2010 /2011)

České vysoké učení technické v České vysoké učení technické v PrazePraze

Fakulta Fakulta informinformačních technologiíačních technologií

Katedra teoretické informatikyKatedra teoretické informatiky

1

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

Page 2: MI-ADM – Algoritmy data miningu (2010 /2011)

Kordik, Holena CTU Prague, FIT, MI-ADM 2

BusinessUnderstanding

Data Understanding

Data Preparation

Modeling Deployment Evaluation

FormatData

IntegrateData

ConstructData

CleanData

SelectData

DetermineBusiness

Objectives

ReviewProject

ProduceFinal

Report

Plan Monitering&

Maintenance

PlanDeployment

DetermineNext Steps

ReviewProcess

EvaluateResults

AssessModel

BuildModel

GenerateTest Design

SelectModelingTechnique

AssessSituation

ExploreData

DescribeData

CollectInitialData

DetermineData Mining

Goals

VerifyData

Quality

ProduceProject Plan

CRISP-DM: Phases and tasksMI-KDD MI-KDDMI-ROZ, MI-MVIMI-PDD

MI-ADM

Page 3: MI-ADM – Algoritmy data miningu (2010 /2011)

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í inteligence3

Page 4: MI-ADM – Algoritmy data miningu (2010 /2011)

Computational Intelligence Methods

Artificial Neural Networks

Fuzzy Logic Evolutionary Computing

Machine Learning

4. Statistical MethodsBayesian, Monte Carlo etc

1. Divide and Conquer MethodsDecision trees, production rules…

2. Instance Based Learning Nearest neighbor, case based reasoning

5. Support Vector MachinesSVM, kernel methods, PCA, ICA

2. Back Propagation Learning

HYBRID METHODS

3. Reinforcement Learning4. Kohonen’s Self Organizing Maps

3. Hopfield’s Associative Memory

1. Adaptive Resonance Theory

7. Real Time Recurrent Learning

5. Pulsed Neural Networks

6. Radial Basis Functions

Metody výpočetní inteligence

Page 5: MI-ADM – Algoritmy data miningu (2010 /2011)

5

Dnešní přednáška Model Metoda K- nejbližších

sousedů Plasticita modelu Hodnocení modelu Regularizace

Page 6: MI-ADM – Algoritmy data miningu (2010 /2011)

Rozdělení modelů dle funkce

Predikční (predictive)

Popisné (descriptive)

Klasifikace Regrese, predikcebudoucí hodnoty

Shlukování a segmentace

Souhrny

Analýza vztahů a závislostí

Analýza časových řad

Modely v data miningu

Page 7: MI-ADM – Algoritmy data miningu (2010 /2011)

Funkce MetodyKlasifikace 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

Přehled metod generujících modely

Page 8: MI-ADM – Algoritmy data miningu (2010 /2011)

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)Klasifikační model

origin(America, Europe,

Japan)weightdispmpg

Regresní model

mpg300-800

weightdispcyl

Page 9: MI-ADM – Algoritmy data miningu (2010 /2011)

Vytvoření a použití modelu

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

Klasifikační model

origin(America, Europe,

Japan)weightdispmpg

Page 10: MI-ADM – Algoritmy data miningu (2010 /2011)

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/

?

Page 11: MI-ADM – Algoritmy data miningu (2010 /2011)

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. d(x,y) > 0. 2. d(x,y) = 0 iff x = y.3. d(x,y) = d(y,x).4. d(x,y) < d(x,z) + d(z,y) (trojúhelníková nerovnost ).

Odmocňování není nezbytně nutné, když vzdálenosti porovnáváme

Euklidovská vzdálenost P a Q =

Dva body v n-rozměrném prostoru:

Page 12: MI-ADM – Algoritmy data miningu (2010 /2011)

Manhattonská vzdálenost

Jak budeme počítat vzdálenost dvou cyklistů v Manhattonu?

nn qpqpqpQPM ..., 2211

Page 13: MI-ADM – Algoritmy data miningu (2010 /2011)

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

0

3,5

2 350p

q

Page 14: MI-ADM – Algoritmy data miningu (2010 /2011)

Normalizace atributů Problém vyřešíme přeškálováním (normalizací)

atributů:

Původní rozsahy se transformují do <0,1>

ii

iii vv

vva

minmax

min

)(

)(

i

iii vStDev

vAvgva

nebo

0

1

0 1p

qKde přesně je rozhodovací hranice tříd?

Page 15: MI-ADM – Algoritmy data miningu (2010 /2011)

Voronoiův diagram

http://www.cs.cornell.edu/Info/People/chew/Delaunay.html

Page 16: MI-ADM – Algoritmy data miningu (2010 /2011)

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?

?

Page 17: MI-ADM – Algoritmy data miningu (2010 /2011)

Klasifikace

Page 18: MI-ADM – Algoritmy data miningu (2010 /2011)

Generalizace

Page 19: MI-ADM – Algoritmy data miningu (2010 /2011)

Lineární klasifikátor (separátor)

Page 20: MI-ADM – Algoritmy data miningu (2010 /2011)

Nelineární klasifikátor

Page 21: MI-ADM – Algoritmy data miningu (2010 /2011)

1NN

Page 22: MI-ADM – Algoritmy data miningu (2010 /2011)

3NN

Page 23: MI-ADM – Algoritmy data miningu (2010 /2011)

9NN

Page 24: MI-ADM – Algoritmy data miningu (2010 /2011)

9NN, měkké rozhodnutí (poměr mezi počtem sousedů z různých tříd)

Page 25: MI-ADM – Algoritmy data miningu (2010 /2011)

31NN – měkké rozhodnutí

Page 26: MI-ADM – Algoritmy data miningu (2010 /2011)

x1

x2

Přeučení

x1

x2

Page 27: MI-ADM – Algoritmy data miningu (2010 /2011)

Jak zjistit přeučení?

27

Rozdělit na trénovací a testovací data.

Model vygenerovat na datech trénovacích.

Chybu počítat na datech testovacích.mpg cyldisp hp wgt acc year Origin name 15 8 400 150 3761 9.5 70 US chevrolet_monte_carlo 14 8 455 225 3086 10 70 US buick_estate_wagon_(sw) 24 4 113 95 2372 15 70 JP toyota_corona_mark_ii 22 6 198 95 2833 15.5 70 US plymouth_duster 18 6 199 97 2774 15.5 70 US amc_hornet 21 6 200 85 2587 16 70 US ford_maverick 27 4 97 88 2130 14.5 70 JP datsun_pl510 26 4 97 46 1835 20.5 70 EU volkswagen_1131_deluxe_sedan 25 4 110 87 2672 17.5 70 EU peugeot_504 24 4 107 90 2430 14.5 70 EU audi_100_ls

TRAINTESTTRAINTRAINTESTTRAINTRAINTRAINTESTTEST

Page 28: MI-ADM – Algoritmy data miningu (2010 /2011)

Učení a evaluace modeluTré

novací

Test

.Vstupy

Výstup

Učení,trénování modelu

Model

Predikce,použití modelu

Model

Výpočet chyby modelu

Odhady modelu

Chyba na testovacích datech

Page 29: MI-ADM – Algoritmy data miningu (2010 /2011)

Chyba modelu Klasifikační model:

procento nesprávných předpovědí Regresní model:

součet absolutních hodnot odchylek součet čtverců odchylek

průměrný čtverec odchylky odmocnina průměrného čtverce odchylky

(RMSE)

( )i ii

err y f x 2

( )i ii

err y f x

21( )i i

i

err y f xN

21( )i i

i

RMSE y f xN

Page 30: MI-ADM – Algoritmy data miningu (2010 /2011)

Rozhodovací hranice pro různá K Viz. demostrační interaktivní program

(autor Petr Pošík)

Page 31: MI-ADM – Algoritmy data miningu (2010 /2011)

Načtení dat V dnešním cvičení budeme opět

používat databázi aut. Načtěte soubor auto-mpg.data-mod-

names.csv do objektu dataset a definujte jména jednotlivých atributů

auta = dataset('file', 'auto-mpg.data-mod-names.csv',...'ReadVarNames', false, 'ReadObsNames', false,... 'delimiter', ',', ...'VarNames', {'mpg', 'cyl', 'disp', ...

'hp', 'wgt', 'acc', 'year', 'org', 'name'});

Page 32: MI-ADM – Algoritmy data miningu (2010 /2011)

Normalizace dat auta_norm = datasetfun( @minmax, auta(:,1:5), 'UniformOutput', false );

auta_norm = [auta_norm{:}]; auta = replacedata( auta, auta_norm, 1:5);

Page 33: MI-ADM – Algoritmy data miningu (2010 /2011)

Rozdělení dat I

První polovinu datasetu použijeme pro trénování.

Druhou polovinu pro testování. Jak to udělat?

Page 34: MI-ADM – Algoritmy data miningu (2010 /2011)

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?

Page 35: MI-ADM – Algoritmy data miningu (2010 /2011)

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

Page 36: MI-ADM – Algoritmy data miningu (2010 /2011)

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

Page 37: MI-ADM – Algoritmy data miningu (2010 /2011)

Najdi k nejbližších sousedů Pro 1NNif K==1 % Loop for each query point for k=1:N d=zeros(L,1); for t=1:M d=d+(R(:,t)-Q(k,t)).^2; end [D(k),idx(k)]=min(d); end

Trénovací množina

Testovací instance

Page 38: MI-ADM – Algoritmy data miningu (2010 /2011)

Najdi k nejbližších sousedů kNN for k=1:N d=zeros(L,1); for t=1:M d=d+(R(:,t)-Q(k,t)).^2; end [s,t]=sort(d); idx(k,:)=t(1:K); D(k,:)=s(1:K); end

Trénovací množina

Testovací instance

Seřaď vzdálenostis – vzdálenosti,t - indexy

Page 39: MI-ADM – Algoritmy data miningu (2010 /2011)

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

Page 40: MI-ADM – Algoritmy data miningu (2010 /2011)

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;

endend

Page 41: MI-ADM – Algoritmy data miningu (2010 /2011)

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í

indexy_nejblizsich_sousedu

3NN

classesCount 1 23 0

class = oklasifikovana_testovaci_data

Page 42: MI-ADM – Algoritmy data miningu (2010 /2011)

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

Page 43: MI-ADM – Algoritmy data miningu (2010 /2011)

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 wgt mpg

4 2000 2800 ????

Page 44: MI-ADM – Algoritmy data miningu (2010 /2011)

K-NN regrese Demostrace

Page 45: MI-ADM – Algoritmy data miningu (2010 /2011)

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

Page 46: MI-ADM – Algoritmy data miningu (2010 /2011)

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

Page 47: MI-ADM – Algoritmy data miningu (2010 /2011)

Diskuze k NN

Velmi populární metody a často i velmi úspěšné

Ale pomalejší vybavování Při klasifikaci musím projít celou trénovací množinu

Pozor na váhy atributů Řešením je normalizace dat

Důležité najít vhodné k Abychom minimalizovali chybu na testovacích datech

Použitelné i pro regresní problémy


Recommended