Guest User

Untitled

a guest
Jul 18th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.22 KB | None | 0 0
  1. #b <- commandArgs()
  2.  
  3. #data <- read.delim(b[6], header=TRUE, sep = ",", dec=".", fill = TRUE, comment.char="")
  4. #mindensity <- as.numeric(b[7])
  5. #tol <- as.numeric(b[8])
  6. #ctol <- as.numeric(b[9])
  7. #width <- as.numeric(b[10])
  8.  
  9. data <- read.delim("iris.txt", header=TRUE, sep = ",", dec=".", fill = TRUE, comment.char="")
  10. mindensity <- .3
  11. tol <- 0.0001
  12. ctol <- .5
  13. width <- .45
  14. len <- length(data[1,])-1
  15. coef <- 1/(length(data[,1])*width^len)
  16. coef2 <- (1/((2*pi)^(len/2)))
  17. coef3 <- 1/(length(data[,1])*width^(len+2))
  18. denom <- 2*width^2
  19. attractors <- data[,1:len]
  20.  
  21.  
  22. for(i in 1:length(data[,1])) {
  23. print(i)
  24. xt <- data[i,1:len]
  25. xt1 <- data[i,1:len]
  26. while(1) {
  27. sumk <- array(0,dim=len)
  28. for(j in 1:length(data[,1])) {
  29. sumk <- sumk + (coef2 * exp((-1*(as.numeric(dist(rbind(xt,data[j,1:len]),method="euclidean")))^2)/denom)) * (data[j,1:len] - xt)
  30. }
  31. xt1 <- xt + mindensity*coef3*sumk
  32. if(dist(rbind(xt1,xt),method="euclidean") <= tol) break
  33. xt <- xt1
  34. }
  35. sumk <- 0
  36. for(j in 1:length(data[,1])) {
  37. sumk <- sumk + coef2 * exp((-1*(as.numeric(dist(rbind(xt1,data[j,1:len]),method="euclidean")))^2)/denom)
  38. }
  39. if((coef * sumk) < mindensity) {
  40. attractors[i,] <- array(Inf, dim=len)
  41. } else {
  42. attractors[i,] <- xt1
  43. }
  44. }
  45.  
  46. for(i in 1:length(attractors[,1])) {
  47. if(attractors[i,1] == Inf){
  48. min <- Inf
  49. xt <- data[i,1:len]
  50. for(j in 1:length(attractors[,1])) {
  51. if(dist(rbind(data[i,1:len],attractors[j,]),method="euclidean") < min) {
  52. min <- dist(rbind(data[i,1:len],attractors[j,]),method="euclidean")
  53. xt <- attractors[j,]
  54. }
  55. }
  56. attractors[i,] <- xt
  57. }
  58. }
  59.  
  60. dens_attractors <- list()
  61. clusters <- array(0,dim=length(data[,1]))
  62. c_cluster <- 0
  63. for(i in 1:length(data[,1])) {
  64. if(clusters[i] == 0) {
  65. dens_attractors[length(dens_attractors)+1] <- i
  66. c_cluster <- c_cluster + 1
  67. clusters[i] <- c_cluster
  68. for(j in i:length(attractors[,1])) {
  69. if(clusters[j] == c_cluster) {
  70. for(k in i:length(attractors[,1])) {
  71. if(clusters[k] == 0)
  72. if(dist(rbind(attractors[j,],attractors[k,]),method="euclidean") <= ctol)
  73. clusters[k] <- c_cluster
  74. }
  75. }
  76. }
  77. }
  78. }
Add Comment
Please, Sign In to add comment