hurtownie danych i data mining - ii.uni.wroc.pllipinski/hdidm2016/lecture01.pdf · 5 piotr lipi...

13
1 Hurtownie danych i data mining Piotr Lipiński reguly i drzewa decyzyjne Piotr Lipiński, hurtownie danych i data mining 2 MS SQL Server Business Intelligence Narzędzia do eksploracji danych są dostępne w wielu profesjonalnych pakietach oprogramowania baz i hurtowni danych lub systemów analitycznych. Przyklad: MS SQL Server Business Intelligence (wersja MS SQL Server z dodatkami do hurtowni danych, business intelligence i data mining). Microsoft SQL Server Data Tools - Business Intelligence (dodatek do MS Visual Studio umożliwiający tworzenie projektów business intelligence i data mining). Zestaw algorytmów eksploracji danych dostępny w takich pakietach jest zazwyczaj ograniczony do podstawowych metod. Dostępna jest przykladowa baza i hurtownia danych dostarczana z MS SQL Server Business Intelligence o nazwie Adventure Works 2012 (transakcyjna baza danych) i Adventure Works DW 2012 (hurtownia danych).

Upload: others

Post on 21-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

1

Hurtownie danych i data miningPiotr Lipiński

reguły i drzewa decyzyjne

Piotr Lipiński, hurtownie danych i data mining 2

MS SQL Server Business Intelligence� Narzędzia do eksploracji danych są dostępne w wielu profesjonalnych

pakietach oprogramowania baz i hurtowni danych lub systemów

analitycznych.

� Przykład:

� MS SQL Server Business Intelligence (wersja MS SQL Server z dodatkami do hurtowni danych, business intelligence i data mining).

� Microsoft SQL Server Data Tools - Business Intelligence (dodatek do MS Visual Studio umożliwiający tworzenie projektów business intelligence i data

mining).

� Zestaw algorytmów eksploracji danych dostępny w takich pakietach jest zazwyczaj ograniczony do podstawowych metod.

� Dostępna jest przykładowa baza i hurtownia danych dostarczana z MS SQL Server Business Intelligence o nazwie Adventure Works 2012 (transakcyjna baza danych) i Adventure Works DW 2012 (hurtownia danych).

Page 2: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

2

Piotr Lipiński, hurtownie danych i data mining 3

MS SQL Server Data Tools

Piotr Lipiński, hurtownie danych i data mining 4

MS SQL Server Data Tools

Page 3: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

3

Piotr Lipiński, hurtownie danych i data mining 5

MS SQL Server Data Tools

Piotr Lipiński, hurtownie danych i data mining 6

Klasyfikacja danych

� PRISM

� konstrukcja prostych reguł decyzyjnych

� ID3 / CART

� konstrukcja drzew decyzyjnych

� KNN

� Naiwny klasyfikator bayesowski

� RandomForests, AdaBoost, sieci neuronowe, SVM i inne

Page 4: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

4

Piotr Lipiński, hurtownie danych i data mining 7

Klasyfikacja danych

� Zazwyczaj klasyfikator jest tworzony przy użyciu pewnego zbioru danych

uczących zawierających informacje o obiektach i ich klasach.

� Zestaw danych uczących to zbiór

{(xi, ci) : i = 1, 2, …, N},

gdzie

xi = (xi1, xi2, …, xid) ∈ D1 × D2 × … × Dd

to opisy obiektów (obiekty są opisywane przez cechy X1, X2, …, Xd),

zaś

ci ∈ K = {K1, K2, …, Kk}

to etykiety klas przypisane poszczególnym obiektom.

Piotr Lipiński, hurtownie danych i data mining 8

Konstrukcja reguł decyzyjnych

� Zakładamy, że wszystkie atrybuty są nominalne.

� Rozpatrujemy reguły decyzyjne postaci:

Xi1 = x1 AND Xi2 = x2 AND … AND Xin = xn => C = Km

gdzie i1, i2, …, in to pewien podzbiór zbioru indeksów {1, 2, …, d}.

Page 5: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

5

Piotr Lipiński, hurtownie danych i data mining 9

Konstrukcja reguł decyzyjnychAlgorytm PRISM

0 dla każdej klasy c = K1, K2, …, Kk

1 S = {x1, x2, …, xN}

2 R = ∅

3 dla każdej pary (atrybut Xi, jego wartość xj), takiej że Xi nie występuje

w R, oblicz

P(klasa = c | Xi = xj) = (liczba obiektów klasy c, dla których Xi = xj) /(liczba wszystkich obiektów, dla których Xi = xj)

4 wybierz tę parę (Xi, xj) dla której powyższe prawdopodobieństwo jest

największe

5 R = R ∪ {(Xi, xj)}6 S’ = zbiór tych obiektów z S, dla których Xi = xj

7 jeśli wszystkie obiekty w S’ są tej samej klasy Km, to R

reprezentuje gotową regułę, zwróć ją i usuń z S

wszystkie obiekty spełniające tę regułę

w przeciwnym przypadku idź do kroku 3

8 jeśli w S są jeszcze obiekty klasy Km to idź do kroku 2

(w przeciwnym przypadku koniec jest to iteracji pętli z kroku 0)

Piotr Lipiński, hurtownie danych i data mining 10

Konstrukcja drzewa decyzyjnegoAlgorytm ID3

� Stwórz korzeń drzewa F.

� Oznaczmy go przez m.

� Rm jest oczywiście całym zestawem danych uczących.

� Znajdź taki warunek logiczny dla węzła m, który prowadzi do węzłów

potomnych mL i mR oraz podziału zbioru Rm na zbiory RmL i RmR

maksymalizującego funkcję ∆Qm, mL, mR(F).

� Jeśli znalezione rozwiązanie nie poprawia różnorodności klas

(tzn. ∆Qm, mL, mR(F) <= 0), to przerwij tę procedurę (węzeł m zostanie liściem drzewa F).

� Jeśli znalezione rozwiązanie poprawia różnorodność klas, to dołącz

węzły mL i mR do drzewa F oraz

� uruchom taką samą procedurę dla mL,

� uruchom taką samą procedurę dla mR.

Page 6: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

6

Piotr Lipiński, hurtownie danych i data mining 11

Konstrukcja drzewa decyzyjnego

� Pozostaje ustalić jak znaleźć odpowiedni warunek logiczny

podziału węzła m na węzły potomne mL i mR.

� Ograniczamy się do warunków dotyczących tylko jednego atrybutu

(tzn. warunków postaci Xi ∈ Ai, gdzie Xi jest jednym z atrybutów, a Ai

⊂ Di jest pewnym podzbiorem zbioru wartości tego atrybutu).

� Dla każdego atrybutu Xi (i = 1, 2, …, d):

� niech V(Xi) oznacza zbiór zarejestrowanych wartości atrybutu Xi w całym zestawie danych uczących (nawet dla atrybutów ciągłych ten zbiór jest skończony i |V(Xi)| ≤ N),

� sprawdźmy wszystkie podzbiory A zbioru V(Xi) i warunki postaci Xi

∈ A (do sprawdzenia jest więc 2|V(Xi)| warunków),

� razem do sprawdzenia jest więc 2|V(X1)| + 2|V(X2)| + … + 2|V(Xd)|

warunków

� można zauważyć, że dla ciągłych atrybutów Xi wystarczy

sprawdzać warunki postaci Xi ≤ a zamiast Xi ∈ A, co redukuje liczbę warunków z 2|V(Xi)| do |V(Xi)|.

Piotr Lipiński, hurtownie danych i data mining 12

Miary różnorodności klas

� Dla każdego węzła m drzewa klasyfikacyjnego:

� Niech Rm będzie podzbiorem zestawu danych uczących związanym z

tym węzłem (tzn. spełniającym – lub nie – wszystkie warunki logiczne

w węzłach nadrzędnych, zgodnie z etykietami krawędzi).

� Niech Nm będzie liczbą elementów zbioru Rm.

� Niech Nms będzie liczbą elementów zbioru Rm klasy Ks.

� Niech pms = Nms / Nm.

Page 7: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

7

Piotr Lipiński, hurtownie danych i data mining 13

Miary różnorodności klas

� Wówczas wszystkie obserwacje w węźle m przypisujemy do klasy

najmocniej reprezentowanej przez zestaw danych uczących w

węźle m:

c(m) = arg maxs pms.

� Jeśli węzeł m jest liściem, to jest to ostateczny wynik klasyfikacji. W

przeciwnym przypadku, c(m) ma charakter wyłącznie informacyjny i

jest wykorzystywane w dalszym działaniu algorytmu (ostateczny

wynik klasyfikacji obliczany jest wówczas po przejściu poddrzewa

zakorzenionego w m).

� Miara różnorodności klas w węźle m:

� powinna przyjmować wartość 0, jeśli wszystkie obserwacje w

węźle m należą do tej samej klasy,

� powinna przyjmować wartość maksymalną, jeśli wszystkie

klasy w węźle są reprezentowane przez taką samą liczbę

obserwacji, tzn. pm1 = pm2 = … = pmk = 1 / k).

Piotr Lipiński, hurtownie danych i data mining 14

Miary różnorodności klas

� Popularne miary różnorodności klas w węźle m drzewa F:

� proporcja błędnych klasyfikacji

Qm(F) = 1 – pmc(m)

� wskaźnik Giniego (używany w algorytmie CART)

Qm(F) = Σs ≠ s’ pms pms’ = Σt = 1, 2, …, k pmt(1 – pmt)

� entropia (używana w algorytmie ID3)

Qm(F) = - Σt = 1, 2, …, k pmt log pmt

Page 8: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

8

Piotr Lipiński, hurtownie danych i data mining 15

Miary różnorodności klas

� W przypadku dwóch klas otrzymujemy:

� proporcja błędnych klasyfikacji

Qm(F) = 1 – max(p, 1 – p)

� wskaźnik Giniego (używany w algorytmie CART)

Qm(F) = 2 p (1 – p)

� entropia (używana w algorytmie ID3)

Qm(F) = - p log p – (1 – p) log (1 – p)

gdzie p = pm1.

Piotr Lipiński, hurtownie danych i data mining 16

Miary różnorodności klas

� Niech m będzie węzłem wewnętrznym drzewa F (lub korzeniem),

zaś mL i mR jego potomkami.

� Niech

pL = NmL / Nm

pR = NmR / Nm

będzie proporcją liczby rekordów z podzbioru zestawu danych

uczących związanego z węzłem m, które przeszły do węzła mL i mR

odpowiednio.

� Łączna miara różnorodności klas w potomkach węzła m to:

QmL, mR(F) = pLQmL(F) + pRQmR(F).

� Różnica różnorodności klas w węźle m i jego potomkach to:

∆Qm, mL, mR(F) = Qm(F) – QmL, mR(F).

Page 9: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

9

Piotr Lipiński, hurtownie danych i data mining 17

Miary różnorodności klas

A1=?

True False

[21+, 5-] [8+, 30-]

[29+,35-] Q(A) = - 29/(29+35) log[29/(29+35)]

- 35/(35+29) log[35/(35+29)]

= 0.9937

Q(True) = - 21/(21+5) log[21/(21+5)]

- 5/(5+21) log[5/(5+21)]

= 0.7960

Q(False) = - 8/(8+30) log[8/(8+30)]

- 30/(30+8) log[30/(30+8)]

= 0.7426

� Przykład obliczeń dla entropii:

Qm(F) = - p log p – (1 – p) log (1 – p)

Piotr Lipiński, hurtownie danych i data mining 18

Miary różnorodności klas

∆Q = Q(A) - (21+5)/(29+35) Q(True)

- (8+30)/(29+35) Q(False)

= Q(A) - 26/64 Q(True) - 38/64 Q(False)

= 0.9937– 26/64 * 0.796 – 38/64 * 0.7426

= 0.5465

A1=?

True False

[21+, 5-] [8+, 30-]

[29+,35-]

Page 10: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

10

Piotr Lipiński, hurtownie danych i data mining 19

Konstrukcja drzewa decyzyjnego z ID3

-stronghighmildrain14

+weaknormalhotovercast13

+stronghighmildovercast12

+strongnormalmildsunny11

+weaknormalmildrain10

+weaknormalcoolsunny9

-weakhighmildsunny8

+strongnormalcoolovercast7

-strongnormalcoolrain6

+weaknormalcoolrain5

+weakhighmildrain4

+weakhighhotovercast3

-stronghighhotsunny2

-weakhighhotsunny1

playwindhumiditytemperatureoutlookid

Piotr Lipiński, hurtownie danych i data mining 20

Konstrukcja drzewa decyzyjnego z ID3

NO YES YES NO

YES

sunny

overcast

rainy

high normal false true

outlook

humidity windy

Page 11: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

11

Piotr Lipiński, hurtownie danych i data mining 21

Konstrukcja drzewa decyzyjnego z ID3

+strongnormalmildsunny

+weaknormalcoolsunny

-weakhighmildsunny

-stronghighhotsunny

-weakhighhotsunny

playwindhum.temp.outlook

-stronghighmildrain

+weaknormalmildrain

-strongnormalcoolrain

+weaknormalcoolrain

+weakhighmildrain

playwindhum.temp.outlook

+weaknormalhotovercast

+stronghighmildovercast

+strongnormalcoolovercast

+weakhighhotovercast

playwindhum.temp.outlook

sunny

overcast

rainy

outlook

Piotr Lipiński, hurtownie danych i data mining 22

Konstrukcja drzewa decyzyjnego z ID3

+weaknormalcoolsunny

+strongnormalcoolovercast

-strongnormalcoolrain

+weaknormalcoolrain

playwindhum.temp.outlook

cool

mild

hot

temperature

-stronghighmildrain

+stronghighmildovercast

+strongnormalmildsunny

+weaknormalmildrain

-weakhighmildsunny

+weakhighmildrain

playwindhum.temp.outlook

+weaknormalhotovercast

+weakhighhotovercast

-stronghighhotsunny

-weakhighhotsunny

playwindhum.temp.outlook

Page 12: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

12

Piotr Lipiński, hurtownie danych i data mining 23

Konstrukcja drzewa decyzyjnego z ID3� Rozpatrzmy węzeł m drzewa klasyfikującego F.

� Niech p = Nm+ / Nm, gdzie Nm

+ to liczba pozytywnych rekordów (klasy K1) w podzbiorze zestawu danych uczących związanym z węzłem m, zaś to Nm liczba wszystkich rekordów związanych z węzłem m.

� Entropia dla węzła m wynosiQm(F) = - p log p – (1 – p) log (1 – p).

� Entropia mierzy pewnego rodzaju zaburzenie w węźle m.

Piotr Lipiński, hurtownie danych i data mining 24

Konstrukcja drzewa decyzyjnego z ID3

+strongnormalmildsunny

+weaknormalcoolsunny

-weakhighmildsunny

-stronghighhotsunny

-weakhighhotsunny

playwindhum.temp.outlook

-stronghighmildrain

+weaknormalmildrain

-strongnormalcoolrain

+weaknormalcoolrain

+weakhighmildrain

playwindhum.temp.outlook

+weaknormalhotovercast

+stronghighmildovercast

+strongnormalcoolovercast

+weakhighhotovercast

playwindhum.temp.outlook

sunny

overcast

rainy

outlook

Page 13: Hurtownie danych i data mining - ii.uni.wroc.pllipinski/HDiDM2016/lecture01.pdf · 5 Piotr Lipi ński, hurtownie danych i data mining 9 Konstrukcja reguł decyzyjnych Algorytm PRISM

13

Piotr Lipiński, hurtownie danych i data mining 25

Konstrukcja drzewa decyzyjnego z ID3

+strongnormalmildsunny

+weaknormalcoolsunny

-weakhighmildsunny

-stronghighhotsunny

-weakhighhotsunny

playwindhum.temp.outlook

-stronghighmildrain

+weaknormalmildrain

-strongnormalcoolrain

+weaknormalcoolrain

+weakhighmildrain

playwindhum.temp.outlook

+weaknormalhotovercast

+stronghighmildovercast

+strongnormalcoolovercast

+weakhighhotovercast

playwindhum.temp.outlook

sunny

overcast

rainy

outlook

Który atrybut sprawdzać tutaj?

Gain (msunny

, Humidity) = .970 - (3/5) 0.0 - (2/5) 0.0 = .970

Gain (msunny

, Temperature) = .970 - (2/5) 0.0 - (2/5) 1.0 - (1/5) 0.0 = .570

Gain (msunny

, Wind) = .970 - (2/5) 1.0 - (3/5) .918 = .019