Drzewa decyzyjne i analiza skupień w Rattle

Transkrypt

Drzewa decyzyjne i analiza skupień w Rattle
Drzewa decyzyjne oraz analiza skupień w środowisku Rattle
Wczytanie zbioru IRIS
Wystarczy przejść na zakładkę Model
I wybrać opcję „Tree” i przycisk „Wykonaj”
Parametry użyte:
Można o nich doczytać w dokumentacji Rattle: http://127.0.0.1:13936/library/rpart/html/rpart.html
Proszę doczytać w dokumentacji i odpowiedzieć na pytania:








co oznacza parametr cp? jaka jest jego wartość domyślna?
co oznacza parametr min split? jaka jest jego wartość domyślna?
Czym są węzły (ang. node) ?
Jak są numerowane węzły?
Jak się nazywają pierwszy i ostatnie węzły?
Czym się charakteryzują węzły nie będące liśćmi?
Gdy warunek podziału w danym węźle jest spełniony to przechodzimy do lewego czy prawego potomka? Odp.:
do lewego
Czym się charakteryzuje węzeł będący liściem?
Powróćmy do wydruku tekstowego drzewa: fitness.rpart
Czym są kolumny wydruku: „node”, „split” , „n”, „deviance” oraz „yval” ?






node), - posługując się graficzną reprezentacją zwróć uwagę na sposób numeracji
split - czy korzeń ma warunek
n - zauważ, że suma elementów u dzieci jest równa liczbie elementów u rodzica, np. n2+n3=n1
deviance - zauważ, że SSE u dzieci jest mniejsza niż SSE u rodzica, np. SSE2+SSE3 < SSE1
yval - za wartość teoretyczną bierze się średnią, ale można też próbować w liściach budować regresję
Czym są gwiazdki?
Wywołanie spowoduje wyświetlenie następujących wyników:
Summary of the Decision Tree model for Classification (built using 'rpart'):
n= 105
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 105 68 Iris-virginica (0.31428571 0.33333333 0.35238095)
2) pl< 2.6 33 0 Iris-setosa (1.00000000 0.00000000 0.00000000) *
3) pl>=2.6 72 35 Iris-virginica (0.00000000 0.48611111 0.51388889)
6) pl< 4.85 37 3 Iris-versicolor (0.00000000 0.91891892 0.08108108) *
7) pl>=4.85 35 1 Iris-virginica (0.00000000 0.02857143 0.97142857) *
Classification tree:
rpart(formula = class ~ ., data = crs$dataset[crs$train, c(crs$input,
crs$target)], method = "class", parms = list(split = "information"),
control = rpart.control(usesurrogate = 0, maxsurrogate = 0))
Variables actually used in tree construction:
[1] pl
Root node error: 68/105 = 0.64762
n= 105
CP nsplit rel error xerror xstd
1 0.48529 0 1.000000 1.16176 0.065042
2 0.45588 1 0.514706 0.72059 0.075178
3 0.01000 2 0.058824 0.13235 0.042185
Jeśli teraz klikniemy przycisk „Rules”
Otrzymamy:
Jeśli zaś wybierzemy opcję „Draw”
Analiza skupień
Algorytmy niehierarchiczne : kMeans
Skoro analizujemy zbiór IRIS i wiadomo, że w zbiorze tym da się idealnie wyróżnić 3 skupienia zaznaczamy taką właśnie
liczbę skupień do utworzenia.
Wtedy rezultat będzie następujący:
Cluster sizes:
[1] "31 23 96"
Data means:
sl
sw
pl
pw
5.843333 3.054000 3.758667 1.198667
Cluster centers:
sl
sw
pl
pw
1 5.203226 3.632258 1.477419 0.2774194
2 4.739130 2.934783 1.760870 0.3347826
3 6.314583 2.895833 4.973958 1.7031250
Within cluster sum of squares:
[1]
5.905806 18.293913 118.651875
Time taken: 0.00 secs
Rattle timestamp: 2012-05-15 19:04:42 ANB
Gdy klikniemy przycisk „Data plot” efekt będzie taki:
Gdy klikniemy opcję „Discriminant plot” efektem będzie następujący wykres:
Gdy klikniemy przycisk „Stats” otrzymujemy wypis wszystkich statystyk:
General cluster statistics:
$n
[1] 150
$cluster.number
[1] 3
$cluster.size
[1] 31 23 96
$diameter
[1] 1.462874 2.839014 4.153312
$average.distance
[1] 0.5682917 0.9764373 1.3911584
$median.distance
[1] 0.5291503 0.5567764 1.2369317
$separation
[1] 0.2236068 0.2236068 0.6480741
$average.toother
[1] 3.508452 3.232137 4.004540
$separation.matrix
[,1]
[,2]
[,3]
[1,] 0.0000000 0.2236068 2.0832667
[2,] 0.2236068 0.0000000 0.6480741
[3,] 2.0832667 0.6480741 0.0000000
$average.between
[1] 3.658071
$average.within
[1] 1.298783
$n.between
[1] 5897
$n.within
[1] 5278
$within.cluster.ss
[1] 142.8516
$clus.avg.silwidths
1
2
3
0.4891978 0.1085040 0.6247531
$avg.silwidth
[1] 0.5175801
$g2
NULL
$g3
NULL
$pearsongamma
[1] 0.7211164
$dunn
[1] 0.05383819
$entropy
[1] 0.898986
$wb.ratio
[1] 0.3550459
$ch
[1] 276.7978
$corrected.rand
NULL
$vi
NULL
Rattle timestamp: 2012-05-15 19:04:54 ANB
Algorytmy hierarchiczne
Graficzną reprezentacją skupień jest tzw. dendrogram.
Klikając “dendrogram”:
Klikając “Stats” otrzymujemy wykaz statystyk:
Cluster means:
sl
sw
pl
pw
[1,] 5.006000 3.418000 1.464000 0.244000
[2,] 5.929688 2.757812 4.410938 1.439062
[3,] 6.852778 3.075000 5.786111 2.097222
Rattle timestamp: 2012-05-15 19:13:59 ANB
======================================================================
General cluster statistics:
$n
[1] 150
$cluster.number
[1] 3
$cluster.size
[1] 50 64 36
$diameter
[1] 2.428992 2.714774 2.418677
$average.distance
[1] 0.698122 1.046908 1.007336
$median.distance
[1] 0.6164414 0.9899495 0.9055385
$separation
[1] 1.6401219 0.3741657 0.3741657
$average.toother
[1] 4.060413 2.836673 3.347308
$separation.matrix
[,1]
[,2]
[,3]
[1,] 0.000000 1.6401219 3.8884444
[2,] 1.640122 0.0000000 0.3741657
[3,] 3.888444 0.3741657 0.0000000
$average.between
[1] 3.398992
$average.within
[1] 0.9300922
$n.between
[1] 7304
$n.within
[1] 3871
$within.cluster.ss
[1] 79.53477
$clus.avg.silwidths
1
2
3
0.7989943 0.4113648 0.4670305
$avg.silwidth
[1] 0.5539344
$g2
NULL
$g3
NULL
$pearsongamma
[1] 0.7192328
$dunn
[1] 0.1378257
$entropy
[1] 1.072126
$wb.ratio
[1] 0.2736377
$ch
[1] 555.6662
$corrected.rand
NULL
$vi
NULL
Rattle timestamp: 2012-05-15 19:14:00 ANB
Klikając “data plot”
Klikając “discriminant plot”
Zadania do wykonania w ramach własnego zbioru:

Proszę dla swojego zbioru zbudować drzewo decyzyjne i je opisać.

Proszę dla swojego zbioru danych i algorytmu KMeans wygenerować skupienia i opisać wyniki.

Podobne dokumenty