Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. library(AMORE)
  2.  
  3. # użyta baza: ChickWeight
  4. #zastosowana metoda: hold-out, lamba=2/3
  5.  
  6.  
  7.  
  8. # zmiana typow danych przyswajalnych dla sieci neuronowej
  9. ChickWeight2 = data.frame(weight=ChickWeight[,1],
  10. Time=ChickWeight[,2],
  11. Chick=as.numeric(ChickWeight[,3]),
  12. Diet=as.numeric(ChickWeight[,4]))
  13.  
  14. # funckja zamieniajaca wartosci na reprezentacje binarna
  15. target<-function(x)
  16. {
  17. n<-length(x)
  18. wartosci<-levels(x)
  19. l<-length(wartosci)
  20. T<-matrix(0,nrow=n,ncol=l)
  21. for(i in 1:l)
  22. T[,i]<-(x==wartosci[i])
  23. colnames(T)<-wartosci
  24. return(T)
  25. }
  26.  
  27. # przedstawienie stosowanych diet jako reprezentacje binarne
  28. diety = target(ChickWeight$Diet)
  29.  
  30. # wyliczenie ilosci danych
  31. l.danych = nrow(ChickWeight2)
  32. l.trenujaca = floor((2/3)*l.danych)
  33.  
  34. # wylosowanie danych pod trenowanie i testowanie sieci
  35. set.seed(10)
  36. idxTren = sample(1:l.danych, l.trenujaca)
  37. idxTest = setdiff(1:l.danych, idxTren)
  38.  
  39. # inicjalizacja sieci - 3 wejscia (masa, czas, kurczak), 4 wyjscia (1 z 4 diet) oraz 3 warst ukrytych
  40. siec = newff(n.neurons = c(3,3,4), learning.rate.global = 0.0001, momentum.global = 0.5,
  41. hidden.layer = "sigmoid", output.layer = "purelin",
  42. method = "ADAPTgdwm", error.criterium = "LMS")
  43.  
  44. # trenowanie sieci
  45. wynik = train(siec, ChickWeight2[idxTren, -4], diety[idxTren,],
  46. error.criterium = "LMS", report = "TRUE",
  47. show.step = 10, n.shows = 1000)
  48.  
  49. # wykres bledu
  50. plot(wynik$Merror,type='l',xlab = "iteracja x10", ylab = "blad", col = "darkred")
  51.  
  52. # test wytrenowanej sieci na pozostalej czesci danych
  53. y = sim(wynik$net,ChickWeight2[idxTest, -4])
  54. colnames(y) = c("1","2","3","4")
  55. y
  56.  
  57. # funkcja przedstawiajaca rozpoznane wyniki
  58. test.klasyf = function (zad,wy){
  59. zadane = max.col(zad)
  60. rozpoznane = max.col(wy)
  61. print(table(zadane,rozpoznane))
  62. }
  63.  
  64. # inicjalizacja funkcji
  65. test = test.klasyf(diety[idxTest,],y)
  66.  
  67. # obliczenie i wyswietlenie wyniku
  68. cat("Dokladnossc klasyfikacji: ", sum(diag(test)/sum(test))*100, "%")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement