ubriela / geocrowd-pricing Goto Github PK
View Code? Open in Web Editor NEWGeocrowd Pricing Strategies
Geocrowd Pricing Strategies
Incorporating frequency (F) with diversity (D) is definitely not an easy task. It may require more time to think about it :) But one of my suggestions is that you should think of diversity as an exponential function of entropy. Let's say, we find entropy to be H, then diversity should be D = exp(H) because D has the unit similar to the number of locations. Then, maybe try to incorporate D and F somehow. For example, 0.8D + 0.2F if you think D is more important than F, or 0.5D+0.5F if you believe that they are equally important, or even D*log(F), etc... If you decide to go with your option, make sure to give good reasons for why you believe in it. This is not just a coding task, it is also about reasoning and proving by using real-life factors/analysis. Even if you choose an option (say, D +F), which may seem simple and not good enough at the first glance, but if you can give arguments for explaining why you think it works and convince other people to believe it ( with real-life facts and examples, not with feelings :] ), it could still be perceived as a good solution. In sciences, there are cases, where simple solutions are more than good enough and any sophisticated solutions may just be exaggerations. There are also vice-versa cases, where simple solutions fail, and we need to find more complex options.
Acceptance rate is the probability the user perform the assigned task.
Some thoughts:
Option 1:
Intuitively, higher price means higher f. So f should monotonicity increase with higher price. Function like f = 1-1/(price+1) that asymptotically approaches 1.
Option 2:
We can use normal distribution, and that is called Cumulative Gaussian (Normal) Distribution.
http://stats.stackexchange.com/questions/158556/probability-of-agreeing-to-do-some-work-depending-on-the-payment,
Basically, we can chose sigma =(p2-p1)/2 or (p2-p1)/4, or 6, etc... It is more common to use normal distribution when we talk about stimulation.
Here is the cumulative distribution function (CDF) of a Gaussian with mean μ=(p1+p2)/2 and variance σ=(p2−p1)/6, which is of course monotonic in price (as all CDFs must be):
We can complicate our simulation testbed by modeling a) the possibility someone at one of L task locations open the app over time and b) the possibility he/she is at a particular task location. Given a) and b) and the designed acceptance rate function f(price), we know when and where is the next picture is going to be collected. Then, we can set a price to each location based on our designed diversity model.
Suggestions:
a) is about time distribution. If we define an event as someone open the app at a particular location and time. Given a large number possible events (i.e., task locations), each of which is rare. How many of such events occur during a fixed time interval (e.g., 1 second) would follow Poisson distribution.
https://en.wikipedia.org/wiki/Poisson_distribution
b) is about space distribution. Once we compute, let say, 100 events will happen in the next 1 seconds. We can distribute 100 events to L locations based on a particular distribution.
One possible distribution is uniform, in which the next picture is captured at one of the L given locations. This distribution results in balanced picture count per location.
https://en.wikipedia.org/wiki/Uniform_distribution_(discrete)
Another possible distribution is skew, such as power law distribution, e.g., Zipfian. These kinds of distribution result in imbalanced picture counts.
https://en.wikipedia.org/wiki/Zipf's_law
This metric should take an array as input and return a double value. In the array, each element represents the number of pics in each location, and the returned value should characterize the diversity of the pics in terms of locations.
For example, the following arrays are sorted in increasing order of diversity:
10,0,0,0,0
5,5,0,0,0
5,2,1,1,1
4,2,2,1,1
2,2,2,2,2
Ideally, we want more total pics, and a more uniform array because as so, we have approximately the same number of pics in each location and therefore get a better, non-biased understanding about the locations, such as in the last array; otherwise, in the first array, we have no pics for the last four locations, and therefore no information about the areas corresponding to the last four locations (assuming we use pics to exam how clean or how good the pavement of the streets in the area are.
One suggestion is to use Shannon Entropy
https://en.wikipedia.org/wiki/Entropy_(information_theory)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.