1 / 47

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

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.

vahe
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  2. Business Understanding Data Understanding Data Preparation Modeling Evaluation 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 Review Project Format Data CRISP-DM: Phases and tasks MI-KDD MI-PDD MI-ROZ, MI-MVI MI-KDD MI-ADM Kordik, Holena CTU Prague, FIT, MI-ADM

  3. 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

  4. 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 2. Instance Based Learning Nearest neighbor, case based reasoning 3. Hopfield’s Associative Memory 4. Kohonen’s Self Organizing Maps 3. Reinforcement Learning 5. Pulsed Neural Networks 4. Statistical Methods Bayesian, Monte Carlo etc 6. Radial Basis Functions 5. Support Vector Machines SVM, kernel methods, PCA, ICA 7. Real Time Recurrent Learning

  5. Dnešní přednáška • Model • Metoda K- nejbližších sousedů • Plasticita modelu • Hodnocení modelu • Regularizace

  6. Modely v data miningu Rozdělení modelů dle funkce Popisné (descriptive) Predikční (predictive) Shlukování a segmentace Souhrny Klasifikace Regrese, predikce budoucí hodnoty Analýza vztahů a závislostí Analýza časových řad

  7. Přehled metod generujících modely

  8. 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 Klasifikační model origin (America, Europe, Japan) disp weight cyl Regresní model mpg 300-800 disp weight

  9. 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í mpg Klasifikační model origin (America, Europe, Japan) disp weight

  10. 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/ ?

  11. 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: • d(x,y) > 0. • d(x,y) = 0 iff x = y. • d(x,y) = d(y,x). • 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 Dva body v n-rozměrném prostoru: Euklidovská vzdálenost P a Q =

  12. Manhattonská vzdálenost • Jak budeme počítat vzdálenost dvou cyklistů v Manhattonu?

  13. 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 p 0 350 2

  14. Normalizace atributů • Problém vyřešíme přeškálováním (normalizací) atributů: • Původní rozsahy se transformují do <0,1> nebo Kde přesně je rozhodovací hranice tříd? 1 q p 0 1 0

  15. Voronoiův diagram • http://www.cs.cornell.edu/Info/People/chew/Delaunay.html

  16. 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? ?

  17. Klasifikace

  18. Generalizace

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

  20. Nelineární klasifikátor

  21. 1NN

  22. 3NN

  23. 9NN

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

  25. 31NN – měkké rozhodnutí

  26. x2 x1 Přeučení x2 x1

  27. 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. mpgcyldisphpwgtacc 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 TRAIN TEST TRAIN TRAIN TEST TRAIN TRAIN TRAIN TEST TEST

  28. Učení a evaluace modelu Vstupy Výstup Učení, trénování modelu Trénovací Model Test. Predikce, použití modelu Model Odhady modelu Výpočet chyby modelu Chyba na testovacích datech

  29. 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)

  30. Rozhodovací hranice pro různá K Viz. demostrační interaktivní program (autor Petr Pošík)

  31. 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'});

  32. Normalizace dat • auta_norm = datasetfun( @minmax, auta(:,1:5), 'UniformOutput', false ); • auta_norm = [auta_norm{:}]; • auta = replacedata( auta, auta_norm, 1:5);

  33. Rozdělení dat I • První polovinu datasetu použijeme pro trénování. • Druhou polovinu pro testování. • Jak to udělat?

  34. 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?

  35. 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

  36. 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

  37. Najdi k nejbližších sousedů • Pro 1NN if 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 Testovací instance Trénovací množina

  38. 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 Testovací instance Trénovací množina Seřaď vzdálenosti s – vzdálenosti, t - indexy

  39. 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í 3NN testovací

  40. 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

  41. 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í 3NN testovací indexy_nejblizsich_sousedu classesCount 3 0 1 2 class = oklasifikovana_testovaci_data

  42. 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

  43. K-NN pro regresi • Jak byste použili k-NN pro regresi (pro predikci spojité veličiny)?

  44. K-NN regrese • Demostrace

  45. 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

  46. 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

  47. 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

More Related