2013-03-02 49 views
0

我不完全確定這是否是提問這個問題的正確位置。希望有人會有答案或可以提供一些建議。產品移動算法排名(基於銷售量和淨收入)

我經營一家小商店,出售商品。我有一個程序/電子表格將列出最熱門的項目。

我可以按單位總數此信息銷售:銷售

Product 1, 15 
Product 2, 12 
Product 3, 7 

...或總價值:

Product 2, $250.00 
Product 1, $75.00 
Product 3, $30.00 

我想創建它們之間的組合排名兩個值。我有編程(PHP,Python,Perl等)和數據庫經驗。我想知道是否有某種方法可以確定收入和單位總值的頂級行動者。例如,產品1銷售更多單位,但帶來的收入更少。也許產品2更重要。也許是基於點數的系統,其中每個單位售出1.5個點,每個單位售價2個點。 (貨幣更重要)

任何想法?

+0

您需要考慮的第一件事是「正是你想要這些隊伍是什麼意思」。一種簡單的方法是按照上述兩種方式對它們進行排序(以增加的方式),併爲其指定一個分數,例如'units_sold_rank * 1.5 + total_money_gathered_rank * 2.0'並根據它進行排序。在你的情況下,產品2將以'1.5'的分數(或'4.0'取決於你是否從'0'或從'1'進行索引),而產品1的得分爲'2.0'(或'5.5') – dmg 2013-03-02 14:24:52

+0

你是要求商業算法,而不是代碼?如果是,請嘗試使用Google搜索引擎優化分析庫存搜索,這是常見的技巧,可以根據您的要求進行排名。 – rlb 2013-03-02 20:47:08

回答

0

假設你正在使用MySQL,那麼這個查詢應該是八九不離十了,你在找什麼:

SELECT Product, 
    CAST(1.5*UnitsSold as DECIMAL) + 2*DollarsSold OverallRank 
FROM YourTable 
ORDER BY OverallRank DESC 

SQL Fiddle Demo

如果沒有,同樣的概念應在電子表格中工作。

0

我不確定這是否是問這類問題的正確位置。看起來你正在要求算法或一些標準的業務規則,但最終的代碼。

那麼,我發佈了一種方法來提出新的想法。我構建的算法列表和測試頂級值:

import math 

fs = [ 
('Plain coef', lambda m: math.log(m[1]* units_coef) 
          + math.log(m[2]* money_coef) ), 
('Coef into log', lambda m: m[1]* units_coef 
          + m[2]* money_coef      ), 
('Coef out log', lambda m: math.log(m[1])* units_coef 
          + math.log(m[2]) * money_coef), 
('Coef out log2', lambda m: math.log(m[1],2)* units_coef 
          + math.log(m[2],2) * money_coef), 
] 

movings = [ ('product1', 1500, 75.00), 
      ('product2', 2, 90000.00), 
      ('product3', 1200, 8000.00), 
      ('product4', 6, 4000.00), 
      ('product5', 500, 1000.00), 
      ('product6', 800, 1200.00), 
      ('product7', 300, 800.00), 
      ] 

units_coef = 1.1 
money_coef = 0.04 

for (n,f) in fs: 
    print '' 
    print n 
    print '===============================================' 
    for i in sorted(movings, 
        key = lambda m: f(m) , 
        reverse=True)[:3]: 
     print i, f(i) 

結果:

$ python solds.py 

Plain coef 
=============================================== 
('product3', 1200, 8000.0) 12.9537080114 
('product6', 800, 1200.0) 10.6511229184 
('product5', 500, 1000.0) 9.99879773234 

Coef into log 
=============================================== 
('product2', 2, 90000.0) 3602.2 
('product1', 1500, 75.0) 1653.0 
('product3', 1200, 8000.0) 1640.0 

Coef out log 
=============================================== 
('product1', 1500, 75.0) 8.21724195034 
('product3', 1200, 8000.0) 8.15857239218 
('product6', 800, 1200.0) 7.63667597387 

Coef out log2 
=============================================== 
('product1', 1500, 75.0) 11.8549742115 
('product3', 1200, 8000.0) 11.7703319309 
('product6', 800, 1200.0) 11.0173945564