summaryrefslogtreecommitdiff
path: root/analysis
diff options
context:
space:
mode:
Diffstat (limited to 'analysis')
-rw-r--r--analysis/in-situ.R (renamed from analysis/days.R)15
-rw-r--r--analysis/offline.R (renamed from analysis/learning.R)0
2 files changed, 9 insertions, 6 deletions
diff --git a/analysis/days.R b/analysis/in-situ.R
index 93d478e..2d57666 100644
--- a/analysis/days.R
+++ b/analysis/in-situ.R
@@ -27,6 +27,8 @@ library("latex2exp")
## energy [0,+inf)
## nDataRcv [0,+inf)
+## WARNING: Goto line 138 first and set the boolean to T (populate the R environment with accuracy results) afterwhich you can set it to FALSE (save time)
+
nseed=200
nwakeupfor=2
nwireless=2
@@ -75,7 +77,7 @@ generate_accuracy_for=function(ignore_hint=FALSE,seed_max=200,attempts_max=2,wrl
data_ml=data_ml%>%filter(simkey!="hint")
}
train_set=data_ml%>%filter(seed<=seed_max)%>%select(-seed) # train data on seed_max*3 days
- test_set=data_ml%>%select(-seed) # build test_sed
+ test_set=data_ml%>%select(-seed) # build test_set
#print(paste0("Test set ",NROW(test_set)))
#print(paste0("Train set ",NROW(train_set)))
## KNN training
@@ -86,7 +88,7 @@ generate_accuracy_for=function(ignore_hint=FALSE,seed_max=200,attempts_max=2,wrl
#print(knn_accuracy)
knn_prop_table=round(prop.table(knn_cont_table),digits=2)
knn_f1_score=F1_Score2(test_set$simkey,knn_predictions)
-
+
## Decision tree
tree=rpart(
simkey ~ wireless + wakeupfor + energy + coverage,
@@ -111,23 +113,24 @@ generate_accuracy_for=function(ignore_hint=FALSE,seed_max=200,attempts_max=2,wrl
}
+########## Train models from seed 0 to seed 160 (this code assumes that each day, a given policy is used)
generate_accuracy_energy = function(wireless,wakeupfor,steps=1, accuracy=10,ignore_hint=FALSE){
## Setup variables
npolicies=4
data_seed_for_energy=data_seed%>%ungroup()
if(ignore_hint){npolicies=npolicies-1;data_seed_for_energy=data_seed%>%filter(simkey!="hint")}
- data_seed_for_energy=data_seed_for_energy%>%filter(wireless==!!wireless,wakeupfor==!!wakeupfor)
+ data_seed_for_energy=data_seed_for_energy%>%filter(wireless==!!wireless,wakeupfor==!!wakeupfor) # Note !! do unquote, here we select the proper scenario
## Generate inputs
result=tibble()
result_energy=tibble()
- for(i in seq(1,160,by=steps)){ # We stop at 80% of the data (this way test set is at least 20%)
+ for(i in seq(1,160,by=steps)){ # We stop at 80% of the data (this way test set is at least 20%) here 160 over 200 seeds
print(paste("Step",i))
acc=generate_accuracy_for(ignore_hint=ignore_hint,seed=i,attempts_max=accuracy,wrl=wireless,wuf=wakeupfor)
- result_energy=rbind(result_energy,data_seed_for_energy%>%filter(seed<=i)%>%summarize(energy=sum(energy),seed_max=i,days=i*npolicies,setup=paste0(!!wireless," ",!!wakeupfor,"s"),wireless=!!wireless,wakeupfor=!!wakeupfor))
+ result_energy=rbind(result_energy,data_seed_for_energy%>%filter(seed<=i)%>%summarize(energy=sum(energy),seed_max=i,days=i*npolicies,setup=paste0(!!wireless," ",!!wakeupfor,"s"),wireless=!!wireless,wakeupfor=!!wakeupfor)) # days=i*npolicies since 1 policy only per day is used (see paper section IV.A)
result=rbind(result,acc)
}
- list(accuracy=result%>%mutate(days=seed_max*npolicies), # Since 3 policies (since ignore_hint=TRUE)
+ list(accuracy=result%>%mutate(days=seed_max*npolicies), # Since 1 policy per days see L130
energy=result_energy)
}
diff --git a/analysis/learning.R b/analysis/offline.R
index da444d8..da444d8 100644
--- a/analysis/learning.R
+++ b/analysis/offline.R