本文整理匯總了Python中whale.Whale.weighted_reasons方法的典型用法代碼示例。如果您正苦於以下問題:Python Whale.weighted_reasons方法的具體用法?Python Whale.weighted_reasons怎麽用?Python Whale.weighted_reasons使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類whale.Whale
的用法示例。
在下文中一共展示了Whale.weighted_reasons方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: TestHailWhale
# 需要導入模塊: from whale import Whale [as 別名]
# 或者: from whale.Whale import weighted_reasons [as 別名]
#.........這裏部分代碼省略.........
self.assertEqual(ranked[maybe_dumps([t, 'c'])]['important'], False)
def testRankSubdimensionsRatio(self):
t = str(time.time())
pk = 'test_ratio_rank'
# OVERALL STATS: 529,994 value, 50,000 visitors, 10.6 value per visitor
# Not important, too close to overall
self.whale.count_now(pk, [t, 'a', 'asub1'],
{'value': 54989, 'visitors': 4999}) # 11 value per visitor
# Important, high relative ratio
self.whale.count_now(pk, [t, 'a', 'asub2'],
{'value': 375000, 'visitors': 25000}) # 15 value per visitor
# Important, low relative ratio
self.whale.count_now(pk, [t, 'b'],
{'value': 100000, 'visitors': 20000}) # 5 value per visitor
# Not important, not enough visitors
self.whale.count_now(pk, [t, 'c'],
{'value': 5, 'visitors': 1}) # 5 value per visitor
one_level = self.whale.rank_subdimensions_ratio('test_rank_ratio', 'value', 'visitors',
t, recursive=False)
all_levels = self.whale.rank_subdimensions_ratio(pk, 'value', 'visitors', t)
self.assertEqual(True, maybe_dumps([t, 'a', 'asub1']) not in one_level)
self.assertEqual(all_levels[maybe_dumps([t, 'a', 'asub1'])]['important'], False)
self.assertEqual(all_levels[maybe_dumps([t, 'a', 'asub2'])]['important'], True)
self.assertEqual(all_levels[maybe_dumps([t, 'b'])]['important'], True)
self.assertEqual(all_levels[maybe_dumps([t, 'c'])]['important'], False)
def testBasicDecision(self):
pk = 'test_basic_decision'
decision = str(time.time())
# Make a decision, any decision, from no information whatsoever
good, bad, test = self.whale.weighted_reasons(pk, 'random', [1,2,3])
#_print_reasons(good, bad, test)
any_one = self.whale.decide_from_reasons(good, bad, test)
self.assertEqual(True, any_one in [1, 2, 3])
# OK, now how about something somewhat informed?
# This will be easy. Slogan A makes us huge profit. Products B and C suck.
# D looks promissing but isn't yet significant
opts = ['a', 'b', 'c', 'd']
self.whale.count_now([pk, decision, 'a'], None, dict(dollars=5000, visitors=1000))
self.whale.count_now([pk, decision, 'b'], None, dict(dollars=0, visitors=2000))
self.whale.count_now([pk, decision, 'c'], None, dict(dollars=0, visitors=2000))
self.whale.count_now([pk, decision, 'd'], None, dict(dollars=50, visitors=10))
good, bad, test = self.whale.weighted_reasons(pk, decision, opts, formula='dollars/visitors')
#_print_reasons(good, bad, test)
self.assertEqual(True, 'a' in good.keys())
self.assertEqual(True, 'b' in bad.keys())
self.assertEqual(True, 'c' in bad.keys())
self.assertEqual(True, 'd' in test.keys())
which_one = self.whale.decide(pk, decision, opts, formula='dollars/visitors',
bad_idea_threshold=0, test_idea_threshold=0)
self.assertEqual(which_one, 'a')
def testInformedDecision(self):
pk = 'test_informed_decision'
decision = str(time.time())
# A is the clear winner, except when country=UK, in which case B wins
opts = ['a', 'b', 'c', 'd']
self.whale.count_now([pk, decision, 'a'], None, dict(dollars=50000, visitors=10000))
self.whale.count_now([pk, decision, 'b'], None, dict(dollars=0, visitors=2000))