SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Weka – szybkie wprowadzenie
Lukasz Kobyli´nski
Sages sp. z o.o.
Instytut Podstaw Informatyki PAN
Sages Weka – szybkie wprowadzenie 1 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Plan
1 Wprowadzenie
2 Praca z pakietem Weka
3 Eksploracja danych
4 Rozszerzanie pakietu i aspekty integracji
Sages Weka – szybkie wprowadzenie 2 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Wprowadzenie
Sages Weka – szybkie wprowadzenie 3 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Czym jest Weka?
Weka to pakiet, zawierajacy implementacje wielu
algorytm´ow, slu˙zacych do eksploracji danych.
ponad 80 metod klasyfikacji, regresji, grupowania, doboru
atrybut´ow,
podstawowe wsparcie dla odkrywania regul asocjacyjnych,
inne algorytmy dostepne w postaci wtyczek,
napisana w Javie,
udostepnia zar´owno interfejs okienkowy, jak i programistyczny,
istnieje mo˙zliwo´s´c integracji z innymi systemami analizy
danych.
Licencja: Weka udostepniana jest na licencji GPL 3.0. Projekty
zbudowane na podstawie Weki musza by´c udostepnione razem z
kodem ´zr´odlowym.
Sages Weka – szybkie wprowadzenie 4 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Czym jest eksploracja danych?
Eksploracja danych to proces odkrywania ukrytych informacji
w danych.
https://visualisingadvocacy.org/blog/disinformation-visualization-how-lie-datavis
Sages Weka – szybkie wprowadzenie 5 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Ewolucja podej´s´c do analizy danych
Zbieranie danych (Data Collection)
Jaki byl laczny przych´od mojej firmy w ciagu ostatnich 5 lat?
Dostep do danych (Data Access)
Jaki byl przych´od oddzialu malopolskiego w marcu ostatniego roku?
Hurtownie danych (Data Warehousing)
Jaki byl przych´od oddzialu malopolskiego w marcu ostatniego roku? Jaka
cze´s´c stanowil Krak´ow?
Eksploracja danych (Data Mining)
Jak bedzie sie ksztaltowa´c sprzeda˙z w Krakowie w kolejnym miesiacu?
Dlaczego?
Du˙ze Dane (Big Data)
Jakie wzorce zachowa´n mo˙zna zauwa˙zy´c u naszych klient´ow on-line?
Sages Weka – szybkie wprowadzenie 6 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Typowe zastosowania
Analiza danych finansowych
jakie sa trendy wynik´ow sprzeda˙zy?
Analiza danych o klientach
kt´orzy klienci sa kluczowi z punktu widzenia firmy,
kt´ore produkty beda sie sprzedawa´c w przyszlym roku?
Sages Weka – szybkie wprowadzenie 7 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Typowe zastosowania
Analiza danych finansowych
jakie sa trendy wynik´ow sprzeda˙zy?
Analiza danych o klientach
kt´orzy klienci sa kluczowi z punktu widzenia firmy,
kt´ore produkty beda sie sprzedawa´c w przyszlym roku?
Sages Weka – szybkie wprowadzenie 7 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Typowe zastosowania (2)
Analiza danych tekstowych
do jakiej kategorii mo˙zna zaklasyfikowa´c ten email?
czy ta recenzja produktu ma wyd´zwiek pozytywny, czy
negatywny?
jaka opinie ma ten polityk na Twitterze?
Sages Weka – szybkie wprowadzenie 8 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Typowe zastosowania (3)
Analiza obraz´ow
kto z moich znajomych jest widoczny na tych zdjeciach?
w jakim wieku i jakiej plci sa ci ludzie?
Sages Weka – szybkie wprowadzenie 9 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Architektura pakietu
Weka to ´srodowisko uruchomieniowe metod uczenia
maszynowego i implementacje poszczeg´olnych algorytm´ow
Weka Core
algorytmy
Classifiers
Clusterers
Associations
Filters
Attribute Selection
Wtyczki
Sages Weka – szybkie wprowadzenie 10 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Sposoby pracy z pakietem
Explorer – eksploracyjna analiza danych, interfejs zakladek, kt´ore
odpowiadaja kolejnym etapom analizy danych,
Sages Weka – szybkie wprowadzenie 11 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Sposoby pracy z pakietem
KnowledgeFlow – graficzna reprezentacja procesu przetwarzania
danych w postaci widget´ow i polacze´n miedzy nimi,
Sages Weka – szybkie wprowadzenie 11 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Sposoby pracy z pakietem
Experimenter – umo˙zliwia uruchamianie wieloetapowych lub
wielokrotnie powtarzanych eksperyment´ow.
Sages Weka – szybkie wprowadzenie 11 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Sposoby pracy z pakietem
Weka udostepnia r´ownie˙z interfejs wiersza linii polece´n
Wiersz polece´n
java -Xmx1024m weka.classifiers.trees.J48 -t
data.arff -i -k -d J48-data.model
oraz interfejs programistyczny
Interfejs programistyczny
import weka.core.converters.ConverterUtils.DataSource;
...
DataSource source = new DataSource(”/some/where/data.arff”);
Instances data = source.getDataSet();
// setting class attribute if the data format does not provide this information
// For example, the XRFF format saves the class attribute information as well
if (data.classIndex() == -1)
data.setClassIndex(data.numAttributes() - 1);
Sages Weka – szybkie wprowadzenie 11 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Skad uzyska´c informacje?
Dokumentacja i Wiki
http://www.cs.waikato.ac.nz/ml/weka/documentation.html
http://weka.wikispaces.com/
http://wiki.pentaho.com/display/DATAMINING/Pentaho+Data+
Mining+Community+Documentation
Ksia˙zka
http://www.cs.waikato.ac.nz/ml/
weka/book.html
Sages Weka – szybkie wprowadzenie 12 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Praca z pakietem Weka
Sages Weka – szybkie wprowadzenie 13 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Przygotowanie danych do analizy
Jakie dane mo˙ze analizowa´c Weka?
dane musza by´c ustrukturyzowane,
format tabelaryczny ze ´sci´sle typowanymi kolumnami,
domy´slnym formatem jest ARFF (lub XRFF), istnieje
mo˙zliwo´s´c ladowania innych typ´ow (np. CSV),
ARFF – pozwala na oznaczanie danych brakujacych,
ARFF – pozwala na zapisywania danych rzadkich (sparse
data),
istnieje mo˙zliwo´s´c odczytu/zapisu z bazy danych.
Sages Weka – szybkie wprowadzenie 14 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Format danych ARFF
Podstawowy format zapisu danych w Wece
– Attribute-Relation File Format – zbli˙zony do CSV, z
dodatkowymi metadanymi.
Nagl´owek
% 1. Title: Iris Plants Database
@RELATION iris
@ATTRIBUTE sepallength REAL
@ATTRIBUTE sepalwidth REAL
@ATTRIBUTE petallength REAL
@ATTRIBUTE petalwidth REAL
@ATTRIBUTE class {Iris-setosa,Iris-versicolor,
Iris-virginica}
Sages Weka – szybkie wprowadzenie 15 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Format danych ARFF
Dane
@DATA
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
6.9,3.1,4.9,1.5,Iris-versicolor
5.5,2.3,4.0,1.3,Iris-versicolor
6.3,3.3,6.0,2.5,Iris-virginica
5.8,2.7,5.1,1.9,Iris-virginica
6.3,?,5.6,?,Iris-virginica
Znak ? oznacza dane brakujace.
Sages Weka – szybkie wprowadzenie 16 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Format danych ARFF
Dostepne typy danych
numeric
integer (=numeric)
real (=numeric)
<nominal-specification >
string
date [<date-format>]
Na przyklad:
@ATTRIBUTE timestamp DATE ”yyyy-MM-dd HH:mm:ss”
@DATA
”2001-04-03 12:12:12”
Sages Weka – szybkie wprowadzenie 17 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Format danych ARFF
Typ relational
@attribute molecule_name {MUSK-jf78,...,NON-MUSK-199}
@attribute bag relational
@attribute f1 numeric
...
@attribute f166 numeric
@end bag
@attribute class {0,1}
...
MUSK-188,"42,...,30",1
Sages Weka – szybkie wprowadzenie 18 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Format danych ARFF – dane rzadkie
Zamiast
@data
0, X, 0, Y, "class A"
0, 0, W, 0, "class B"
Mo˙zliwy jest zapis:
@data
{1 X, 3 Y, 4 "class A"}
{2 W, 4 "class B"}
Sages Weka – szybkie wprowadzenie 19 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Dostep do bazy danych
Dostep do baz danych realizowany poprzez sterowniki JDBC
Konieczne jest:
pobranie odpowiedniego sterownika JDBC dla danej bazy,
skopiowanie pliku DatabaseUtils.props z weka.jar
(weka/experiment) do $WEKA HOME/props (domy´slnie:
$HOME/wekafiles)
edycja pliku DatabaseUtils.props i:
wskazanie ´scie˙zki do pliku sterownika,
podanie adresu URL do polaczenia z baza.
Na przyklad (DatabaseUtils.props.mysql):
jdbcDriver=org.gjt.mm.mysql.Driver
jdbcURL=jdbc:mysql://server name:3306/database name
Sages Weka – szybkie wprowadzenie 20 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Eksploracja danych
Sages Weka – szybkie wprowadzenie 21 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Eksploracja danych
Jakie zadania eksploracji danych mo˙zna realizowa´c za
pomoca Weki?
Klasyfikacja i regresja
Grupowanie
Odkrywanie regul asocjacyjnych
Ograniczanie i transformacja przestrzeni atrybut´ow
Wizualizacja danych
Sages Weka – szybkie wprowadzenie 22 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Klasyfikacja – przyklad
Ocena zdrowia pacjenta – wykonujemy badania diagnostyczne i
ankiete
ci´snienie krwi (liczba)
poziom cukru (liczba)
wystepowanie chor´ob serca w rodzinie (warto´s´c binarna)
wiek (liczba)
ple´c (M/K)
Na tej podstawie decydujemy, czy wysla´c pacjenta na badania
szczeg´olowe (podejrzenie choroby).
Sages Weka – szybkie wprowadzenie 23 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Klasyfikacja – przyklad
Ocena zdrowia pacjenta – wykonujemy badania diagnostyczne i
ankiete
ci´snienie krwi (liczba) – wysokie
poziom cukru (liczba) – wysoki
wystepowanie chor´ob serca w rodzinie (warto´s´c binarna) – tak
wiek (liczba) – 50
ple´c (M/K) – M
Na tej podstawie decydujemy, czy wysla´c pacjenta na badania
szczeg´olowe (podejrzenie choroby).
Skierowa´c na badania diagnostyczne.
Sages Weka – szybkie wprowadzenie 23 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Grupowanie – przyklad
Segmentacja klient´ow – czy w´sr´od naszych klient´ow mo˙zna
wyr´o˙zni´c rozlaczne grupy, np. wg takich parametr´ow jak wierno´s´c
marce/wra˙zliwo´s´c na ceny lub warto´sci zakup´ow/czestotliwo´s´c
wizyt.
http://www.select-statistics.co.uk/article/blog-post/customer-segmentation
Sages Weka – szybkie wprowadzenie 24 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Klasyfikacja i grupowanie – ujecie formalne
Zadanie klasyfikacji Na podstawie obserwacji wej´sciowych X i
zbioru etykiet kategorii Y = y1, y2, . . . , yn zwr´o´c przewidywana
kategorie y ∈ Y .
Uczenie z nadzorem Posiadamy zbi´or treningowy o N elementach,
w kt´orym ka˙zdy element ma przypisana wzorcowa etykiete klasy:
(d1, c1), . . . , (dn, cn). Klasyfikacja: naszym celem jest nauczy´c sie
na podstawie tych danych mapowania nowego zbioru d na c ∈ C.
Regresja: c jest ciagle.
Uczenie bez nadzoru Posiadamy zbi´or danych o N elementach,
bez ˙zadnych dodatkowych informacji na temat przypisanych
kategorii. Grupowanie: naszym zadaniem jest znale´z´c wzorce w
samych danych i nauczy´c sie dzieli´c obserwacje na rozlaczne grupy.
Sages Weka – szybkie wprowadzenie 25 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Odkrywanie regul asocjacyjnych – przyklad
Zakupy w sklepie – analizujemy historie zakup´ow klient´ow w
pewnym okresie.
Klient 1
pieluchy
mleko
maslo
piwo
Klient 2
mleko
makaron
pieluchy
pomidory
Klient 3
piwo
orzeszki
chleb
pieluchy
Klient 4
piwo
orzeszki
woda
ser
R1 : {pieluchy} ⇒ {piwo}, supp(R1) = 2, conf (R1) = 2/3
R2 : {pieluchy} ⇒ {mleko}, supp(R2) = 2, conf (R2) = 2/3
R3 : {orzeszki} ⇒ {piwo}, supp(R3) = 2, conf (R3) = 2/2 = 1
Sages Weka – szybkie wprowadzenie 26 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Odkrywanie regul asocjacyjnych – przyklad
Zakupy w sklepie – analizujemy historie zakup´ow klient´ow w
pewnym okresie.
Klient 1
pieluchy
mleko
maslo
piwo
Klient 2
mleko
makaron
pieluchy
pomidory
Klient 3
piwo
orzeszki
chleb
pieluchy
Klient 4
piwo
orzeszki
woda
ser
R1 : {pieluchy} ⇒ {piwo}, supp(R1) = 2, conf (R1) = 2/3
R2 : {pieluchy} ⇒ {mleko}, supp(R2) = 2, conf (R2) = 2/3
R3 : {orzeszki} ⇒ {piwo}, supp(R3) = 2, conf (R3) = 2/2 = 1
Sages Weka – szybkie wprowadzenie 26 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Odkrywanie regul asocjacyjnych – przyklad
Zakupy w sklepie – analizujemy historie zakup´ow klient´ow w
pewnym okresie.
Klient 1
pieluchy
mleko
maslo
piwo
Klient 2
mleko
makaron
pieluchy
pomidory
Klient 3
piwo
orzeszki
chleb
pieluchy
Klient 4
piwo
orzeszki
woda
ser
R1 : {pieluchy} ⇒ {piwo}, supp(R1) = 2, conf (R1) = 2/3
R2 : {pieluchy} ⇒ {mleko}, supp(R2) = 2, conf (R2) = 2/3
R3 : {orzeszki} ⇒ {piwo}, supp(R3) = 2, conf (R3) = 2/2 = 1
Sages Weka – szybkie wprowadzenie 26 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Odkrywanie regul asocjacyjnych – definicja formalna
Baza D jest zbiorem transakcji, D = {T1, T2, . . . , Tn}, gdzie ka˙zda
transakcja T jest niepustym zbiorem element´ow z przestrzeni
obiekt´ow, T ⊆ I, I = {i1, i2, . . . , im}.
Reguly asocjacyjne maja forme implikacji pomiedzy dwoma
zbiorami element´ow: X i Y , gdzie X, Y ∈ I i X ∩ Y = ∅:
R : X → Y . (1)
Wsparcie reguly to liczba
transakcji T w bazie D, kt´ore
zawieraja jednocze´snie X i Y :
supp(R) = |DX∪Y |. (2)
Pewno´s´c reguly to stosunek
liczby T, kt´ore zawieraja lacznie
X i Y do liczby T, kt´ore
zawieraja jedynie X:
conf (R) =
|DX∪Y |
|DX |
. (3)
Sages Weka – szybkie wprowadzenie 27 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Przeksztalcenia przestrzeni atrybut´ow
Problem: dane liczbowe w postaci ciaglej
Jak zastosowa´c na przyklad algorytmy drzewiaste?
Dyskretyzacja
Sages Weka – szybkie wprowadzenie 28 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Ograniczanie przestrzeni atrybut´ow – przyklad
W wielu zastosowaniach przestrze´n atrybut´ow analizowanych
danych jest bardzo du˙za. Przyklad: reprezentacja bag of words
Przetwarzanie jezyka naturalnego
Ala kot mie´c . . . plot
0 1 0 . . . 1
Analiza obraz´ow
barwa1 tekstura1 barwa2 . . . teksturan
0 1 0 . . . 1
Potencjalnie tysiace+ atrybut´ow.
Sages Weka – szybkie wprowadzenie 29 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Ograniczanie przestrzeni atrybut´ow
Statystyczne metody oszacowania istotno´sci atrybut´ow w
procesie eksploracji danych
InfoGainAttributeEval – przyrost informacji w stosunku do
klasy,
CfsSubsetEval – warto´s´c podzbioru atrybut´ow ze wzgledu na
mo˙zliwo´s´c przewidywania klasy oraz korelacje z innymi
atrybutami w podzbiorze,
analiza gl´ownych skladowych (Principal Components
Analysis).
Sages Weka – szybkie wprowadzenie 30 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Wizualizacja danych
Sages Weka – szybkie wprowadzenie 31 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Tryb Experimenter
Zalety trybu Experimenter
latwo´s´c por´ownywania wynik´ow dla r´o˙znych algorytm´ow, ich
parametr´ow i dla r´o˙znych zbior´ow danych,
umo˙zliwia lepsza analize wynik´ow, ni˙z Explorer,
rezultat serii eksperyment´ow mo˙zna zapsa´c do pliku lub bazy
danych,
wiele schemat´ow ewaluacji,
testy istotno´sci statystycznej.
Sages Weka – szybkie wprowadzenie 32 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Tryb KnowledgeFlow
Zalety trybu KnowledgeFlow
intuicyjny, wizualny interfejs drag-and-drop,
nieco wieksze mo˙zliwo´sci, ni˙z Explorer,
pozwala tworzenie schemat´ow przeplywu danych miedzy
modulami,
schematy moga by´c zapisywane i wykorzystywane w
przyszlo´sci.
Sages Weka – szybkie wprowadzenie 33 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Rozszerzanie pakietu i aspekty integracji
Sages Weka – szybkie wprowadzenie 34 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
System wtyczek
Sages Weka – szybkie wprowadzenie 35 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Przetwarzanie du˙zych zbior´ow danych
Mo˙zliwe rozwiazania
przyrostowe uczenie klasyfikator´ow – musza implementowa´c
interfejs UpdateableClassifier:
HoeffdingTree, IBk, KStar, LWL,
MultiClassClassifierUpdateable, NaiveBayesMultinomialText,
NaiveBayesMultinomialUpdateable, NaiveBayesUpdateable,
SGD, SGDText,
wykorzystanie wtyczki massiveOnlineAnalysis i pakietu MOA,
kt´ory zawiera algorytmy przystosowane do przetwarzania
du˙zych zbior´ow lub strumieni danych,
wykorzystanie wtyczek pozwalajacych na integracje z
Hadoopem lub Sparkiem (distributedWekaBase, Hadoop,
Spark).
Sages Weka – szybkie wprowadzenie 36 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Wykorzystanie algorytm´ow w kodzie aplikacji
Zaladowanie danych z pliku ARFF
import weka.core.converters.ConverterUtils.DataSource;
...
DataSource source = new DataSource("data.arff");
Instances data = source.getDataSet();
Wykorzystanie filtru
Standardize filter = new Standardize();
filter.setInputFormat(train);
Instances newTrain = Filter.useFilter(train, filter);
Sages Weka – szybkie wprowadzenie 37 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Wykorzystanie algorytm´ow w kodzie aplikacji
Uczenie klasyfikatora
import weka.classifiers.trees.J48;
...
String[] options = new String[1];
options[0] = "-U"; // unpruned tree
J48 tree = new J48(); // new instance of tree
tree.setOptions(options); // set the options
tree.buildClassifier(data); // build classifier
Ewaluacja klasyfikatora
import weka.classifiers.Evaluation;
import java.util.Random;
...
Evaluation eval = new Evaluation(newData);
eval.crossValidateModel(tree, newData, 10, new Random(1
Sages Weka – szybkie wprowadzenie 38 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Rozszerzanie Weki o wlasne implementacje
algorytm´ow
Sages Weka – szybkie wprowadzenie 39 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Rozszerzanie Weki o wlasne implementacje
algorytm´ow
Rozszerzanie odpowiednich klas API Weki – Filter
import weka.core.*;
import weka.core.Capabilities.*;
import weka.filters.*;
public class SimpleBatch
extends SimpleBatchFilter {
public String globalInfo() {
return "A simple batch filter that adds an
"additional attribute ’bla’ at the end "
+ "containing the index of the processed instance."
}
Sages Weka – szybkie wprowadzenie 40 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Rozszerzanie Weki o wlasne implementacje
algorytm´ow
Rozszerzanie odpowiednich klas API Weki – Filter (2)
public Capabilities getCapabilities() {
Capabilities result = super.getCapabilities();
result.enableAllAttributes();
result.enableAllClasses();
result.enable(Capability.NO_CLASS);
return result;
}
protected Instances determineOutputFormat(Instances
inputFormat) {
Instances result = new Instances(inputFormat, 0);
result.insertAttributeAt(new Attribute("bla"),
result.numAttributes());
return result;
}
Sages Weka – szybkie wprowadzenie 41 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Rozszerzanie Weki o wlasne implementacje
algorytm´ow
Rozszerzanie odpowiednich klas API Weki – Filter (2)
protected Instances process(Instances inst) {
Instances result
= new Instances(determineOutputFormat(inst), 0);
for (int i = 0; i < inst.numInstances(); i++) {
double[] values = new double[result.numAttributes()];
for (int n = 0; n < inst.numAttributes(); n++)
values[n] = inst.instance(i).value(n);
values[values.length - 1] = i;
result.add(new Instance(1, values));
}
return result;
}
Sages Weka – szybkie wprowadzenie 42 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Integracja z innymi systemami analizy danych
Inne systemy analizy danych moga r´ownie˙z korzysta´c z
implementacji algorytm´ow w Wece:
R – z wykorzystaniem paczki RWeka,
Python – z wykorzystaniem
http://pythonhosted.org/python-weka-wrapper/,
Octave – za pomoca wsparcia dla kodu Java, wbudowanego w
system,
Hadoop – za pomoca wtyczek distributedWekaBase
(obliczenia rozproszone) i distributedWekaHadoop
(implementacja Hadoopa).
Sages Weka – szybkie wprowadzenie 43 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Inne narzedzia z obszaru analityki
i eksploracji danych
Sages Weka – szybkie wprowadzenie 44 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Inne narzedzia z obszaru analityki
i eksploracji danych
Sages Weka – szybkie wprowadzenie 44 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Co dalej?
Data Warehousing
tworzenie system´ow do raportowania i analizy danych
problemy integracji, tranformacji i ladowania danych
np. Pentaho
Sages Weka – szybkie wprowadzenie 45 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Co dalej?
Data Science
analiza danych: analiza statystyczna, eksploracja danych,
uczenie maszynowe
pakiety specjalizowane lub biblioteki powiazane z jezykami
programowania
np. R, RStudio, Python z bibliotekami (numpy, scipy,
matplotlib)
Sages Weka – szybkie wprowadzenie 46 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Co dalej?
Data Science
analiza danych: analiza statystyczna, eksploracja danych,
uczenie maszynowe
pakiety specjalizowane lub biblioteki powiazane z jezykami
programowania
np. R, RStudio, Python z bibliotekami (numpy, scipy,
matplotlib)
Sages Weka – szybkie wprowadzenie 46 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Co dalej?
Big Data
analiza i przetwarzanie du˙zych danych, rzedu terabajt´ow
nowe podej´scia algorytmiczne i rozwiazania sprzetowe
np. Hadoop, Spark
Sages Weka – szybkie wprowadzenie 47 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Co dalej?
Czym sie r´o˙zni szkolenie od warsztatu?
mamy wiecej czasu,
praca indywidualna z ka˙zda osoba (grupy 4–8 osobowe),
doglebny przeglad zgadnienia + praktyczne problemy w formie
zada´n,
program dostosowany do oczekiwa´n grupy.
Sages Weka – szybkie wprowadzenie 48 / 49
Wprowadzenie Weka Eksploracja danych Rozszerzenia
Dzieki za wsp´olna prace!
Pytania?
Slack: stacjait.slack.com
E-mail: l.kobylinski@sages.com.pl
Sages Weka – szybkie wprowadzenie 49 / 49

Mais conteúdo relacionado

Destaque

Wprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache HadoopWprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache Hadoop
Sages
 

Destaque (19)

Bezpieczne dane w aplikacjach java
Bezpieczne dane w aplikacjach javaBezpieczne dane w aplikacjach java
Bezpieczne dane w aplikacjach java
 
Budowa elementów GUI za pomocą biblioteki React - szybki start
Budowa elementów GUI za pomocą biblioteki React - szybki startBudowa elementów GUI za pomocą biblioteki React - szybki start
Budowa elementów GUI za pomocą biblioteki React - szybki start
 
Technologia Xamarin i wprowadzenie do Windows IoT core
Technologia Xamarin i wprowadzenie do Windows IoT coreTechnologia Xamarin i wprowadzenie do Windows IoT core
Technologia Xamarin i wprowadzenie do Windows IoT core
 
Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...
Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...
Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...
 
Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji android
 
Wprowadzenie do technologii Big Data / Intro to Big Data Ecosystem
Wprowadzenie do technologii Big Data / Intro to Big Data EcosystemWprowadzenie do technologii Big Data / Intro to Big Data Ecosystem
Wprowadzenie do technologii Big Data / Intro to Big Data Ecosystem
 
Wprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache HadoopWprowadzenie do technologi Big Data i Apache Hadoop
Wprowadzenie do technologi Big Data i Apache Hadoop
 
Podstawy AngularJS
Podstawy AngularJSPodstawy AngularJS
Podstawy AngularJS
 
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash courseCodepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
Codepot - Pig i Hive: szybkie wprowadzenie / Pig and Hive crash course
 
Wprowadzenie do technologii Big Data
Wprowadzenie do technologii Big DataWprowadzenie do technologii Big Data
Wprowadzenie do technologii Big Data
 
Wprowadzenie do technologii Puppet
Wprowadzenie do technologii PuppetWprowadzenie do technologii Puppet
Wprowadzenie do technologii Puppet
 
Jak zacząć przetwarzanie małych i dużych danych tekstowych?
Jak zacząć przetwarzanie małych i dużych danych tekstowych?Jak zacząć przetwarzanie małych i dużych danych tekstowych?
Jak zacząć przetwarzanie małych i dużych danych tekstowych?
 
Wprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache SparkWprowadzenie do Big Data i Apache Spark
Wprowadzenie do Big Data i Apache Spark
 
Vert.x v3 - high performance polyglot application toolkit
Vert.x v3 - high performance  polyglot application toolkitVert.x v3 - high performance  polyglot application toolkit
Vert.x v3 - high performance polyglot application toolkit
 
INTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with DivanteINTERSPORT e-Commerce with Divante
INTERSPORT e-Commerce with Divante
 
E-Commerce Technology
E-Commerce TechnologyE-Commerce Technology
E-Commerce Technology
 
Magento implementation - by Divante.co
Magento implementation - by Divante.coMagento implementation - by Divante.co
Magento implementation - by Divante.co
 
E-Commerce Case Studies
E-Commerce Case StudiesE-Commerce Case Studies
E-Commerce Case Studies
 
e-Commerce Trends from 2014 to 2015 by Divante.co
e-Commerce Trends from 2014 to 2015 by Divante.coe-Commerce Trends from 2014 to 2015 by Divante.co
e-Commerce Trends from 2014 to 2015 by Divante.co
 

Semelhante a Szybkie wprowadzenie do eksploracji danych z pakietem Weka

Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
Wydawnictwo Helion
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
Wydawnictwo Helion
 
Access 2007 PL. Kurs
Access 2007 PL. KursAccess 2007 PL. Kurs
Access 2007 PL. Kurs
Wydawnictwo Helion
 
Oracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychOracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danych
Wydawnictwo Helion
 
Access 2003 PL. Kurs
Access 2003 PL. KursAccess 2003 PL. Kurs
Access 2003 PL. Kurs
Wydawnictwo Helion
 
Oracle Database 10g. Kompendium administratora
Oracle Database 10g. Kompendium administratoraOracle Database 10g. Kompendium administratora
Oracle Database 10g. Kompendium administratora
Wydawnictwo Helion
 
Access 2003 PL dla każdego
Access 2003 PL dla każdegoAccess 2003 PL dla każdego
Access 2003 PL dla każdego
Wydawnictwo Helion
 
SQL. Optymalizacja
SQL. OptymalizacjaSQL. Optymalizacja
SQL. Optymalizacja
Wydawnictwo Helion
 

Semelhante a Szybkie wprowadzenie do eksploracji danych z pakietem Weka (20)

12. Zabezpieczanie dostępu do danych
12. Zabezpieczanie dostępu do danych12. Zabezpieczanie dostępu do danych
12. Zabezpieczanie dostępu do danych
 
11. Tworzenie interfejsu użytkownika
11. Tworzenie interfejsu użytkownika11. Tworzenie interfejsu użytkownika
11. Tworzenie interfejsu użytkownika
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
 
Access 2003 PL. Biblia
Access 2003 PL. BibliaAccess 2003 PL. Biblia
Access 2003 PL. Biblia
 
10. Analizowanie potrzeb klienta i projektowanie struktury baz danych
10. Analizowanie potrzeb klienta i projektowanie struktury baz danych10. Analizowanie potrzeb klienta i projektowanie struktury baz danych
10. Analizowanie potrzeb klienta i projektowanie struktury baz danych
 
[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System
 
Access 2007 PL. Kurs
Access 2007 PL. KursAccess 2007 PL. Kurs
Access 2007 PL. Kurs
 
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
 
Microsoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
 
Inicjatywa NoSQL na przykładzie db4o
Inicjatywa NoSQL na przykładzie db4oInicjatywa NoSQL na przykładzie db4o
Inicjatywa NoSQL na przykładzie db4o
 
Oracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danychOracle. Projektowanie rozproszonych baz danych
Oracle. Projektowanie rozproszonych baz danych
 
Microsoft Access 2013
Microsoft Access 2013Microsoft Access 2013
Microsoft Access 2013
 
Access 2003 PL. Kurs
Access 2003 PL. KursAccess 2003 PL. Kurs
Access 2003 PL. Kurs
 
Oracle Database 10g. Kompendium administratora
Oracle Database 10g. Kompendium administratoraOracle Database 10g. Kompendium administratora
Oracle Database 10g. Kompendium administratora
 
BiznesWiki - zarządzanie wiedzą w stylu web 2.0
BiznesWiki - zarządzanie wiedzą w stylu web 2.0BiznesWiki - zarządzanie wiedzą w stylu web 2.0
BiznesWiki - zarządzanie wiedzą w stylu web 2.0
 
infraxstructure: Marcin Kaczmarek "SDS - Storage jako aplikacja."
infraxstructure: Marcin Kaczmarek  "SDS - Storage jako aplikacja."infraxstructure: Marcin Kaczmarek  "SDS - Storage jako aplikacja."
infraxstructure: Marcin Kaczmarek "SDS - Storage jako aplikacja."
 
Access 2003 PL dla każdego
Access 2003 PL dla każdegoAccess 2003 PL dla każdego
Access 2003 PL dla każdego
 
M4j2
M4j2M4j2
M4j2
 
M4j2
M4j2M4j2
M4j2
 
SQL. Optymalizacja
SQL. OptymalizacjaSQL. Optymalizacja
SQL. Optymalizacja
 

Mais de Sages (7)

Python szybki start
Python   szybki startPython   szybki start
Python szybki start
 
Budowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze AzureBudowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze Azure
 
Docker praktyczne podstawy
Docker  praktyczne podstawyDocker  praktyczne podstawy
Docker praktyczne podstawy
 
Angular 4 pragmatycznie
Angular 4 pragmatycznieAngular 4 pragmatycznie
Angular 4 pragmatycznie
 
Jak działa blockchain?
Jak działa blockchain?Jak działa blockchain?
Jak działa blockchain?
 
Qgis szybki start
Qgis szybki startQgis szybki start
Qgis szybki start
 
Architektura SOA - wstęp
Architektura SOA - wstępArchitektura SOA - wstęp
Architektura SOA - wstęp
 

Szybkie wprowadzenie do eksploracji danych z pakietem Weka

  • 1. Wprowadzenie Weka Eksploracja danych Rozszerzenia Weka – szybkie wprowadzenie Lukasz Kobyli´nski Sages sp. z o.o. Instytut Podstaw Informatyki PAN Sages Weka – szybkie wprowadzenie 1 / 49
  • 2. Wprowadzenie Weka Eksploracja danych Rozszerzenia Plan 1 Wprowadzenie 2 Praca z pakietem Weka 3 Eksploracja danych 4 Rozszerzanie pakietu i aspekty integracji Sages Weka – szybkie wprowadzenie 2 / 49
  • 3. Wprowadzenie Weka Eksploracja danych Rozszerzenia Wprowadzenie Sages Weka – szybkie wprowadzenie 3 / 49
  • 4. Wprowadzenie Weka Eksploracja danych Rozszerzenia Czym jest Weka? Weka to pakiet, zawierajacy implementacje wielu algorytm´ow, slu˙zacych do eksploracji danych. ponad 80 metod klasyfikacji, regresji, grupowania, doboru atrybut´ow, podstawowe wsparcie dla odkrywania regul asocjacyjnych, inne algorytmy dostepne w postaci wtyczek, napisana w Javie, udostepnia zar´owno interfejs okienkowy, jak i programistyczny, istnieje mo˙zliwo´s´c integracji z innymi systemami analizy danych. Licencja: Weka udostepniana jest na licencji GPL 3.0. Projekty zbudowane na podstawie Weki musza by´c udostepnione razem z kodem ´zr´odlowym. Sages Weka – szybkie wprowadzenie 4 / 49
  • 5. Wprowadzenie Weka Eksploracja danych Rozszerzenia Czym jest eksploracja danych? Eksploracja danych to proces odkrywania ukrytych informacji w danych. https://visualisingadvocacy.org/blog/disinformation-visualization-how-lie-datavis Sages Weka – szybkie wprowadzenie 5 / 49
  • 6. Wprowadzenie Weka Eksploracja danych Rozszerzenia Ewolucja podej´s´c do analizy danych Zbieranie danych (Data Collection) Jaki byl laczny przych´od mojej firmy w ciagu ostatnich 5 lat? Dostep do danych (Data Access) Jaki byl przych´od oddzialu malopolskiego w marcu ostatniego roku? Hurtownie danych (Data Warehousing) Jaki byl przych´od oddzialu malopolskiego w marcu ostatniego roku? Jaka cze´s´c stanowil Krak´ow? Eksploracja danych (Data Mining) Jak bedzie sie ksztaltowa´c sprzeda˙z w Krakowie w kolejnym miesiacu? Dlaczego? Du˙ze Dane (Big Data) Jakie wzorce zachowa´n mo˙zna zauwa˙zy´c u naszych klient´ow on-line? Sages Weka – szybkie wprowadzenie 6 / 49
  • 7. Wprowadzenie Weka Eksploracja danych Rozszerzenia Typowe zastosowania Analiza danych finansowych jakie sa trendy wynik´ow sprzeda˙zy? Analiza danych o klientach kt´orzy klienci sa kluczowi z punktu widzenia firmy, kt´ore produkty beda sie sprzedawa´c w przyszlym roku? Sages Weka – szybkie wprowadzenie 7 / 49
  • 8. Wprowadzenie Weka Eksploracja danych Rozszerzenia Typowe zastosowania Analiza danych finansowych jakie sa trendy wynik´ow sprzeda˙zy? Analiza danych o klientach kt´orzy klienci sa kluczowi z punktu widzenia firmy, kt´ore produkty beda sie sprzedawa´c w przyszlym roku? Sages Weka – szybkie wprowadzenie 7 / 49
  • 9. Wprowadzenie Weka Eksploracja danych Rozszerzenia Typowe zastosowania (2) Analiza danych tekstowych do jakiej kategorii mo˙zna zaklasyfikowa´c ten email? czy ta recenzja produktu ma wyd´zwiek pozytywny, czy negatywny? jaka opinie ma ten polityk na Twitterze? Sages Weka – szybkie wprowadzenie 8 / 49
  • 10. Wprowadzenie Weka Eksploracja danych Rozszerzenia Typowe zastosowania (3) Analiza obraz´ow kto z moich znajomych jest widoczny na tych zdjeciach? w jakim wieku i jakiej plci sa ci ludzie? Sages Weka – szybkie wprowadzenie 9 / 49
  • 11. Wprowadzenie Weka Eksploracja danych Rozszerzenia Architektura pakietu Weka to ´srodowisko uruchomieniowe metod uczenia maszynowego i implementacje poszczeg´olnych algorytm´ow Weka Core algorytmy Classifiers Clusterers Associations Filters Attribute Selection Wtyczki Sages Weka – szybkie wprowadzenie 10 / 49
  • 12. Wprowadzenie Weka Eksploracja danych Rozszerzenia Sposoby pracy z pakietem Explorer – eksploracyjna analiza danych, interfejs zakladek, kt´ore odpowiadaja kolejnym etapom analizy danych, Sages Weka – szybkie wprowadzenie 11 / 49
  • 13. Wprowadzenie Weka Eksploracja danych Rozszerzenia Sposoby pracy z pakietem KnowledgeFlow – graficzna reprezentacja procesu przetwarzania danych w postaci widget´ow i polacze´n miedzy nimi, Sages Weka – szybkie wprowadzenie 11 / 49
  • 14. Wprowadzenie Weka Eksploracja danych Rozszerzenia Sposoby pracy z pakietem Experimenter – umo˙zliwia uruchamianie wieloetapowych lub wielokrotnie powtarzanych eksperyment´ow. Sages Weka – szybkie wprowadzenie 11 / 49
  • 15. Wprowadzenie Weka Eksploracja danych Rozszerzenia Sposoby pracy z pakietem Weka udostepnia r´ownie˙z interfejs wiersza linii polece´n Wiersz polece´n java -Xmx1024m weka.classifiers.trees.J48 -t data.arff -i -k -d J48-data.model oraz interfejs programistyczny Interfejs programistyczny import weka.core.converters.ConverterUtils.DataSource; ... DataSource source = new DataSource(”/some/where/data.arff”); Instances data = source.getDataSet(); // setting class attribute if the data format does not provide this information // For example, the XRFF format saves the class attribute information as well if (data.classIndex() == -1) data.setClassIndex(data.numAttributes() - 1); Sages Weka – szybkie wprowadzenie 11 / 49
  • 16. Wprowadzenie Weka Eksploracja danych Rozszerzenia Skad uzyska´c informacje? Dokumentacja i Wiki http://www.cs.waikato.ac.nz/ml/weka/documentation.html http://weka.wikispaces.com/ http://wiki.pentaho.com/display/DATAMINING/Pentaho+Data+ Mining+Community+Documentation Ksia˙zka http://www.cs.waikato.ac.nz/ml/ weka/book.html Sages Weka – szybkie wprowadzenie 12 / 49
  • 17. Wprowadzenie Weka Eksploracja danych Rozszerzenia Praca z pakietem Weka Sages Weka – szybkie wprowadzenie 13 / 49
  • 18. Wprowadzenie Weka Eksploracja danych Rozszerzenia Przygotowanie danych do analizy Jakie dane mo˙ze analizowa´c Weka? dane musza by´c ustrukturyzowane, format tabelaryczny ze ´sci´sle typowanymi kolumnami, domy´slnym formatem jest ARFF (lub XRFF), istnieje mo˙zliwo´s´c ladowania innych typ´ow (np. CSV), ARFF – pozwala na oznaczanie danych brakujacych, ARFF – pozwala na zapisywania danych rzadkich (sparse data), istnieje mo˙zliwo´s´c odczytu/zapisu z bazy danych. Sages Weka – szybkie wprowadzenie 14 / 49
  • 19. Wprowadzenie Weka Eksploracja danych Rozszerzenia Format danych ARFF Podstawowy format zapisu danych w Wece – Attribute-Relation File Format – zbli˙zony do CSV, z dodatkowymi metadanymi. Nagl´owek % 1. Title: Iris Plants Database @RELATION iris @ATTRIBUTE sepallength REAL @ATTRIBUTE sepalwidth REAL @ATTRIBUTE petallength REAL @ATTRIBUTE petalwidth REAL @ATTRIBUTE class {Iris-setosa,Iris-versicolor, Iris-virginica} Sages Weka – szybkie wprowadzenie 15 / 49
  • 20. Wprowadzenie Weka Eksploracja danych Rozszerzenia Format danych ARFF Dane @DATA 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3.0,1.4,0.2,Iris-setosa 4.7,3.2,1.3,0.2,Iris-setosa 7.0,3.2,4.7,1.4,Iris-versicolor 6.9,3.1,4.9,1.5,Iris-versicolor 5.5,2.3,4.0,1.3,Iris-versicolor 6.3,3.3,6.0,2.5,Iris-virginica 5.8,2.7,5.1,1.9,Iris-virginica 6.3,?,5.6,?,Iris-virginica Znak ? oznacza dane brakujace. Sages Weka – szybkie wprowadzenie 16 / 49
  • 21. Wprowadzenie Weka Eksploracja danych Rozszerzenia Format danych ARFF Dostepne typy danych numeric integer (=numeric) real (=numeric) <nominal-specification > string date [<date-format>] Na przyklad: @ATTRIBUTE timestamp DATE ”yyyy-MM-dd HH:mm:ss” @DATA ”2001-04-03 12:12:12” Sages Weka – szybkie wprowadzenie 17 / 49
  • 22. Wprowadzenie Weka Eksploracja danych Rozszerzenia Format danych ARFF Typ relational @attribute molecule_name {MUSK-jf78,...,NON-MUSK-199} @attribute bag relational @attribute f1 numeric ... @attribute f166 numeric @end bag @attribute class {0,1} ... MUSK-188,"42,...,30",1 Sages Weka – szybkie wprowadzenie 18 / 49
  • 23. Wprowadzenie Weka Eksploracja danych Rozszerzenia Format danych ARFF – dane rzadkie Zamiast @data 0, X, 0, Y, "class A" 0, 0, W, 0, "class B" Mo˙zliwy jest zapis: @data {1 X, 3 Y, 4 "class A"} {2 W, 4 "class B"} Sages Weka – szybkie wprowadzenie 19 / 49
  • 24. Wprowadzenie Weka Eksploracja danych Rozszerzenia Dostep do bazy danych Dostep do baz danych realizowany poprzez sterowniki JDBC Konieczne jest: pobranie odpowiedniego sterownika JDBC dla danej bazy, skopiowanie pliku DatabaseUtils.props z weka.jar (weka/experiment) do $WEKA HOME/props (domy´slnie: $HOME/wekafiles) edycja pliku DatabaseUtils.props i: wskazanie ´scie˙zki do pliku sterownika, podanie adresu URL do polaczenia z baza. Na przyklad (DatabaseUtils.props.mysql): jdbcDriver=org.gjt.mm.mysql.Driver jdbcURL=jdbc:mysql://server name:3306/database name Sages Weka – szybkie wprowadzenie 20 / 49
  • 25. Wprowadzenie Weka Eksploracja danych Rozszerzenia Eksploracja danych Sages Weka – szybkie wprowadzenie 21 / 49
  • 26. Wprowadzenie Weka Eksploracja danych Rozszerzenia Eksploracja danych Jakie zadania eksploracji danych mo˙zna realizowa´c za pomoca Weki? Klasyfikacja i regresja Grupowanie Odkrywanie regul asocjacyjnych Ograniczanie i transformacja przestrzeni atrybut´ow Wizualizacja danych Sages Weka – szybkie wprowadzenie 22 / 49
  • 27. Wprowadzenie Weka Eksploracja danych Rozszerzenia Klasyfikacja – przyklad Ocena zdrowia pacjenta – wykonujemy badania diagnostyczne i ankiete ci´snienie krwi (liczba) poziom cukru (liczba) wystepowanie chor´ob serca w rodzinie (warto´s´c binarna) wiek (liczba) ple´c (M/K) Na tej podstawie decydujemy, czy wysla´c pacjenta na badania szczeg´olowe (podejrzenie choroby). Sages Weka – szybkie wprowadzenie 23 / 49
  • 28. Wprowadzenie Weka Eksploracja danych Rozszerzenia Klasyfikacja – przyklad Ocena zdrowia pacjenta – wykonujemy badania diagnostyczne i ankiete ci´snienie krwi (liczba) – wysokie poziom cukru (liczba) – wysoki wystepowanie chor´ob serca w rodzinie (warto´s´c binarna) – tak wiek (liczba) – 50 ple´c (M/K) – M Na tej podstawie decydujemy, czy wysla´c pacjenta na badania szczeg´olowe (podejrzenie choroby). Skierowa´c na badania diagnostyczne. Sages Weka – szybkie wprowadzenie 23 / 49
  • 29. Wprowadzenie Weka Eksploracja danych Rozszerzenia Grupowanie – przyklad Segmentacja klient´ow – czy w´sr´od naszych klient´ow mo˙zna wyr´o˙zni´c rozlaczne grupy, np. wg takich parametr´ow jak wierno´s´c marce/wra˙zliwo´s´c na ceny lub warto´sci zakup´ow/czestotliwo´s´c wizyt. http://www.select-statistics.co.uk/article/blog-post/customer-segmentation Sages Weka – szybkie wprowadzenie 24 / 49
  • 30. Wprowadzenie Weka Eksploracja danych Rozszerzenia Klasyfikacja i grupowanie – ujecie formalne Zadanie klasyfikacji Na podstawie obserwacji wej´sciowych X i zbioru etykiet kategorii Y = y1, y2, . . . , yn zwr´o´c przewidywana kategorie y ∈ Y . Uczenie z nadzorem Posiadamy zbi´or treningowy o N elementach, w kt´orym ka˙zdy element ma przypisana wzorcowa etykiete klasy: (d1, c1), . . . , (dn, cn). Klasyfikacja: naszym celem jest nauczy´c sie na podstawie tych danych mapowania nowego zbioru d na c ∈ C. Regresja: c jest ciagle. Uczenie bez nadzoru Posiadamy zbi´or danych o N elementach, bez ˙zadnych dodatkowych informacji na temat przypisanych kategorii. Grupowanie: naszym zadaniem jest znale´z´c wzorce w samych danych i nauczy´c sie dzieli´c obserwacje na rozlaczne grupy. Sages Weka – szybkie wprowadzenie 25 / 49
  • 31. Wprowadzenie Weka Eksploracja danych Rozszerzenia Odkrywanie regul asocjacyjnych – przyklad Zakupy w sklepie – analizujemy historie zakup´ow klient´ow w pewnym okresie. Klient 1 pieluchy mleko maslo piwo Klient 2 mleko makaron pieluchy pomidory Klient 3 piwo orzeszki chleb pieluchy Klient 4 piwo orzeszki woda ser R1 : {pieluchy} ⇒ {piwo}, supp(R1) = 2, conf (R1) = 2/3 R2 : {pieluchy} ⇒ {mleko}, supp(R2) = 2, conf (R2) = 2/3 R3 : {orzeszki} ⇒ {piwo}, supp(R3) = 2, conf (R3) = 2/2 = 1 Sages Weka – szybkie wprowadzenie 26 / 49
  • 32. Wprowadzenie Weka Eksploracja danych Rozszerzenia Odkrywanie regul asocjacyjnych – przyklad Zakupy w sklepie – analizujemy historie zakup´ow klient´ow w pewnym okresie. Klient 1 pieluchy mleko maslo piwo Klient 2 mleko makaron pieluchy pomidory Klient 3 piwo orzeszki chleb pieluchy Klient 4 piwo orzeszki woda ser R1 : {pieluchy} ⇒ {piwo}, supp(R1) = 2, conf (R1) = 2/3 R2 : {pieluchy} ⇒ {mleko}, supp(R2) = 2, conf (R2) = 2/3 R3 : {orzeszki} ⇒ {piwo}, supp(R3) = 2, conf (R3) = 2/2 = 1 Sages Weka – szybkie wprowadzenie 26 / 49
  • 33. Wprowadzenie Weka Eksploracja danych Rozszerzenia Odkrywanie regul asocjacyjnych – przyklad Zakupy w sklepie – analizujemy historie zakup´ow klient´ow w pewnym okresie. Klient 1 pieluchy mleko maslo piwo Klient 2 mleko makaron pieluchy pomidory Klient 3 piwo orzeszki chleb pieluchy Klient 4 piwo orzeszki woda ser R1 : {pieluchy} ⇒ {piwo}, supp(R1) = 2, conf (R1) = 2/3 R2 : {pieluchy} ⇒ {mleko}, supp(R2) = 2, conf (R2) = 2/3 R3 : {orzeszki} ⇒ {piwo}, supp(R3) = 2, conf (R3) = 2/2 = 1 Sages Weka – szybkie wprowadzenie 26 / 49
  • 34. Wprowadzenie Weka Eksploracja danych Rozszerzenia Odkrywanie regul asocjacyjnych – definicja formalna Baza D jest zbiorem transakcji, D = {T1, T2, . . . , Tn}, gdzie ka˙zda transakcja T jest niepustym zbiorem element´ow z przestrzeni obiekt´ow, T ⊆ I, I = {i1, i2, . . . , im}. Reguly asocjacyjne maja forme implikacji pomiedzy dwoma zbiorami element´ow: X i Y , gdzie X, Y ∈ I i X ∩ Y = ∅: R : X → Y . (1) Wsparcie reguly to liczba transakcji T w bazie D, kt´ore zawieraja jednocze´snie X i Y : supp(R) = |DX∪Y |. (2) Pewno´s´c reguly to stosunek liczby T, kt´ore zawieraja lacznie X i Y do liczby T, kt´ore zawieraja jedynie X: conf (R) = |DX∪Y | |DX | . (3) Sages Weka – szybkie wprowadzenie 27 / 49
  • 35. Wprowadzenie Weka Eksploracja danych Rozszerzenia Przeksztalcenia przestrzeni atrybut´ow Problem: dane liczbowe w postaci ciaglej Jak zastosowa´c na przyklad algorytmy drzewiaste? Dyskretyzacja Sages Weka – szybkie wprowadzenie 28 / 49
  • 36. Wprowadzenie Weka Eksploracja danych Rozszerzenia Ograniczanie przestrzeni atrybut´ow – przyklad W wielu zastosowaniach przestrze´n atrybut´ow analizowanych danych jest bardzo du˙za. Przyklad: reprezentacja bag of words Przetwarzanie jezyka naturalnego Ala kot mie´c . . . plot 0 1 0 . . . 1 Analiza obraz´ow barwa1 tekstura1 barwa2 . . . teksturan 0 1 0 . . . 1 Potencjalnie tysiace+ atrybut´ow. Sages Weka – szybkie wprowadzenie 29 / 49
  • 37. Wprowadzenie Weka Eksploracja danych Rozszerzenia Ograniczanie przestrzeni atrybut´ow Statystyczne metody oszacowania istotno´sci atrybut´ow w procesie eksploracji danych InfoGainAttributeEval – przyrost informacji w stosunku do klasy, CfsSubsetEval – warto´s´c podzbioru atrybut´ow ze wzgledu na mo˙zliwo´s´c przewidywania klasy oraz korelacje z innymi atrybutami w podzbiorze, analiza gl´ownych skladowych (Principal Components Analysis). Sages Weka – szybkie wprowadzenie 30 / 49
  • 38. Wprowadzenie Weka Eksploracja danych Rozszerzenia Wizualizacja danych Sages Weka – szybkie wprowadzenie 31 / 49
  • 39. Wprowadzenie Weka Eksploracja danych Rozszerzenia Tryb Experimenter Zalety trybu Experimenter latwo´s´c por´ownywania wynik´ow dla r´o˙znych algorytm´ow, ich parametr´ow i dla r´o˙znych zbior´ow danych, umo˙zliwia lepsza analize wynik´ow, ni˙z Explorer, rezultat serii eksperyment´ow mo˙zna zapsa´c do pliku lub bazy danych, wiele schemat´ow ewaluacji, testy istotno´sci statystycznej. Sages Weka – szybkie wprowadzenie 32 / 49
  • 40. Wprowadzenie Weka Eksploracja danych Rozszerzenia Tryb KnowledgeFlow Zalety trybu KnowledgeFlow intuicyjny, wizualny interfejs drag-and-drop, nieco wieksze mo˙zliwo´sci, ni˙z Explorer, pozwala tworzenie schemat´ow przeplywu danych miedzy modulami, schematy moga by´c zapisywane i wykorzystywane w przyszlo´sci. Sages Weka – szybkie wprowadzenie 33 / 49
  • 41. Wprowadzenie Weka Eksploracja danych Rozszerzenia Rozszerzanie pakietu i aspekty integracji Sages Weka – szybkie wprowadzenie 34 / 49
  • 42. Wprowadzenie Weka Eksploracja danych Rozszerzenia System wtyczek Sages Weka – szybkie wprowadzenie 35 / 49
  • 43. Wprowadzenie Weka Eksploracja danych Rozszerzenia Przetwarzanie du˙zych zbior´ow danych Mo˙zliwe rozwiazania przyrostowe uczenie klasyfikator´ow – musza implementowa´c interfejs UpdateableClassifier: HoeffdingTree, IBk, KStar, LWL, MultiClassClassifierUpdateable, NaiveBayesMultinomialText, NaiveBayesMultinomialUpdateable, NaiveBayesUpdateable, SGD, SGDText, wykorzystanie wtyczki massiveOnlineAnalysis i pakietu MOA, kt´ory zawiera algorytmy przystosowane do przetwarzania du˙zych zbior´ow lub strumieni danych, wykorzystanie wtyczek pozwalajacych na integracje z Hadoopem lub Sparkiem (distributedWekaBase, Hadoop, Spark). Sages Weka – szybkie wprowadzenie 36 / 49
  • 44. Wprowadzenie Weka Eksploracja danych Rozszerzenia Wykorzystanie algorytm´ow w kodzie aplikacji Zaladowanie danych z pliku ARFF import weka.core.converters.ConverterUtils.DataSource; ... DataSource source = new DataSource("data.arff"); Instances data = source.getDataSet(); Wykorzystanie filtru Standardize filter = new Standardize(); filter.setInputFormat(train); Instances newTrain = Filter.useFilter(train, filter); Sages Weka – szybkie wprowadzenie 37 / 49
  • 45. Wprowadzenie Weka Eksploracja danych Rozszerzenia Wykorzystanie algorytm´ow w kodzie aplikacji Uczenie klasyfikatora import weka.classifiers.trees.J48; ... String[] options = new String[1]; options[0] = "-U"; // unpruned tree J48 tree = new J48(); // new instance of tree tree.setOptions(options); // set the options tree.buildClassifier(data); // build classifier Ewaluacja klasyfikatora import weka.classifiers.Evaluation; import java.util.Random; ... Evaluation eval = new Evaluation(newData); eval.crossValidateModel(tree, newData, 10, new Random(1 Sages Weka – szybkie wprowadzenie 38 / 49
  • 46. Wprowadzenie Weka Eksploracja danych Rozszerzenia Rozszerzanie Weki o wlasne implementacje algorytm´ow Sages Weka – szybkie wprowadzenie 39 / 49
  • 47. Wprowadzenie Weka Eksploracja danych Rozszerzenia Rozszerzanie Weki o wlasne implementacje algorytm´ow Rozszerzanie odpowiednich klas API Weki – Filter import weka.core.*; import weka.core.Capabilities.*; import weka.filters.*; public class SimpleBatch extends SimpleBatchFilter { public String globalInfo() { return "A simple batch filter that adds an "additional attribute ’bla’ at the end " + "containing the index of the processed instance." } Sages Weka – szybkie wprowadzenie 40 / 49
  • 48. Wprowadzenie Weka Eksploracja danych Rozszerzenia Rozszerzanie Weki o wlasne implementacje algorytm´ow Rozszerzanie odpowiednich klas API Weki – Filter (2) public Capabilities getCapabilities() { Capabilities result = super.getCapabilities(); result.enableAllAttributes(); result.enableAllClasses(); result.enable(Capability.NO_CLASS); return result; } protected Instances determineOutputFormat(Instances inputFormat) { Instances result = new Instances(inputFormat, 0); result.insertAttributeAt(new Attribute("bla"), result.numAttributes()); return result; } Sages Weka – szybkie wprowadzenie 41 / 49
  • 49. Wprowadzenie Weka Eksploracja danych Rozszerzenia Rozszerzanie Weki o wlasne implementacje algorytm´ow Rozszerzanie odpowiednich klas API Weki – Filter (2) protected Instances process(Instances inst) { Instances result = new Instances(determineOutputFormat(inst), 0); for (int i = 0; i < inst.numInstances(); i++) { double[] values = new double[result.numAttributes()]; for (int n = 0; n < inst.numAttributes(); n++) values[n] = inst.instance(i).value(n); values[values.length - 1] = i; result.add(new Instance(1, values)); } return result; } Sages Weka – szybkie wprowadzenie 42 / 49
  • 50. Wprowadzenie Weka Eksploracja danych Rozszerzenia Integracja z innymi systemami analizy danych Inne systemy analizy danych moga r´ownie˙z korzysta´c z implementacji algorytm´ow w Wece: R – z wykorzystaniem paczki RWeka, Python – z wykorzystaniem http://pythonhosted.org/python-weka-wrapper/, Octave – za pomoca wsparcia dla kodu Java, wbudowanego w system, Hadoop – za pomoca wtyczek distributedWekaBase (obliczenia rozproszone) i distributedWekaHadoop (implementacja Hadoopa). Sages Weka – szybkie wprowadzenie 43 / 49
  • 51. Wprowadzenie Weka Eksploracja danych Rozszerzenia Inne narzedzia z obszaru analityki i eksploracji danych Sages Weka – szybkie wprowadzenie 44 / 49
  • 52. Wprowadzenie Weka Eksploracja danych Rozszerzenia Inne narzedzia z obszaru analityki i eksploracji danych Sages Weka – szybkie wprowadzenie 44 / 49
  • 53. Wprowadzenie Weka Eksploracja danych Rozszerzenia Co dalej? Data Warehousing tworzenie system´ow do raportowania i analizy danych problemy integracji, tranformacji i ladowania danych np. Pentaho Sages Weka – szybkie wprowadzenie 45 / 49
  • 54. Wprowadzenie Weka Eksploracja danych Rozszerzenia Co dalej? Data Science analiza danych: analiza statystyczna, eksploracja danych, uczenie maszynowe pakiety specjalizowane lub biblioteki powiazane z jezykami programowania np. R, RStudio, Python z bibliotekami (numpy, scipy, matplotlib) Sages Weka – szybkie wprowadzenie 46 / 49
  • 55. Wprowadzenie Weka Eksploracja danych Rozszerzenia Co dalej? Data Science analiza danych: analiza statystyczna, eksploracja danych, uczenie maszynowe pakiety specjalizowane lub biblioteki powiazane z jezykami programowania np. R, RStudio, Python z bibliotekami (numpy, scipy, matplotlib) Sages Weka – szybkie wprowadzenie 46 / 49
  • 56. Wprowadzenie Weka Eksploracja danych Rozszerzenia Co dalej? Big Data analiza i przetwarzanie du˙zych danych, rzedu terabajt´ow nowe podej´scia algorytmiczne i rozwiazania sprzetowe np. Hadoop, Spark Sages Weka – szybkie wprowadzenie 47 / 49
  • 57. Wprowadzenie Weka Eksploracja danych Rozszerzenia Co dalej? Czym sie r´o˙zni szkolenie od warsztatu? mamy wiecej czasu, praca indywidualna z ka˙zda osoba (grupy 4–8 osobowe), doglebny przeglad zgadnienia + praktyczne problemy w formie zada´n, program dostosowany do oczekiwa´n grupy. Sages Weka – szybkie wprowadzenie 48 / 49
  • 58. Wprowadzenie Weka Eksploracja danych Rozszerzenia Dzieki za wsp´olna prace! Pytania? Slack: stacjait.slack.com E-mail: l.kobylinski@sages.com.pl Sages Weka – szybkie wprowadzenie 49 / 49