top | item 6855114

Build an algorithm to predict friendships, then actually use it to meet people

60 points| waxman | 12 years ago |joingrouper.com

37 comments

order
[+] avalaunch|12 years ago|reply
This is a cool challenge but the prize is definitely lacking. I think anyone capable of writing an algorithm of the caliber you're looking for isn't likely to participate. I could be wrong but I think you're going to have to pony up some serious cash to get developers taking this seriously. Or you could go the more standard route and just hire someone to do the job.
[+] chegra|12 years ago|reply
I would do it cause I'm curious.

Edit: Now looking at the dataset, I wouldn't be able to use the model I developed personally.

[+] benhamner|12 years ago|reply
Ping me ([email protected]) if you're interested in running this competition more formally on https://kaggle.com.

We've run hundreds of machine learning competitions & offer a real-time leaderboard to encourage competitive participation, a very active community of data scientists, and many other features that simplify running this type of challenge.

[+] mariusz79|12 years ago|reply
So basically they are asking people to build them an algorithm that will be a critical part of their business, in exchange for a free service that will be based on this algorithm. Right...
[+] nottombrown|12 years ago|reply
Sorry if this was unclear. You own any code that you write for this competition.

The prize is that we'll use your algorithm to validate any matches that you go on. If that doesn't seem worthwhile to you, feel free to pass on this contest.

[+] angersock|12 years ago|reply
Yep, basically.

EDIT: ah fuck it might hack on this dataset anyways--if i get a beer and a date out of it ill help fiddle while rome burns

[+] mjmahone17|12 years ago|reply
This is interesting, but given your parameters (predict the most friendships), all you're technically asking for is recall. I'll write an algorithm that has 100% recall: predict that all people become friends with each other.

If this is really a competition (and not just "Here, have fun with our dataset!"), you need to define the rules a little bit more clearly. How are you weighing recall vs. precision? Or are you just looking at % correct labels, where the only two labels possible are "FRIENDS" and "NOT FRIENDS"?

[+] nottombrown|12 years ago|reply
Sorry this was unclear. We meant "correctly predict the most friendships"

You get 1 point for each friendship that you correctly predict did or did not occur. In the test data set ~50% of pairs became friends, so predicting "everyone became friends" would get 250 points, whereas a perfect algorithm would get 500 points.

I'm updating the README now to make our scoring system more clear.

[+] glimcat|12 years ago|reply
They're also looking for whether people become friends on Facebook.

The dominant factor here is going to be the rate at which the participants send and accept connection requests on Facebook. Some people send them to everyone they meet, some people never use Facebook.

KPI overfitting, yay!

(The best second-order effect is probably a multi-feature similarity measure between the participants and the person's current Facebook Friends, including graph distance to current Friends. In case anyone is taking a run at this.)

[+] thebiglebrewski|12 years ago|reply
This would be a little more fun if there was a cash prize. No offense meant, groupers look cool, but you'd probably get some more participation that way.
[+] easy_rider|12 years ago|reply
But then they could just hire a M.S. in Computer Science?
[+] nottombrown|12 years ago|reply
Hey HN, Grouper founder here. Let me know if you have any questions about the contest.
[+] ddod|12 years ago|reply
This is the sort of thing I'm personally very interested in, and I have some pretty novel ideas for how I'd approach it. That said, I wouldn't participate in this because it clearly devalues the industry. You should really rethink your approach.

Developers who are considering participation in this, I'd suggest you build something for yourself with data acquired elsewhere.

[+] jameszhang|12 years ago|reply
Honestly, I think this is a very cool challenge. As someone who just went on a Grouper last night in Boston and had a great time, I think I just might participate and submit something. Do you have any limitations on how many people can form a team? Personally, I would pair on this with my roommate. He's the big data guy, and I'm the coder.
[+] JFoss117|12 years ago|reply
A few questions about the data:

1. How is it collected? From a survey, or grabbed from user FB profiles?

2. What is the platinum albums variable? Maybe the number of platinum albums that the user likes on FB??

3. Why are there some "male" entries in the f_gender column, and some "female" entries in the m_gender column?

[+] yankoff|12 years ago|reply
Why you guys didn't want to run this competition on Kaggle? That could get it more attention from data scientists.
[+] streptomycin|12 years ago|reply
Is there more description of the data anywhere? Like what does having an "f_number_of_pets" of 7.5 mean?
[+] murtali|12 years ago|reply
How is the submitted code used post contest?
[+] chegra|12 years ago|reply
Where do you submit your results?
[+] maxk42|12 years ago|reply
I'll be the first to say it: Your data is either incorrect, arbitrary, or we're missing some information here.

Why does everyone have "7.5" - 8 siblings and 7.5 - 8 "weekly workouts" and 7.5 - 8 platinum albums?

[+] maxk42|12 years ago|reply
Specifically, you should explain all the columns, including:

- Is that the person's height in inches?

- What does the asterisk in certain column-names indicate?

- Why do the pets, platinum_albums, weekly_workouts, number_of_siblings and pokemon_collected values seem to fall in the range of 7 - 8?

Also, this dataset is far too small. There is a single male-male relationship and that's not going to provide any significant data if we're looking at genders at all.

I would also argue that it's not the best set of metrics to use to determine whether people will become friends. Age and facebook_friends_count might give you some hints, but I seriously doubt that shoe size has as big an impact on the potential for friendship as, say, common interests, shared culture, income class, or other socioeconomic factors.

[+] nottombrown|12 years ago|reply
The headers with asterisks are intentionally mislabeled. Updated this to be more clear in the README.
[+] chegra|12 years ago|reply
Mutual Information for the fields:

I(f_facebook_friends_count,members_became_friends) = 0.117320113379

I(m_facebook_friends_count,members_became_friends) = 0.113972809724

I(m_facebook_photos_count,members_became_friends) = 0.0449092782303

I(f_facebook_photos_count,members_became_friends) = 0.0426531483254

I(m_shoe_size,members_became_friends) = 0.00276175766018

I(m_height,members_became_friends) = 0.00255043390135

I(f_shoe_size,members_became_friends) = 0.00233148724025

I(m_age,members_became_friends) = 0.00198005768283

I(f_height,members_became_friends) = 0.0013606978915

I(m_weekly_workouts,members_became_friends) = 0.00123271513215

I(f_age,members_became_friends) = 0.00122660347743

I(m_platinum_albums,members_became_friends) = 0.00111710129455

I(f_number_of_pets,members_became_friends) = 0.00108593667378

I(f_pokemon_collected,members_became_friends) = 0.000880040104571

I(m_number_of_siblings,members_became_friends) = 0.000830295252089

I(f_platinum_albums,members_became_friends) = 0.000820683185117

I(m_number_of_pets,members_became_friends) = 0.000768855827053

I(m_pokemon_collected,members_became_friends) = 0.000720822383999

I(f_weekly_workouts,members_became_friends) = 0.000620666529567

I(f_number_of_siblings,members_became_friends) = 0.00019278884716

I(f_gender,members_became_friends) = 0.000124279429698

I(m_gender,members_became_friends) = 0.000124279429698

[+] joshfraser|12 years ago|reply
Ok, let's make this more interesting. I'll pay $50 to the first person to de-anonymize their training set.
[+] chbg|12 years ago|reply
members_became_friends = 1/(1+ exp(-1297.88087 * f_shoe_size + m_shoe_size * m_facebook_friends_count - 11761.6138))