diff options
| author | Loïc Guégan <loic.guegan@mailbox.org> | 2025-09-19 13:19:02 +0200 |
|---|---|---|
| committer | Loïc Guégan <loic.guegan@mailbox.org> | 2025-09-19 13:19:02 +0200 |
| commit | 4f1b2ea492d3e19c81ab98f050618d437b6e9ec5 (patch) | |
| tree | 118edc54e48150e7d9dfe78ef375a694fa4bc85f /analysis | |
| parent | 284cee3f032bed1243f0d1256d394e9458132075 (diff) | |
Clean repo and debug setup.sh
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 |
