File size: 909 Bytes
e1e9768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np

# Used to test if all the listed attributes of all team members and applicants are the same
def all_equal(attribute_list):
    return len(set(attribute_list)) == 1

# I decided to treat all attributes as independent from eachother, since large negative covariances between attributes made the cdf go to 0 very quickly
def make_independent(cov_matrix):
    dim = len(cov_matrix)
    for i in range(dim):
        for j in range(dim):
            if not i==j:
                cov_matrix[i,j] = 0
    return cov_matrix

# Define compatibility as the geometric mean of the probabilities for each attribute that a person on the team will have a lower value
def compatibility(model, attributes, candidate_dict):
    num_attributes = len(attributes)
    candidate_values = [candidate_dict[attribute] for attribute in attributes]
    return model.cdf(np.array(candidate_values))**(1/num_attributes)