看板 Soft_Job 關於我們 聯絡資訊
※ 引述《pologuy (購物慾好強)》之銘言: : ex: : 甲買商品A 同時會購買BC : 乙買商品A 同時會購買CD : 因此A和C的關聯性較高 : 那麼要如何將A商品的關聯性商品記錄下來,並且將較高關聯性的商品(如上述C)推薦給 : \ : 消費者? : 這是小弟之前面試的題目,想不到好的方法,想請教各位! 比較好的策略在其他篇已經有許多人討論過了。 我試著回憶一下 association rule 怎麼玩(無奈都還給老師了xd) 看了 wiki 複習一下手算比較好算的 fp-tree 首先,我們要先 count 每個 item 出現的數量 T1 A, B, C T2 A, C, D COUNT: A=2 C=2 B=1 D=1 依 count 數重排 Tx 內的 item: T1 A, C, B T2 A, C, D 然後,依出現頻率建出 fp-tree: (FP-ROOT) / A:2 / C:2 / \ B:1 D:1 PS. 廣告時間: fp-tree 小巧輕便,現在 ram 又那麼便宜(不然就上 ec2 開個機器吧) 分別算出各種 rule 的支持度與信賴度: conf(A(supp:1) => C(supp:1)) = (1 * 1) / 1 = 100% conf(A(supp:1) => B(supp:0.5)) = (1 * 0.5) / 1 = 50% conf(A(supp:1) => D(supp:0.5)) = (1 * 0.5) / 1 = 50% conf(AC(supp:1) => B(supp:0.5)) = (1 * 0.5) / 1 = 50% conf(AC(supp:1) => D(supp:0.5)) = (1 * 0.5) / 1 = 50% conf(AB(supp:0.5) => C(supp:1)) = (0.5 * 1) / 0.5 = 100% conf(AB(supp:0.5) => D(supp:0.5)) = (0.5 * 0.5) / 0.5 = 50% conf(AD(supp:0.5) => B(supp:0.5)) = (0.5 * 0.5) / 0.5 = 50% conf(AD(supp:0.5) => C(supp:1)) = (0.5 * 1) / 0.5 = 100% conf(CB(supp:0.5) => A(supp:1)) = (0.5 * 1) / 0.5 = 100% conf(CB(supp:0.5) => D(supp:0.5)) = (0.5 * 0.5) / 0.5 = 50% conf(CD(supp:0.5) => A(supp:1)) = (0.5 * 1) / 0.5 = 100% conf(CD(supp:0.5) => B(supp:0.5)) = (0.5 * 0.5) / 0.5 = 50% ........................................................... (手酸了,這也許會有算錯xd) 在原來的要是,你得找出購買 A 一定會購買 C 的理由。 單純依信賴度(簡單說,它是條件機率),來看 A => C, confidence = 100% 但是『連結帳櫃檯都觀察得到的 rule』真的有利可圖嗎!? 如果今天進來 100 人,有 99 人都買了 A, C。 你投入的行銷資源只能進歩 1% 而已耶。 公佈這結果只是幫助還沒有達到這成果的競爭對手撿便宜罷了。 除非你有同相近性質的銷售點可以運用這個規則來獲利。 Data Mining 的課本總寫著找出 interesting rule, 這也是為什麼顧問重要,算出結果後要怎麼用是一門大學問。 那個題目讓我會很想要挑戰它,挑戰的點在於這條 rule 能產生多少利益。 以這個 case 來說,那些 50% conf 的反而值得去促銷。 把一定能賣得出去 A, C 在不同點綁 B, D 賣(做 AB Test !?) 看哪種策略能把獲利再提昇。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.128.164
jlhc:看是要從刺激消費 鼓勵消費 還是鞏固消費的角度出發和實驗吧 04/30 01:30