-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathevent_recommedation_engine.R
70 lines (40 loc) · 1.63 KB
/
event_recommedation_engine.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#load data
event_attendees <- read.csv("event_attendees.csv", header=TRUE)
events <- read.csv("events.csv", header=TRUE)
user_friends <- read.csv("user_friends.csv", header=TRUE)
users <- read.csv("users.csv", header=TRUE)
train <- read.csv("train.csv", header=TRUE)
test <- read.csv("test.csv", header=TRUE)
#find unique user ids
colnames(users)
allusers <- unique(users[,1])
#find unique event ids
colnames(events)
allevents <- unique(events[,1])
#find unique user ids in user_friends
colnames(user_friends)
allfriends <- unique(user_friends[,1])
colnames(event_attendees)
########################################################
# pick up a user
#tmpuser <- users[1]
tmpuser <- 3044012
# load events of user
userevents <- train[train$user == tmpuser, ]
numevents <- length(userevents)
i <- 1
tmpev <- userevents[i,2]
#search for info about event in the event table
eventInfo <- events[events$event_id == tmpev, ]
# check time of event and joining time
userInfo <- users[users$user_id == tmpuser,]
#eventDateTime <- unlist(strsplit(as.character(eventInfo$start_time), "T"))
#userDateTime <- unlist(strsplit(as.character(userInfo$joinedAt), "T"))
#as.Date(eventDateTime[1]) - as.Date(userDateTime[1])
as.Date(eventInfo$start_time) - as.Date(userInfo$joinedAt) # + means that user can still partecipate
########################################################
connections <- user_friends[user_friends$user == tmpuser,]
friendList <- unlist(strsplit(as.character(connections$friends), " "))
length(friendList) # number of friends
# assign a score(E) for all events of user U
#methods: scoring metric, elastic net, lasso, bayesian network