hurtownie danych i data mining - ii.uni.wroc.pllipinski/hdidm2016/lecture01.pdf · 5 piotr lipi...
TRANSCRIPT
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).
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
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
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}.
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.
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.
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
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).
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-]
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
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
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
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