summaryrefslogtreecommitdiff
path: root/analysis/days.R
diff options
context:
space:
mode:
Diffstat (limited to 'analysis/days.R')
-rw-r--r--analysis/days.R38
1 files changed, 20 insertions, 18 deletions
diff --git a/analysis/days.R b/analysis/days.R
index deed14d..93d478e 100644
--- a/analysis/days.R
+++ b/analysis/days.R
@@ -53,7 +53,7 @@ F1_Score2=function(truth, pred){
}
## Down scale data
-reduce_days=function(data,every=6){data%>%filter(((days/3) %% every) == 0)}
+reduce_days=function(data,every=6){data%>%filter(((days/4) %% every) == 0)}
## GGPlot Theme
th = function(option="D") {list(theme_bw(),
@@ -83,7 +83,7 @@ generate_accuracy_for=function(ignore_hint=FALSE,seed_max=200,attempts_max=2,wrl
## KNN analysis
knn_cont_table=table(knn_predictions,test_set$simkey)
knn_accuracy=(sum(diag(knn_cont_table)/sum(rowSums(knn_cont_table))))
- print(knn_accuracy)
+ #print(knn_accuracy)
knn_prop_table=round(prop.table(knn_cont_table),digits=2)
knn_f1_score=F1_Score2(test_set$simkey,knn_predictions)
@@ -111,7 +111,7 @@ generate_accuracy_for=function(ignore_hint=FALSE,seed_max=200,attempts_max=2,wrl
}
-generate_accuracy_energy = function(wireless,wakeupfor,steps=1, accuracy=10,ignore_hint=TRUE){
+generate_accuracy_energy = function(wireless,wakeupfor,steps=1, accuracy=10,ignore_hint=FALSE){
## Setup variables
npolicies=4
data_seed_for_energy=data_seed%>%ungroup()
@@ -133,13 +133,13 @@ generate_accuracy_energy = function(wireless,wakeupfor,steps=1, accuracy=10,igno
########## Generate accuracy, energy, F1-Score and coverage data ##########
-if(T){ # Toggle to train
+if(F){ # Toggle to train
lora180=generate_accuracy_energy("lora",180)
lora60=generate_accuracy_energy("lora",60)
nbiot60=generate_accuracy_energy("nbiot",60)
nbiot180=generate_accuracy_energy("nbiot",180)
accuracy=rbind(lora60$accuracy,lora180$accuracy,nbiot60$accuracy,nbiot180$accuracy)
- coverage=data_seed%>%filter(simkey!="hint")%>%group_by(wireless,wakeupfor,seed)%>%summarize(coverage=sum(coverage))%>%mutate(days=seed*3)%>%filter(days %in% !!lora60$energy$days)%>%select(-seed)
+ coverage=data_seed%>%group_by(wireless,wakeupfor,seed)%>%summarize(coverage=sum(coverage))%>%mutate(days=seed*4)%>%filter(days %in% !!lora60$energy$days)%>%select(-seed)
energy=rbind(lora60$energy,
lora180$energy,
nbiot60$energy,
@@ -170,13 +170,14 @@ learning_curves=accuracy%>%group_by(wireless,wakeupfor,days,model)%>%
ggplot(data=learning_curves%>%mutate(model=ifelse(model=="knn","KNN","DT")),aes(linetype=model))+
geom_line(aes(days/30,mean_f1_baseline,color="Baseline"),size=1.2)+
geom_line(aes(days/30,mean_f1_extended,color="Extended"),size=1.2)+
+ geom_line(aes(days/30,mean_f1_hint,color="Hint"),size=1.2)+
geom_line(aes(days/30,mean_f1_hintandextended,color="Hintandextended"),size=1.2)+labs(color="Classes colors",linetype="Model")+
facet_wrap(~wireless+wakeupfor)+
scale_x_continuous(breaks = seq(0, max(learning_curves$days/30)))+
scale_y_continuous(breaks = seq(0, 1, by = 0.1))+
th()+
theme(panel.grid.minor = element_blank(),
- legend.position = c(0.9,0.74),
+ legend.position = c(0.9,0.72),
legend.margin = margin(2,4,2,4),
legend.spacing=unit(-0.2,"cm"),
legend.box.margin=margin(1,1,1,1))+
@@ -198,21 +199,22 @@ ggsave("figures/months_accuracy.pdf",width=8.5,height=6)
########## Energy and delta with raw policies ##########
+npolicies=4
## First we extended the number of seed to cover the entire duration of the training
data_seed_energy=rbind(data_seed,
data_seed%>%mutate(seed=seed+200),
data_seed%>%mutate(seed=seed+400),
data_seed%>%mutate(seed=seed+600)) # Almost same as if each experiment run 4 times more seed seed
-## Compute the cumulative energy of each policies in each configuration accross the 4*200 days
+## Compute the cumulative energy of each policies in each configuration accross the $npolicies*200 days
data_seed_energy=data_seed_energy%>%group_by(wireless,wakeupfor,simkey)%>%mutate(energy=cumsum(energy),setup=paste0(wireless," ",wakeupfor,"s"),days=seed)
-## Now sum coverage of each 3 days (like in the energy data frame)
-data_seed_energy=data_seed_energy%>%group_by(wireless,wakeupfor,simkey)%>%mutate(grp=ceiling(days/3))%>%group_by(wireless,wakeupfor,simkey,grp)%>%mutate(coverage=cumsum(coverage))%>%filter(days%%3==0)
+## Now sum coverage of each $npolicies days (like in the energy data frame)
+data_seed_energy=data_seed_energy%>%group_by(wireless,wakeupfor,simkey)%>%mutate(grp=ceiling(days/npolicies))%>%group_by(wireless,wakeupfor,simkey,grp)%>%mutate(coverage=cumsum(coverage))%>%filter(days%%npolicies==0)
## Now filter the data
data_seed_energy=data_seed_energy%>%filter(days %in% !!energy$days)
## Compute the delta data
energy_coverage_delta=data_seed_energy%>%
full_join(energy,by=c("days","wireless","wakeupfor"),suffix=c("","_training"))
-energy_coverage_delta=energy_coverage_delta%>%group_by(wireless,wakeupfor)%>%summarize(delta_energy=energy-energy_training,simkey=simkey,days=days,delta_coverage=(coverage-coverage_training)/3,coverage=coverage/3,coverage_training=coverage_training/3) # delta_coverage divide by 3 because we want the average per day (coverage is measure every 3 days (round-robin of 3 policies))
+energy_coverage_delta=energy_coverage_delta%>%group_by(wireless,wakeupfor)%>%summarize(delta_energy=energy-energy_training,simkey=simkey,days=days,delta_coverage=(coverage-coverage_training)/npolicies,coverage=coverage/npolicies,coverage_training=coverage_training/npolicies) # delta_coverage divide by $npolicies because we want the average per day (coverage is measure every $npolicies days (round-robin of $npolicies policies))
write("wireless,wakeupfor,policy,slope,intercept,delta_coverage,coverage,coverage_training,latex","figures/delta_energy_coverage.csv")
@@ -231,7 +233,7 @@ energy_coverage_delta%>%group_by(wireless,wakeupfor,simkey)%>%group_walk(functio
ggplot(energy_coverage_delta,aes(days/30,delta_energy/1e3,color=simkey,shape=simkey))+
geom_line(size=1.2)+ylab(TeX("Delta in $E_{total}$ (kJ)"))+xlab("Training duration (months)")+
facet_wrap(~wireless+wakeupfor,scale="free")+
- th()+theme(legend.position=c(0.61,0.95))+labs(color="Classes colors")
+ th()+theme(legend.position=c(0.61,0.97))+labs(color="Classes colors")
ggsave("figures/delta_energy_training.pdf",height=6,width=10)
ggplot(energy_coverage_delta,aes(days/30,delta_coverage,color=simkey))+
@@ -240,13 +242,13 @@ ggplot(energy_coverage_delta,aes(days/30,delta_coverage,color=simkey))+
th()+theme(legend.position="top")+labs(color="Classes colors")
ggsave("figures/delta_coverage_training.pdf",width=9)
-ggplot(data=energy,aes(days/30,energy/1e6,group=setup,fill=setup))+
- geom_bar(stat="identity",position="dodge")+
- labs(fill="Wireless and Uptime")+
- scale_x_continuous(breaks = seq(0, max(energy$days/30)))+
- xlab("Training duration (months)")+ylab("Energy consumption (MJ)")+
- th()+theme(legend.position=c(0.12,0.75))
-ggsave("figures/days_energy.pdf",width=8.5,height=4)
+## ggplot(data=energy,aes(days/30,energy/1e6,group=setup,fill=setup))+
+## geom_bar(stat="identity",position="dodge")+
+## labs(fill="Wireless and Uptime")+
+## scale_x_continuous(breaks = seq(0, max(energy$days/30)))+
+## xlab("Training duration (months)")+ylab("Energy consumption (MJ)")+
+## th()+theme(legend.position=c(0.12,0.75))
+## ggsave("figures/days_energy.pdf",width=8.5,height=4)