-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScoreChecker.R
47 lines (45 loc) · 1.08 KB
/
ScoreChecker.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
while(!require('gdata'))
install.packages('gdata')
DataCorrect <- as.data.frame(fread("CorrectScores.csv", header=TRUE))
DataGuess <- as.data.frame(fread("FileName.csv", header=TRUE)) #GOEDE FILENAAM HIER
DataGuessDict<-c()
search_IDs <- unique(DataCorrect[,1])
now=Sys.time()
SCORE<- 0
NDCG<-c()
n<-0
for(ID in search_IDs)
{
n<-n+1
CorrectDataByID<- DataCorrect[DataCorrect[,1]==ID,]
GuessDataByID<- DataGuess[DataGuess[,1]==ID,]
DataGuess<- DataGuess[-1:-length(GuessDataByID),]
counter <- 1
booking<-length(CorrectDataByID[CorrectDataByID[,4]==1,])
clicks<-length(CorrectDataByID[CorrectDataByID[,3]==1,])-booking
counter2 <- 1
if(booking>0)
{
counter2<-2
BestScore<-5
}
else
counter2<-1
for(i in 1:clicks)
{
BestScore<-BestScore+1/log2(1+counter2)
counter2<-counter2+1
}
for(dataItem in DataGuess)
{
if(dataItem[4]==1)
SCORE<- SCORE+5/log2(1+counter)
else if(dataItem[3]==1)
SCORE<- SCORE+1/counter
counter<-counter+1
}
NDCG[n]<-SCORE/BestScore
}
SCORE<-SCORE/length(search_IDs)
print(Sys.time()-now)
print(SCORE)