Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(AMORE)
- # użyta baza: ChickWeight
- #zastosowana metoda: hold-out, lamba=2/3
- # zmiana typow danych przyswajalnych dla sieci neuronowej
- ChickWeight2 = data.frame(weight=ChickWeight[,1],
- Time=ChickWeight[,2],
- Chick=as.numeric(ChickWeight[,3]),
- Diet=as.numeric(ChickWeight[,4]))
- # funckja zamieniajaca wartosci na reprezentacje binarna
- target<-function(x)
- {
- n<-length(x)
- wartosci<-levels(x)
- l<-length(wartosci)
- T<-matrix(0,nrow=n,ncol=l)
- for(i in 1:l)
- T[,i]<-(x==wartosci[i])
- colnames(T)<-wartosci
- return(T)
- }
- # przedstawienie stosowanych diet jako reprezentacje binarne
- diety = target(ChickWeight$Diet)
- # wyliczenie ilosci danych
- l.danych = nrow(ChickWeight2)
- l.trenujaca = floor((2/3)*l.danych)
- # wylosowanie danych pod trenowanie i testowanie sieci
- set.seed(10)
- idxTren = sample(1:l.danych, l.trenujaca)
- idxTest = setdiff(1:l.danych, idxTren)
- # inicjalizacja sieci - 3 wejscia (masa, czas, kurczak), 4 wyjscia (1 z 4 diet) oraz 3 warst ukrytych
- siec = newff(n.neurons = c(3,3,4), learning.rate.global = 0.0001, momentum.global = 0.5,
- hidden.layer = "sigmoid", output.layer = "purelin",
- method = "ADAPTgdwm", error.criterium = "LMS")
- # trenowanie sieci
- wynik = train(siec, ChickWeight2[idxTren, -4], diety[idxTren,],
- error.criterium = "LMS", report = "TRUE",
- show.step = 10, n.shows = 1000)
- # wykres bledu
- plot(wynik$Merror,type='l',xlab = "iteracja x10", ylab = "blad", col = "darkred")
- # test wytrenowanej sieci na pozostalej czesci danych
- y = sim(wynik$net,ChickWeight2[idxTest, -4])
- colnames(y) = c("1","2","3","4")
- y
- # funkcja przedstawiajaca rozpoznane wyniki
- test.klasyf = function (zad,wy){
- zadane = max.col(zad)
- rozpoznane = max.col(wy)
- print(table(zadane,rozpoznane))
- }
- # inicjalizacja funkcji
- test = test.klasyf(diety[idxTest,],y)
- # obliczenie i wyswietlenie wyniku
- cat("Dokladnossc klasyfikacji: ", sum(diag(test)/sum(test))*100, "%")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement