網站數據分析(8)——商品運營分析模型

本節將介紹幾個經常使用的商品分析模型,包括商品價格敏感度模型、新產品市場定位模型、銷售預測模型、商品關聯銷售模型、異常訂單檢測模型、商品規劃的最優組合。算法

1、商品價格敏感度模型

商品價格敏感度模型是指經過研究找到用戶對於價格是否敏感以及敏感程度的價格槓桿。利用價格敏感度模型能夠輔助於銷售訂價,促銷活動的折扣方式、參考價格、價格變更幅度等方面的參考。例如:bash

  • 促銷活動時是否應該包含M2商品。
  • 當商品M3提價100元時,訂單量會如何變化。
  • 在商品詳情頁的參考價格應該定爲多少才能讓客戶感受到已經降價並觸發下單動做。
  • 滿減、滿返、跨品類用券等哪些方式最適合M4商品。

商品價格敏感度分析能夠經過兩種方式實現。函數

1.1 調研問卷法

經過調研問卷的形式針對關注的品類或商品作調研分析是比較通用的一種方法。這種方法能夠得到品類詳細信息,而且能夠經過問卷設置不一樣的關注信息點,收集到的信息更符合實際需求。工具

可是,當面臨新的價格敏感度分析需求時,一般都須要從新開展調研分析工做。這種方式實施起來週期較長且反饋結果較慢,另外,當要收集的商品信息較多時,可能很難得到完整數據。優化

1.2 數據建模法

經過數據建模的方式創建商品價格和銷售量之間的關係模型是研究價格敏感度的有效方法。這種方法實施起來相對簡單:spa

首先,收集不一樣價格下的銷售數據。價格敏感度模型須要有基於不一樣價格下的銷售數據產生,所以須要商品運營部門針對性的作調價。這種調價動做根據需求的不一樣,多是長期的,也多是短時間的。長期的調價是一種「天然狀態」,由於在一個較長週期內商品會經歷生命週期的不一樣階段,並結合商品促銷、打折等運營工做產生多種價格和銷售數據;而短時間的調價更多的是爲了採集數據而產生。3d

其次,數據建模分析。商品價格敏感度模型關注的主要是價格和銷量之間的關係,能夠用迴歸方法來解決。在迴歸方法中,自變量中除了價格外,還須要包含其餘兩類信息:rest

  • 商品信息,商品品類、上市時間、同期競爭對手價格、是否參與促銷活動、促銷方式、折扣力度、通用屬性等。
  • 客戶信息,客戶性別、年齡、收入、學歷、會員級別、歷史訂單量、品類偏好度、活躍度、價值度等。

之因此要將大量的商品信息和客戶信息加入到迴歸模型中,是由於若是隻針對價格和商品銷售量作迴歸,那麼價格自己能解釋的商品銷售量變化可能會很是有限,銷量的變化還可能受到其餘不少因素的影響,所以要在控制這些干擾因素的前提下作迴歸模型。code

2、新產品市場定位模型

新產品市場定位分析用於當企業新生產或策劃一款產品時,須要根據市場上現有的競爭對手產品狀況作定位分析。該分析的目的是評估新產品與哪些產品能造成競品關係,能夠針對性地找到與競品的差別性和優點,例如功能特色、使用週期、產品質量等,從而應用到產品訂價、市場宣傳、渠道推廣等方面。cdn

新產品市場定位分析能夠經過基於類似度的方法實現。例如,使用非監督式的KNN(K近鄰),模型的核心是經過對新產品的數據與現有數據的比較,發現跟新產品類似的其餘產品。經過KNN實現新產品市場定位分析的步驟以下:

  • 步驟1:數據準備。先準備好要訓練的數據集,因爲這不是一個分類應用,所以數據集中只包含不一樣競品的特徵變量便可,無需目標變量。
  • 步驟2:數據預處理。預處理過程根據數據集狀況可能包括二值化標誌轉換、缺失值處理、異常值處理、數據標準化等。須要注意的是, 因爲是基於距離的計算,分類和順序變量須要作二值化轉換,異常值(包括量綱和值的異常)都會對類似度產生重大影響。
  • 步驟3:創建KNN模型並訓練模型。直接使用NearestNeighbors方法創建模型後使用fit方法作訓練。
  • 步驟4:找到新產品最近的K個類似產品。使用KNN模型的 kneighbors方法得到指定數量的K個近鄰。

以下是一段簡單但包含了核心步驟的示例:

from sklearn.neighbors import NearestNeighbors #導入NearestNeighbors庫 
X = [[0., 0.1, 0.6], [0., 1.5, 0.3], [1.2, 1.6, 0.5]] #定義訓練集,訓練集包含3 條記錄,每一個記錄包含3個特徵變量 
neigh = NearestNeighbors(n_neighbors=1) #創建非監督式的KNN模型對象 neigh.fit(X) # 訓練模型對象 
new_X = [[1., 1., 1.]] #要預測的新產品數據 print(neigh.kneighbors(new_X)) #打印輸出新產品最類似的訓練集產品
複製代碼

結果:

(array([[ 0.80622577]]), array([[2]]))
複製代碼

其中第一個數字是與新產品數據最類似的產品的距離,第二個數字是對應最類似產品記錄的索引值(注意索引值從0開始,2表達第三個)。

3、銷售預測模型

銷售預測模型根據歷史的銷售數據來預測將來可能產生的銷售狀況。該模型經常使用於促銷活動前的費用申請、目標制定、活動策略等的輔助支持。

銷售預測模型一般要獲得的結果爲將來會產生多少銷售量、收入、訂單量等具體數值,可經過時間序列、迴歸和分類三種方法實現。

  • 基於時間序列作銷售預測。使用時間序列作銷售預測的方法經常使用於沒有太多可用的自變量的場景下,只能基於歷史的銷售數據作預測性分析。有關時間序列的更多話題,後面再講。
  • 基於迴歸作銷售預測。基於可控的特徵變量創建迴歸模型來預測將來的銷售狀況是更經常使用的方法,有關回歸模型的更多內容,後面再講。
  • 基於分類作銷售預測。分類方法是針對每一個銷售客戶產生的是否購買的預測分類,而後再基於能產生購買的預測分類作客單價、訂單量和收入的分析。這是一種對於具體數值的變通實現思路。有關分類分析的更多內容,後面再講。

4、商品關聯銷售模型

商品關聯銷售模型主要用來解決哪些商品能夠一塊兒售賣或不能一塊兒打包組合的問題。關聯銷售是商品銷售的常態,也是促進單次銷售收入和拉昇復購效果的有效手段。

商品關聯銷售模型的實現方式是關聯類算法,包括Apriori、FP-Growth、PrefixSpan、SPADE、AprioriAll、AprioriSome等,主要實現的是基於一次訂單內的交叉銷售以及基於時間序列的關聯銷售。

關聯銷售算法的實現步驟上與普通的監督式和監督式算法略有不一樣,緣由是關聯分析對於數據集的要求不一樣。通常包括三種數據源格式:

  • 第一種是事務型交易數據,典型的數據格式是每一個數據行以訂單 ID或客戶ID做爲關聯分析的參照維度,若是同一個訂單內有多少個商品,那麼將會有多個數據行記錄,以下圖。

  • 第二種是合併後的交易數據,數據格式是每一個數據行以訂單ID或客戶ID做爲分析的參照維度,若是同一個訂單內有多個商品,那麼多個商品會被合併到一條記錄中,以下圖。

  • 第三種是真值表格數據,每一個數據行是每一個訂單ID或客戶ID,列是每一個要關聯項目的是否購買值,一般以T或F來表示,以下圖。

以上三種數據格式中,第一種和第二種常見於企業內部的源數據環境或數據倉庫,第三種須要通過ETL處理獲得,不少第三方工具也能夠提供這種數據形式。若是企業內不具有可以直接作關聯分析的數據,則須要作對應處理。有關關聯分析的更多內容,後面再講。

5、異常訂單檢測

異常訂單檢測用來識別在訂單(尤爲是促銷活動中的訂單)中的異常狀態,目標找到非普通用戶的訂單記錄,例如黃牛訂單、惡意訂單、商家刷單等。

黃牛訂單會大量削減促銷對普通用戶的吸引程度,使得促銷權益和利益被一小部分人獲取,而非給到目標會員。

惡意訂單則更加危險,不少競爭對手間會一般這種方式在促銷活動中,將大量的商品庫存經過訂單的方式鎖定,而後再活動結束後經過取消、退貨等方式釋放庫存。這種方式將使促銷活動因爲沒法真正賣出商品而沒法實現促銷的目的,同時還會消耗公司大量的人力、物力,是各個公司都很是反感的惡意競爭方式。

商家刷單是一種常見的用於提高商家排名的方式,一般由商家來安排內部或關聯人員大量購買商品,以造成商家流量和銷售提高的目的。

異常訂單檢測主要基於兩類方法實現:

  • 一類是基於監督式的分類算法。將歷史已經識別出來的真實異常訂單數據經過分類模型(例如SVM、隨機森林等)作訓練,而後應用新數據作分類預測,看預測結果是否屬於異常訂單。
  • 一類是基於非監督式的算法。經過非監督式算法(例如OneClassSVM)基於歷史的數據作訓練,而後針對新的數據作判別,找到存在異常可能性標籤的訂單列表。

6、商品規劃的最優組合

在作商品促銷或廣告宣傳時,一般企業會面臨多種組合策略,它是在必定限制條件下考慮經過何種組合策略來實現最大或最小目標。此時,能夠考慮使用線性規劃方法。

線性規劃(Linear programming,LP)是運籌學中研究比較早、方式相對成熟且實用性很是強的研究領域,主要用來輔助人們進行科學管理,目標是合理地利用有限的人力、物力、財力等資源做出的最優決策。解決簡單線性規劃問題的最直接的方法是圖解法,即藉助直線與平面區域的交點求解直線在y軸上的截距的最大值或最小值。

在作線性規劃時涉及幾個概念:

  • 未知數:影響決策主要變量或因素。
  • 約束條件:解決線性規劃問題時已知的並須遵照的前提條件。
  • 目標函數:用來表示未知數與目標變量關係的函數,線性規劃中通常是線性函數。
  • 可行域:知足優化問題約束條件的解叫做可行解,由全部可行解組成的集合叫做可行域。
  • 最優解:知足目標函數最大化或最小化目標的最優的解。

實現線性規劃的基本步驟以下:

  • 步驟1:找到影響目標的主要因素,它們是規劃中的未知數。
  • 步驟2:基於未知數肯定線性約束條件。
  • 步驟3:由未知數和目標之間的關係肯定目標函數。
  • 步驟4:找到直角座標系中的可行域。
  • 步驟5:在可行域內求目標函數的最優解及最優值。

爲了能清晰地表達上述概念和步驟,在此經過一個簡單的示例演示該過程。

假設公司有P1和P2兩種商品,當推廣P1商品時,每次費用爲60元;當推廣P2商品時,每次費用爲30元。如今公司有1800元預算能夠用來作P1和P2商品推廣,其中受到兩種商品尺寸和品類的限制,P1商品最多隻能投放20次,P2商品最多隻能投放40次,而且兩種商品的總投放次數不超過45次。已知每次推廣P1和P2的商品分別能得到單品毛利爲40元和30元,問:如何安排P1和P2的商品投放次數才能達到銷售毛利最大化目標?

爲了解決問題,咱們假設P1和P2兩種商品的投放次數分別是X1和X2,最大化銷售毛利爲z,此時:

因爲這是一個簡單二維變量,所以能夠先畫出直角座標圖和可行域,而後基於目標函數找到最優解位置

經過圖能夠發現最優解是目標函數與X1+X2=45和60X1+30X2=1800的交點,求解兩個函數的解用到的是九年義務教育階段基本數學知識。

  • 步驟1:將等式1作轉換:X1=45-X2 而後將轉換後的X1代入等式2,並依次求解:
  • 步驟2:60(45-X2)+30X2=1800
  • 步驟3:2700-60X2+30X2=1800
  • 步驟4:2700-30X2=1800
  • 步驟5:30X2=900
  • 步驟6:X2=30
  • 步驟7:X1=45-30=15
  • 步驟8:而後將X1和X2代入目標函數: z=40X1+30X2=40×15+30×30=1500

若是線性規劃中有多個變量,那麼咱們沒法經過圖形的方式直接發現最優值的位置,此時能夠藉助Python的線性規劃庫來完成線性求解工做,包括scipy.optimize.linprog、pulp等。

相關文章
相關標籤/搜索