---
# System prepended metadata

title: 商業數據分析流程
tags: [商業數據分析筆記]

---

###### tags: `商業數據分析筆記`

<font face = "微軟正黑體">

# 商業數據分析流程


Reference:
[監督式模型分析流程](https://www.youtube.com/watch?v=xbQJAjKeuQk&feature=emb_logo)

![A-D階段關係圖](https://imgur.com/C466la8.png)

![A-交易資料彙整](https://imgur.com/MYLxB2N.png)

+ Z：原始POS的交易紀錄，以商品為單位的單筆交易
    + 一張發票算一次
+ X：合併同一個顧客在同一天的交易紀錄
    + 視每位顧客一天最多只會來消費一次，仍有日期變數(row)
+ A：以顧客ID作為基本單位(row)的交易資料
    + 同一顧客在期間內所有的消費項目(column)整併：有買該商品就計數，並去除時間的變數
    + 此資料裡面有目標變數Y=0/1
+ A2：2月份有來購買顧客資料
    + 此資料裡面的Y全部等於1


![B-準備資料](https://imgur.com/N8mJYd5.png)

+ 將2月往前推一期，製作預測2月是否會來購買的模型
+ 分割資料用Ratio(TR:TS=7:3)
+ 製作新變數要在切割資料之前

![C-建立模型](https://i.imgur.com/UOeLbzl.png)

+ 迴歸模型通常是最不準但唯一可以得知x與y的關係(係數)的模型
+ 決策樹可以做類別模型，也可以做連續性模型
    + 資料量大時準確性一般比迴歸好，資料小時則看不出太大的差異
+ 隨機森林如果資料數量不多，效果其實不太好；反之，數量愈大的資料愈適合給隨機森林做，因其準確度很高
+ 只要是監督式學習的模型都可以做交叉驗證，提高準確度
+ 當然也可以做組合模型，加強模型的預測力
    + 不是相關性愈高的兩個模型相加就最好，有時候差異很大的模型(敏感度跟明確度都是1的極端分布)反而可以互補預測對方的弱點

![D-製作變數、改進模型](https://imgur.com/Ts7PKXf.png)

+ 製作新變數：
    從商品資料去找具有商業價值的解釋變量，找出顧客屬性分群、商品熱門與滯銷、區分明星商品與賠本商品、熱銷與滯銷地區等等
+ 改進模型：
    + 嘗試各種不同的模型方法
    + 做交叉驗證進行參數調教
        有兩個含意：
        1. 不知道正確的方法參數，希望他幫我們找到
        2. 會讓你的準確度變得有可信度(並非湊巧遇上對TS很有解釋力的模型，即使換了人當TS也有相同的水準)
    + 不用擔心新增變數的共線性問題：
        因為X之間的共線性不會對於模型的準確度產生影響，只會對係數造成偏誤
        迴歸模型可以使用step幫我們找到最佳的變數組合，他是透過一個一個變數慢慢加並找出最高準確度的方法，通常是為了避免共線性問題才這樣做

![E-進行預測](https://imgur.com/Oz16GOw.png)

因為看不到未來的資料，我們要先基於過去資料做初始模型：

+ 首先往前回推一期(11-1月)，2月假裝看不到，但我們還是可以得知目標變數Y(2月有無來消費)，並據此建立模型預測2月是否來買
+ 接著設定Ratio來切割TR/TS的資料，Training完模型後餵給Testing吃，來看我們預測的到底準不準
+ 因為我們有2月的Y的資料，所以可以測試這個模型到底有沒有預測力(有點像偷吃步)

但最後我們還是要知道這個模型到底適不適用於未來的預測：

+ 做初始模型時要不斷的嘗試，直到挑到一個AUC還不錯的模型後，再使用這個模型的方法參數，去建一個新的模型(最終模型)
+ 模型一樣，只是餵的資料不一樣
    + 再往後延一期，即從想要的月份往前推一期(12-2月的資料)
+ 一樣切割成TR和TS，這時候的Y用以前2月的拿來代入，再去預測3月會不會來買

雖然這邊就無法再像以前偷吃步的可以調到最高的AUC，但我們還是可以找出Base line模型，再稍微做調整

</font>
