рдЖрд░ рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рдкрд░рд┐рдЪрдп

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

рд▓реЗрдХрд┐рди, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╕рд┐рдХреНрдХреЗ рдХрд╛ рдлреНрд▓рд┐рдк рдкрдХреНрд╖ (рдпрд╛ рдмрд▓реНрдХрд┐, рджреБрднрд╛рд╖рд┐рдпрд╛ рдЖрд░) рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдЧрддрд┐ рд╣реИ ред рдЖрд░ рд╡реЗрдХреНрдЯрд░рдХреГрдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд▓рд╛рдЧреВ рдкрд░рд┐рд╡рд╛рд░ рдЫреЛрд░реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдЪреАрдиреА рд╣реИ, рдФрд░ рдЕрдХреНрд╕рд░ * рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ "рддреНрд╡рд░рдг" рдХрд╛ рдкреНрд░рднрд╛рд╡ рд╕реАрдзреЗ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл, рд╕рдВрдЧрдгрдирд╛ рдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реЛрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрд░реНрдХрд╕рдВрдЧрдд рдХрджрдо рд▓рдЧрддрд╛ рд╣реИ (рдпрджрд┐ рд╣рдо рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рджреЛ рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - "рдлреЙрд░реНрдЪреНрдпреВрдирд░" (рдЖрдкрдХреЛ рдлреЛрд░рдЪ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ) рдФрд░ "doSNOW" (рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ)ред CRAN рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
install.packages(c("foreach","doSNOW")) 


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб - рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рддреАрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХрд╛ "рдХреНрд▓рд╕реНрдЯрд░" рддреИрдпрд╛рд░ рдХрд░рдирд╛:
 library(foreach) library(doSNOW) cluster <- makeCluster(3, type = "SOCK", outfile="") registerDoSNOW(cluster) 


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ 1 рд╕реЗ 10000 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╡рд░реНрдЧ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ:
 system.time ({ sum.par <- foreach(i=1:10000, .combine='+') %dopar% { i^2 }}) 

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЪрдХреНрд░ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдореВрд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдСрдкрд░реЗрд╢рди рд╣реИ (рдФрд░ рдЕрдХреНрд╕рд░ рдпреЗ рдлрд╝рдВрдХреНрд╢рди рд╕реА, рдЖрд░рдмреАрдПрдирдбреА, рд╕рд┐рдмрд┐рдВрдб - рдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрд┐рдд рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ)ред рдпрджрд┐ рдпрд╣ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рд╕рдореВрд╣ рдмрдирд╛рдирд╛ рд╣реИ, рддреЛ .inorder = F рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдХреБрдЫ рд╣рдж рддрдХ рдЧрдгрдирд╛ рдореЗрдВ рддреЗрдЬреА рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐% dopar% рдХреЗ рдмрдЬрд╛рдп% do% рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЧрдгрдирд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рдПрдЧреА (рдЕрд░реНрдерд╛рдд, рд╕рд╛рдорд╛рдиреНрдп рд▓реВрдк рдореЗрдВ)ред рд╡реИрд╕реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рд╕рдордп рдХрд╛рдлреА рдХрдо рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмреИрд▓реЗрдВрд╕ рд╢реАрдЯ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди рд╕реЗ рджреВрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд╣реЗрдб рдХреА рд▓рд╛рдЧрддред

рдЪрд▓рд┐рдП рдФрд░ рднреА рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ x рдХрд╛ рд╡реЗрдХреНрдЯрд░ рд╣реИред

рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 trials <- 10000 n <- 24000 alfa <- 1.6 beta <- 3 set.seed(1) x <- c(rgamma(n/3, shape=alfa, scale=beta), rgamma(n/3, shape=3*alfa, scale=4*beta), rgamma(n/3, shape=10*alfa, scale=3*beta)) plot(density(x, kernel="cosine"),lwd=2, col="blue", xlab="x",ylab="Density", main="Density plot") abline(v = median(x), col = "red", lty=5) 



рд╣рдо рдордВрдЭрд▓реЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ - рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рдеред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдХреНрд░рдорд╢рдГ рд╕реАрд░рд┐рдпрд▓ рдХреЛрдб рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЛ рдорд╛рдкреЗрдВ:
 set.seed(1) seq.time <- system.time({ seq.medians <- foreach(icount(trials), .combine=cbind) %do% { median(sample(x, replace = T)) } }) 

 > quantile(seq.medians, c(.025, .975)) 2.5% 97.5% 52.56311 54.99636 > seq.time user system elapsed 19.884 0.252 20.138 

 set.seed(1) par.time <- system.time({ par.medians <- foreach(icount(trials), .combine=cbind) %dopar% { median(sample(x, replace = T)) } }) 

 > quantile(par.medians, c(.025, .975)) 2.5% 97.5% 52.56257 54.94890 > par.time user system elapsed 4.252 0.420 10.893 

рдЕрдВрддрд░ рдХрд╛рдлреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдЖрдЗрдП рд╣рдо рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдХ "рд╡реЗрдХреНрдЯрд░рдХреГрдд" рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЪрд▓ рд░рд╣реЗ рд╕рдордп рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВ (рд▓рд╛рдЧреВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):
 set.seed(1) seq.time.ap <- system.time({ seq.medians.ap <- apply(matrix(sample(x, trials*n, replace = T), trials, n), 1, median) }) 

 > quantile(seq.medians.ap, c(.025, .975)) 2.5% 97.5% 52.56284 54.98266 > seq.time.ap user system elapsed 23.732 1.728 25.472 


рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RSNNS рдкреИрдХреЗрдЬ рдореЗрдВ Elman рдиреЗрдЯрд╡рд░реНрдХ (рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, R рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдЖрд╡рд░реНрддрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИрдВ) рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИрдВред рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реАрдЦрдиреЗ рдХреА рджрд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдПрдХ рд╕рдВрд╕рд╛рдзрди-рдЧрд╣рди рдХрд╛рд░реНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рд╣рдо рдЧреЛрд▓рд╛рдХрд╛рд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рджрдмрд╛рд╡ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 install.packages(c("ElemStatLearn","RSNNS")) 

ElemStatLearn рдкреИрдХреЗрдЬ рд╕реЗ, рд╣рдореЗрдВ рджреЛ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЪрд╛рд╣рд┐рдП- zip.train рдФрд░ zip.test, рдЬрд┐рд╕рдореЗрдВ gzipped handwritten digit images рд╣реИрдВред рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛рдлреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓реЛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддреЗ рд╣реИрдВ: рдХреНрд░рдорд╢рдГ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг, рд╕рддреНрдпрд╛рдкрди рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдПред

рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 library("ElemStatLearn") library(RSNNS) data(zip.train) data(zip.test) image(zip2image(zip.train, 1000), col=gray(255:0/255)) train <- zip.train[1:1000,-1] trainC <- decodeClassLabels(zip.train[1:1000,1]) valid <- zip.train[1001:1200,-1] validC <- zip.train[1001:1200,1] test <- zip.test[1:1000,-1] testC <- zip.test[1:1000,1] 



рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВ, рд╣рдореЗрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рдЫрд┐рдкреА рдкрд░рдд рдореЗрдВ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреА рдЧрддрд┐, рдФрд░ рд╣рдо рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЗрд╖реНрдЯрддрдо рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рддреАрди рдирдВрдмрд░ рд╣реЛрдВрдЧреЗ - рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реАрдЦрдиреЗ рдХреА рдЧрддрд┐ рдФрд░ рддреНрд░реБрдЯрд┐, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЗрд╖реНрдЯрддрдорддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рд▓реВрдк рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡реЗрдХреНрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
 comb <- function(df1, df2) if (df1$err < df2$err) df1 else df2 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХреЛрдб рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рджреЛ рдбреЗрдЯрд╛ рдлрд╝реНрд░реЗрдо рдХреЗ рдЧрд▓рдд рдХреНрд╖реЗрддреНрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдЬрдЧрд╣ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдХрдо рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреБрдХрдбрд╝рд╛ рдЬреЛ рд╕реАрдзреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЛрдб рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕реАрдзреЗ рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╣рдо рддреАрди рдЧреБрдард▓реА рдХреЗ 100% рд▓реЛрдбрд┐рдВрдЧ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред


 errCl <- function (predicted, true){ return(round(sum(predicted != true)/length(true), 4)) } size <- c(13,29,53,71) lr <- c(.001,.01,.1,.5) nn.time <- system.time({ elm_par <- foreach(s=size, .combine='comb') %:% foreach(r=lr, .packages='RSNNS', .combine='comb', .inorder=F) %dopar% { elm <- elman(x=train, y=trainC, size=s, learnFunc="JE_BP", learnFuncParams=r, linOut=F, maxit=193) pred <- max.col(predict(elm, valid)) - 1 e <- errCl(pred, validC) data.frame(opt_size=s, lrate=r, err=e) } }) 

рдЗрд░реЗрд▓рдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд░реНрдЧреАрдХрд░рдг рддреНрд░реБрдЯрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдХрд╛рд░ рдФрд░ рдПрд▓рдЖрд░ рд╡реИрдХреНрдЯрд░ рдХреНрд░рдорд╢рдГ рдЫрд┐рдкреЗ рд╣реБрдП рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рдд рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реАрдЦрдиреЗ рдХреА рджрд░ рдореЗрдВ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдХреИрд╕реЗ %:% рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдпрджрд┐ рдЖрдк рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рдЪрдХреНрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдЪреБрдирдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ: рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдПрдХ рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд░реНрдЧреАрдХрд░рдг рддреНрд░реБрдЯрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдХрдо рд╣реИред рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рд╛:
 > elm_par opt_size lrate err 1 29 0.5 0.05 > nn.time user system elapsed 0.312 0.168 179.542 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, 5% рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЪрд╛рдкрд▓реВрд╕реА рдордд рдХрд░реЛред рдЪрд▓реЛ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рдкрд░ 29 рдиреНрдпреВрд░реЙрдиреНрд╕ рдФрд░ 0.5 рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджрд░ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ:
 elm <- elman(x=train, y=trainC, size=29, learnFunc="JE_BP", learnFuncParams=0.5, linOut=F, maxit=193) pred <- max.col(predict(elm, test)) - 1 e <- errCl(pred, testC) 

 > e [1] 0.119 

рд╡реИрд╕реЗ 11.9% рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рдЕрдм рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЪреАрдЬ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ "рдЪреБрдХрд╛рдирд╛" рд╣реИ
 stopCluster(cluster) 

рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


R рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдХрдкрдЯреА рднрд╛рд╖рд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрджреА - рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ CRAN рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП - рдХреБрдЫ рдФрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рд▓реЗрдХрд┐рди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХрд╛ рдЕрдкрдирд╛ рдЖрд▓рд╛ рд╣реИред рдЖрд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдВрдХрдбрд╝реЗ рдФрд░ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐ рдЖрд░ рдХрд╛рдлреА рдЗрддреНрдореАрдирд╛рди рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рд╕рд╛рд╣рд┐рддреНрдп

рдЖрд░ рдХреЗ рд╕рд╛рде рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ
рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдлрдВрджреЗ
RSNNS рдкреИрдХреЗрдЬ

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


All Articles