-
Notifications
You must be signed in to change notification settings - Fork 0
/
weightfunction.txt
46 lines (39 loc) · 1.56 KB
/
weightfunction.txt
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
Matching criteria:
Schedule compatibility
Rating for request's tag
Rating becomes more important with more contracts completed
Mix of newbs and vets (unsure how)
1. Submit a service request (no workers selected)
2. Pass parameters to worker recommender
3. Use weight function to sort the list of potential workers
Apply slight element of randomness
4. Return list
Suggested schedule compatibility algorithm:
compatibility = 0
for every time slot where both the worker and client are free
compatibility += 1;
for every other client time slot
compatiblity += 1/(time difference to nearest worker time slow + 1);
Suggested job type matching algorithm:
statistics!
create a 95% confidence interval for the rating,
sample size = number of ratings
the score is the lower bound of the interval
(fewer ratings -> smaller sample size -> wider interval -> smaller lower bound -> people with same average rating but fewer ratings have a lower score)
Note: Does not account for helping noobs
Note: I have a feeling that this is going to totally destroy someone's chances of getting anywhere if the first job they did just happened to mess up
Suggestions for helping noobs:
1.
Two separate lists, one for noobs, one for the rest? and then sort each list by average (with a little bit of randomness)
Present two separate lists to users?
Categorise person as noob based on number of contracts completed? e.g. <= 10 contracts means noob
Essentially gives a person a certain number of tries to "prove himself"
2.
Add element of randomness to score
tier thresholds
0
5
15
40
100
250