Skip to content

Instantly share code, notes, and snippets.

@brunoalano
Created October 3, 2018 14:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brunoalano/479265b934a67dc02092fb54a846fe1e to your computer and use it in GitHub Desktop.
Save brunoalano/479265b934a67dc02092fb54a846fe1e to your computer and use it in GitHub Desktop.
import numpy as np
predictions = [
('company_a:user1', 'model_a', 0.5),
('company_a:user1', 'model_b', 0.6),
('company_a:user1', 'model_c', 0.3),
('company_a:user2', 'model_a', 0.33),
('company_a:user2', 'model_b', 0.27),
('company_a:user2', 'model_c', 0.75),
('company_b:user1', 'model_a', 0.36),
('company_b:user1', 'model_b', 0.67),
('company_b:user1', 'model_c', 0.84),
('company_b:user2', 'model_a', 0.35),
('company_b:user2', 'model_b', 0.56),
('company_b:user2', 'model_c', 0.54),
('company_b:user3', 'model_a', 0.32),
('company_b:user3', 'model_b', 0.51)
]
pageviews = [
('company_a', 'user1', 'PAGE_TYPE_A'),
('company_a', 'user1', 'PAGE_TYPE_B'),
('company_a', 'user1', 'PAGE_TYPE_C'),
('company_a', 'user1', 'PAGE_TYPE_B'),
('company_a', 'user1', 'PAGE_TYPE_A'),
('company_a', 'user1', 'PAGE_TYPE_B'),
('company_a', 'user1', 'PAGE_TYPE_B'),
('company_a', 'user1', 'BUYSUCCESS'),
('company_a', 'user2', 'PAGE_TYPE_D'),
('company_a', 'user2', 'PAGE_TYPE_F'),
('company_a', 'user2', 'PAGE_TYPE_H'),
('company_a', 'user2', 'PAGE_TYPE_A'),
('company_a', 'user2', 'PAGE_TYPE_B'),
('company_a', 'user2', 'BUYSUCCESS'),
('company_a', 'user2', 'BUYSUCCESS'),
('company_a', 'user2', 'BUYSUCCESS'),
('company_b', 'user1', 'PAGE_TYPE_A'),
('company_b', 'user1', 'PAGE_TYPE_B'),
('company_b', 'user1', 'PAGE_TYPE_C'),
('company_b', 'user1', 'PAGE_TYPE_B'),
('company_b', 'user1', 'PAGE_TYPE_A'),
('company_b', 'user1', 'PAGE_TYPE_B'),
('company_b', 'user1', 'PAGE_TYPE_B'),
('company_b', 'user1', 'BUYSUCCESS'),
('company_b', 'user2', 'PAGE_TYPE_D'),
('company_b', 'user2', 'PAGE_TYPE_F'),
('company_b', 'user2', 'PAGE_TYPE_H'),
('company_b', 'user2', 'PAGE_TYPE_A'),
('company_b', 'user2', 'PAGE_TYPE_B'),
('company_b', 'user3', 'PAGE_TYPE_D'),
('company_b', 'user3', 'PAGE_TYPE_F'),
('company_b', 'user3', 'PAGE_TYPE_H'),
('company_b', 'user3', 'BUYSUCCESS'),
('company_b', 'user3', 'PAGE_TYPE_B')
]
companies = ['company_a', 'company_b', 'company_c']
models = ['model_a', 'model_b', 'model_c']
users = ['user1', 'user2', 'user3']
print("company, model, segment, segment_users, really_bought")
for company in companies:
for model in models:
for segment in np.linspace(0, 1, 10, endpoint=False):
segment_users = 0
really_bought = 0
min_v = segment
max_v = segment + 0.1
users = []
for pred in predictions:
if pred[2] >= min_v and pred[2] < max_v and model == pred[1] and company == pred[0].split(':')[0]:
segment_users += 1
users.append(pred[0].split(':')[1])
really_bought = 0
for user in users:
for pv in pageviews:
if company == pv[0] and user == pv[1] and pv[2] == 'BUYSUCCESS':
really_bought += 1
if segment_users > 0:
print(f"{company}, {model}, {min_v:.1f}-{max_v:.1f}, "
f"{segment_users}, {really_bought}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment