Задание 0

Подготовим выборку, с которой будем работать.

Задание 1

Провести разведочный анализ данных:

Задание 2

Определить лучший алгоритм в смысле общего количества успешно подогнанных за 200 секунд моделей.

table(randf$Alg,randf$MissFitFlag)
##                       
##                        Идентифицировано Не идентифицировано
##   Градиентный метод                 392                 141
##   Полный перебор                    253                  45
##   Перебор 2 параметров              422                  68
##   Перебор 3 параметров              409                  40
##   Перебор 4 параметров              373                  23
sort(table(randf$Alg,randf$MissFitFlag)[,1]/table(randf$Alg),decreasing=T)
## 
## Перебор 4 параметров Перебор 3 параметров Перебор 2 параметров 
##               0.9419               0.9109               0.8612 
##       Полный перебор    Градиентный метод 
##               0.8490               0.7355
Как можно увидеть, лучшим алгоритмом является перебор 4 параметров.

Задание 3

Построить график зависимости числа ошибок лучшего алгоритма от числа состояний модели.

plot(table(randf$States,randf$MissFitFlag, randf$Alg)[,2,5],xlab="States",ylab="MisFits", type="l")
plot of chunk unnamed-chunk-12

Задание 4

Построить график зависимости числа ошибок лучшего алгоритма от числа параметров модели.

plot(table(randf$Params,randf$MissFitFlag, randf$Alg)[,2,5],xlab="Params",ylab="MisFits", type="l")
plot of chunk unnamed-chunk-13

Задание 5

Определить лучший алгоритм в смысле среднего времени вычислений.

sort(sapply(split(randf,randf$Alg), function(x) colMeans(x[,c("Time","ResFit")]))[1,])
## Перебор 3 параметров       Полный перебор Перебор 4 параметров 
##                38.58                41.13                44.84 
## Перебор 2 параметров    Градиентный метод 
##                49.69                73.16
Лучшим алгоритмом считаем перебор 3 параметров.

Задание 6

Построить график зависимости времени вычислений лучшего алгоритма от числа параметров модели.

plot(1:18,sapply(split(split(randf,randf$Alg)[[4]],randf$Params), function(x) colMeans(x[,c("Time","ResFit")]))[1,],type="l",xlab="Params",ylab="Mean time",main="Перебор 3 параметров")
plot of chunk unnamed-chunk-15

Задание 7

Построить графики зависимости времени вычислений всех алгоритмов от числа параметров модели.

for(i in 1:5)
{
  plot(1:18,sapply(split(split(randf,randf$Alg)[[i]],randf$Params), 
  function(x) colMeans(x[,c("Time","ResFit")]))[1,],type="l",
  xlab="Params",ylab="Mean time",main=levels(randf$Alg)[i])
}

plot of chunk unnamed-chunk-16plot of chunk unnamed-chunk-16plot of chunk unnamed-chunk-16plot of chunk unnamed-chunk-16plot of chunk unnamed-chunk-16