ROZGRZEWKA PRZYKŁAD 23 #liniowa funkcja - e

Transkrypt

ROZGRZEWKA PRZYKŁAD 23 #liniowa funkcja - e
Laboratorium nr 5 z wielowymiarowej analizy danych – Daniel Kosiorowski
ROZGRZEWKA
x <- rlnorm(100)
# szacowanie parametrów metodą NW#
library(MASS)
wyn1=fitdistr(x, "lognormal")
wyn2=fitdistr(x, "exponential")
wyn1
wyn2
wyn1$loglik
wyn2$loglik
Zadanie: W systemie MOODLE mamy zbiór danych DGP_1 dotyczący liczby
popełnionych przestępstw i wykroczeń w podregionach Polski w latach 2006-2007 z
uwzględnieniem kategorii przestępstwa. Dopasować odpowiedni rozkład gamma do
zmiennej – wykrywalność przestępstw (WYK).
PRZYKŁAD 23 #liniowa funkcja dyskryminacyjna Fishera#
m1<-c(0,5)
m2<-c(10,5)
k<-cbind(k1,k2)
cov<-diag(2)
dane1<-mvrnorm(500,m1,cov,empirical=TRUE)
dane2<-mvrnorm(500,m2,cov,empirical=TRUE)
dane<-rbind(dane1,dane2)
plot(dane, pch=19, cex=1.6)
DANE <- data.frame(dane, etykieta = rep(c("A","B"), rep(500,2)))
train <- sample(1:1000, 100)
table(DANE$etykieta[train])
z <- lda(etykieta~.,DANE, prior = c(1,1)/2, subset = train)
z
tu otrzymamy coś podobnego do poniższego komunikatu
Coefficients of linear discriminants:
LD1
X1 1.079596
X2 0.126271
1
Laboratorium nr 5 z wielowymiarowej analizy danych – Daniel Kosiorowski
Tworzymy wektor xx – wektor dyskryminacyjny Fishera
xx<-c(1.079,0.126)
w=dane%*%xx
hist(w)
predict(z, DANE[-train, ])$class
predict(z, c(0,3) ) $class
TEST1<-mvrnorm(100,m1,cov,empirical=TRUE)
TEST2<-mvrnorm(100,c(5,5),cov,empirical=TRUE)
predict(z, data.frame(TEST1) ) $class
predict(z, data.frame(TEST2) ) $class
zadanie:
W systemie MOODLE mamy zbiór danych DGP_1 dotyczący liczby popełnionych
przestępstw i wykroczeń w podregionach Polski w latach 2006-2007 z uwzględnieniem kategorii
przestępstwa tzn. KR – kryminalne, G – gospodarcze, Z – przeciwko zdrowiu, WO – przeciw wolności,
RO – przeciw rodzinie, MIE – mieniu, DRO – drogowe, oraz ich wykrywalności – WY, faktycznej liczby
ludności - LL, stopy bezrobocia - BEZR, przeciętnego wynagrodzenia brutto – WYN.
1. Załadować plik do programu R
2. Liczby przestępstw i wykroczeń podzielić przez liczby ludności w regionach
3. Usunąć z macierzy danych zmienną LL2006
4. Policzyć medianę wykrywalności przestępstw – następnie zastąpić zmienną wykrywalność (WY)
zmienną binarną skonstruowaną w następujący sposób – jeżeli wartość zmiennej
WY>MEDIANA(WY)=> 1, jeżeli wartość zmiennej WY<=MEDIANA(WY)=> -1.
5. Policzyć liniową funkcję dyskryminacyjną Fishera dla wybranych przez siebie 2 zmiennych
dotyczących przestępczości i skonstruowanej w punkcie 4 zmiennej zawierającej etykiety „-1” i „1”.
6. Czy twoja funkcja dyskrymiancyjna dobrze się sprawuje?
PRZYKŁAD 24 „nowocześniejsze algorytmy analizy skupisk”
library(MASS)
m1<-c(-5,7)
m2<-c(5,7)
k1<-seq(from=-5, to=5,length=100)
k2<-0.1*k1^2+0.2*rnorm(100)
k<-cbind(k1,k2)
cov<-diag(2)
dane1<-mvrnorm(100,m1,cov,empirical=TRUE)
dane2<-mvrnorm(100,m2,cov,empirical=TRUE)
dane<-rbind(dane1,dane2,k)
plot(dane, pch=19, cex=1.6)
2
Laboratorium nr 5 z wielowymiarowej analizy danych – Daniel Kosiorowski
library(cluster)
pamx <- pam(dane, 2) #algorytm PAM – podział wokół medoidów#
pamx
summary(pamx)
plot(pamx)
pamx$clustering
plot(dane, pch=19, cex=1.6,col= pamx$clustering)
km <- kmeans(dane, 2) #k – średnie raz jeszcze#
plot(dane, pch=19, cex=1.6,col= km$cluster)
por<-silhouette(km$cluster,dist(dane))
plot(por)
km1 <- kmeans(dane, 3)
plot(dane, pch=19, cex=1.6,col= km1$cluster)
por<-silhouette(km1$cluster,dist(dane))
plot(por)
pamx <- pam(dane, 3)
pamx
summary(pamx)
plot(pamx)
pamx$clustering
plot(dane, pch=19, cex=1.6,col= pamx$clustering)
fannyx <- fanny(dane, 3) # rozmyte grupowanie danych algorytm FANNY#
summary(fannyx)
plot(fannyx)
fannyx$clustering
?votes.repub #ciekawy zbiór danych#
?dv #także metoda podziału danych#
grup1<-diana(votes.repub, metric = "manhattan", stand = TRUE)
print(grup1)
plot(grup1)
?agnes #także medoda podzaiłu danych#
grup2<-agnes(votes.repub, diss = inherits(x, "dist"), metric = "euclidean",
stand = TRUE, method = "average", par.method)
grup2
plot(grup2)
zadanie: Pogrupować podregiony Polski ze zbióru danych DGP_1 z Moodle – wybrać
trzy zmienne
3
Laboratorium nr 5 z wielowymiarowej analizy danych – Daniel Kosiorowski
(WPROWADZENIE DO ANALIZY SKUPISK) W analizie skupisk naszym celem jest pogrupowanie n
obiektów rozpatrywanych ze względu na p zmiennych C 0 {x1,..., xn } na k homogenicznych skupisk,
gdzie k jest także nieznane (zakłada się, że k jest mniejsze niż n ). Innymi słowy naszym celem jest
znaleźć optymalny podział C 0 na k homogenicznych rozłącznych niepustych zbiorów C1,...,Ck , k 2
, Ci
Cj
, i
j,
Ci
C 0 . Grupę nazwiemy homogeniczną, jeśli jej członkowie różnią się
istotnie od członków innych grup.
OCENA JAKOŚCI GRUPOWANIA DANYCH W SKUPISKA
Metoda oceny jakości procedury podziału danych na skupiska znana jako Silhouette została
zaproponowana przez Rousseeuwa (1987). U podstaw metody leży następująca zasada. Rozważmy
pewien obiekt i oraz niech A oznacza wszystkie obiekty skupiska, w którym znajduje się obiekt i . W
przypadku, gdy A zawiera oprócz siebie samego inne obiekty niż obiekt i możemy policzyć a(i)
przeciętną odległość obiektu i do obiektów z A . Rozważmy teraz skupisko C , które jest różne od
skupiska A , możemy policzyć d(i,C ) przeciętną odległość obiektu i do wszystkich obiektów z C . Po
policzeniu d(i,C ) dla wszystkich skupisk C
A,
można wybrać najmniejszą wartość tzn, b(i)
minimum nazywamy sąsiadem, d(i, B)
min d(i,C ) . Skupisko B , dla którego osiągamy to
C A
b(i) . Wprowadzamy liczbę
s(i)
1 a(i) / b(i) a(i)
0
a(i)
b(i) / a(i) 1 a(i)
b(i)
b(i) .
b(i)
Możemy sporządzić wykres pokazujący wartość s(i) dla każdego z obiektów poddawanych analizie
skupisk. Zauważmy, że zachodzi
1
s(i)
1 . Im wyższe wartości s(i) tym lepszy wynik podziału
danych na skupiska. Można policzyć też przeciętne s(i) pokazujące jakość podziału danych z
uwzględnieniem wszystkich skupisk.
PRZYKŁAD 25 #twarze Chernoffa#
library(aplpack)
data(longley)
faces(longley[1:9,],face.type=1)
plot(longley[1:16,2:3],bty="n")
a<-faces(longley[1:16,],plot=FALSE)
plot.faces(a,longley[1:16,2],longley[1:16,3],width=35,height=30)
zadanie: wybrać losowo 10 obserwacji ze zbioru DGP_1 z MOODLE, zastosować
twarze Chernoffa do wylosowanej próby.
4

Podobne dokumenty