Given a variable such as number of events attended together
, which is more of a multi-dimensional data how can you calculate a sort of distance between people (i.e. a similarity score)?
Context:
For simplicity, lets say there are two types of data available
Customer_id
and their purchases across brands (a.k.a. Buying Patterns)Customer_id
and the events attended (a.k.a. Socializing Patterns), where a customer may attend multiple events
The idea is to process the data and get a weighted (Based on business priorities) average similarity score that can identify customers who are similar to each other.
- Buying Patterns: Here because it is continuous data that can be rolled up at
customer_id
level we can simply take a distance measure. - Socializing Patterns: If we roll up the data to a
customer_id
level with the number of events attended we lose information about which customer attended the same event as the other. This is valuable info lost as they might have met each other, may have mutual friends attending the event or simply means that they have similar tastes.
I was thinking of simply taking the number of events attended together itself as a distance between them after reversing the values (i.e. Maximum value - value), assuming that people who have attended more number of events together are similar to each other.
Is there a better approach to this? A better way to handle a variable that is more of a network variable (if that is the right word)
Note: there are 100s of events, and when I mean the distance cannot be represented in the Euclidean space I mean you cannot simply calculate the distance on the events data.
For example given an input with customer_id, event_id how can you measure the similarities between customers? You can't simply count the number of events attended and then calculate the distance because of the problem I've mentioned above.
One idea is to try out Gower's measure but I'm still trying to understand what that does exactly.