K- рд╕рд╛рдзрди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдпрд░рд▓реЗрд╕ рдПрдХреНрд╕реЗрд╕ рдкреЙрдЗрдВрдЯ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░рдирд╛

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреВрд░рд╕рдВрдЪрд╛рд░ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдбреЗрдЯрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднреВ-рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рджреВрд░рд╕рдВрдЪрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрд╡рдпрдВ рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдлреИрд▓рд╛рд╡ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬрдмрд░рджрд╕реНрдд рдореВрд▓реНрдп рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдбреЗрдЯрд╛


K- рд╕рд╛рдзрди рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреНрдпреВрдпреЙрд░реНрдХ рдореЗрдВ рдореБрдлреНрдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рд▓рд┐рдП рднреМрдЧреЛрд▓рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдбреЗрдЯрд╛рд╕реЗрдЯ NYC рдУрдкрди рдбреЗрдЯрд╛ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, k- рд╕рд╛рдзрди рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдИрдлрд╛рдИ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдпрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ:

#1. Prepare data newyork<-read.csv("NYC_Free_Public_WiFi_03292017.csv") attach(newyork) newyorkdf<-data.frame(newyork$LAT,newyork$LON) 

рдпрд╣рд╛рдБ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:



рд╣рдо рд╕рдореВрд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ


рдЕрдЧрд▓рд╛, рд╣рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЧреНрд░рд╛рдл рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИред

 #2. Determine number of clusters wss <- (nrow(newyorkdf)-1)*sum(apply(newyorkdf,2,var)) for (i in 2:20) wss[i] <- sum(kmeans(newyorkdf, centers=i)$withinss) plot(1:20, wss, type="b", xlab="Number of Clusters", ylab="Within groups sum of squares") 



рдЧреНрд░рд╛рдл рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рдХреНрд░ рд▓рдЧрднрдЧ 11. рдкрд░ рдХреИрд╕реЗ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ k- рд╕рд╛рдзрди рдореЙрдбрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

K- рд╕рд╛рдзрди рд╡рд┐рд╢реНрд▓реЗрд╖рдг


K- рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 #3. K-Means Cluster Analysis set.seed(20) fit <- kmeans(newyorkdf, 11) # 11 cluster solution # get cluster means aggregate(newyorkdf,by=list(fit$cluster),FUN=mean) # append cluster assignment newyorkdf <- data.frame(newyorkdf, fit$cluster) newyorkdf newyorkdf$fit.cluster <- as.factor(newyorkdf$fit.cluster) library(ggplot2) ggplot(newyorkdf, aes(x=newyork.LON, y=newyork.LAT, color = newyorkdf$fit.cluster)) + geom_point() 

Newyorkdf рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдЕрдХреНрд╖рд╛рдВрд╢, рджреЗрд╢рд╛рдВрддрд░ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рд▓реЗрдмрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ:
> newyorkdf
newyork.lat newyork.lon fit.cluster
1 40.75573 -73.94458 1
2 40.75533 -73.94413 1
3 40.75575 -73.94517 1
4 40.75575 -73.94517 1
5 40.75575 -73.94517 1
6 40.75575 -73.94517 1
...
80 40.84832 -73.82075 11

рдпрд╣рд╛рдБ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЪрд┐рддреНрд░рдг рд╣реИ:



рдпрд╣ рдЪрд┐рддреНрд░рдг рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдиреНрдпреВрдпреЙрд░реНрдХ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рджреЗрдЦреЗрдВ рддреЛ рджреГрд╢реНрдп рдЕрдзрд┐рдХ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

 # devtools::install_github("zachcp/nycmaps") library(nycmaps) map(database="nyc") #this should also work with ggplot and ggalt nyc <- map_data("nyc") gg <- ggplot() gg <- gg + geom_map( data=nyc, map=nyc, aes(x=long, y=lat, map_id=region)) gg + geom_point(data = newyorkdf, aes(x = newyork.LON, y = newyork.LAT), colour = newyorkdf$fit.cluster, alpha = .5) + ggtitle("New York Public WiFi") 



рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдПрдХ рд╢рд╣рд░ рдореЗрдВ рд╡рд╛рдИрдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рджреЗрддреА рд╣реИред рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ 1 рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рднреМрдЧреЛрд▓рд┐рдХ рдХреНрд╖реЗрддреНрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд╛рдИрдлрд╛рдИ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдХреНрд▓рд╕реНрдЯрд░ 6 рдореЗрдВ рдХрдо рдХрдиреЗрдХреНрд╢рди рдХрдо рд╡рд╛рдИрдлрд╛рдИ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддрд╛ рд╣реИред

K-Means рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдЕрдХреЗрд▓реЗ рд╣рдореЗрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдлрд╝рд┐рдХ рдЙрдЪреНрдЪ рдпрд╛ рдирд┐рдореНрди рдХреНрдпреЛрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреНрд▓рд╕реНрдЯрд░ 6 рдореЗрдВ рдЙрдЪреНрдЪ рдЬрдирд╕рдВрдЦреНрдпрд╛ рдШрдирддреНрд╡ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрдкреАрдб рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдо рдХрдиреЗрдХреНрд╢рди рд╣реЛрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рднреМрдЧреЛрд▓рд┐рдХ рд╕рдореВрд╣реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореВрд▓ рд▓реЗрдЦ рдпрд╣рд╛рдБ рд╣реИ ред

Source: https://habr.com/ru/post/hi442094/


All Articles