【Python實作】Back to E’shanzen資料科學的商業分析

perfume case

在大多數MBA的課程中,教授會設計個案讓學生討論、學習站在決策者的角度去討論、分析問題,包括沒有答案的哈佛商業個案、管顧的個案面試,都是考驗一個人分析問題與解決問題的能力。

從大二開始,我就會設計一些資料科學的case給自己練習,因為最近又有很多人好奇商業分析跟資料科學的結合大概長什麼樣子,剛好朋友上了一門電商的課在賣香水酒精,所以我就以香水為題設計了這個仿真個案,問題與情境都是虛擬的XD 不過資料、商品、產業都是真實的,那就讓我們來看一下這篇個案的內容與著手分析。

我會完整示範一套商業分析的流程,也歡迎你一起跟著動手實作。架構與傳統的case book差不多,但是內容就會格外考驗「用資料科學協助解決問題」的部分。

通常case book 的架構會給出評分標準,包括產業、問題類型、問題描述與測驗重點,然後就會有商業問題與一些參考資料,下圖為我在面管理顧問公司之前第一個練的市場進入評估相關case ,產業則是CPG(消費品)

Kelogg business school case book

Case — Back to E’shanzen

https://www.facebook.com/108061754181856/photos/p.115203833467648/115203833467648/?type=1&theater
  • Industry : Cosmetics Perfume , FMCG branding and retailing
  • Case type : Operations
  • Analysis type : Exploration

案例背景:你是知名香水電商 — E’shanzen的策略顧問,最近客戶希望開始做2B的生意,也就是不只把平台當作一個面對消費者的銷售渠道,他們希望你能夠協助評估不同品牌的調性,藉此在策劃campaign時能夠提高自己的議價能力,透過掌握不同香水品牌特點來換取更多的站上資源,同時他們也希望透過平台上的資料來與廠商做策略規劃,提供產業報告與洞見來吸引更多廠商與之合作,身為一個顧問,你該怎麼協助解決這個問題呢?

# credit to Dennis , copy right reserved. Any commercial use is strictly prohibited

如果你想練更多data science 的case,歡迎透過信箱或者FB聯繫我。本文的程式碼與資料偏多所以就先帶過,這篇個案還是以思路分享為主,如果許多人想練習coding,我會再把資料、程式碼連結放上來~

Problem analysis

首先我們會想知道這個問題該用什麼方法,通常如果是我會先界定出這四個問題,並且思考該填入什麼內容能夠緊扣著我們的目標:

  • 分析目標:獲知不同品牌的定位
  • 能夠採取的行動:提供品牌洞察與建議、在Campaign時取得更多廠商資源
  • 資料來源:爬取品類眾多的電商資料來分析
  • 使用技術:文字探勘、Python

關於產品,首先香水這個產品,在過去主要歸類在奢侈品的消費類別,不過近年來隨著小眾品牌與消費升級,市場上也有許多不同價位的品牌出現,所以我們會想透過價格、品牌調性去分析香水,這樣就能知道不同品牌在市場上的定位了。

香水這個主題其實蠻有趣,有些人會寫香水的形象故事,類似如下:

比如這是形容Etat Libre d’Orange的龍與玫瑰款式。

原始資料大概長這樣

我們可以透過品牌來劃分出品牌定位,並且透過消費者心得分享來分析消費者對商品的意象(收在同一個類別即可)決定好了之後就可以著手分析,這邊資料我已經爬好了,首先讀入資料:

附註:insane 純粹是取 incense 的近似發音,這樣col name會比較短一點。

前面我們會做一些資料清洗的工作,其實你可以先大致觀察一下這份資料有什麼問題,我通常會把資料變成tidy structure,中心思想是一個欄位就是講一件事情(不得包含多個變數),比如說,slogan那個欄位其實可以拆出{類別}香 + 一般口號,那其實代表兩個欄位…etc. 清洗完之後如下:

因為我們想先挑出那些熱門款來分析,這樣對2B的business growth幫助比較大,所以我們就來看看熱門香水有哪些,並且比較平台所有類別的香水品類總數:

hot selling products
ALL
hot

顧客偏好

木質香水是最多人喜歡的,下面又有分成清新、花香等等… 通常會分成清新跟濃郁,清新一點可能是果香、柑橘,濃郁一些可以看到有美食、東方…
其中清新在每種風格(包括花果、海洋…)中又特別好。

木質香水的香水比較多是中性,所以受到男女生的歡迎,猜測中性香水的購買率還是好一點,有人說男生用顯得紳士低調有內涵,女生用顯得知性親和有氣質,這種香水大多出現在中後調,給人一種陽光溫和的感覺。

這邊剛好說一下中後調,我們的資料欄位有前中後香味,由於香水隨著時間味道會改變,精油成分的揮發速度不相同,通常我們也會看一款香水的持香度如何,

  • 前調:通常是噴下去馬上所散發的香氣,比較多是清新、印象深刻的感覺。
  • 中調:香水中的主角,因為持續時間又更長一點,通常聞到的香味就是來自中調。
  • 後調:香味通常都淡淡的,能夠持續很長的時間,

其實香水的層次就很像聽音樂,會有不同橋段所希望呈現出來的感覺。

商業分析

我們可以看到品類比較多是木質、花果香調,而進一步的前兩名會是花香跟清新,但是賣得比較好的是木質清新而不是木質花香,有可能消費者比較喜歡的是爽朗而不是甜膩的花香,這部分可以再近一步跟銷售確認。通常香水銷售都蠻了解客人詢問的狀況,如果不確定是否如此,可以在實體店請門市協助做這樣的調查。這樣一個一個看店家品類與熱賣品類的銷售狀況其實蠻累的,我們可以簡單用Rank來製作排名,這麼做可以將資料型態從interval 轉為 Ordernal,然後快速比較熱賣品項與電商品類的Rank差異。

top ranking product
back ranking

所以這邊我們就可以看到:

1. 花果清新太多貨,但是熱賣品沒那麼好,反觀海洋清新、柑橘、木質清新等其實可以再多進一些款式,說不定會更吸引人。

2. 花香的表現都不如預期(排名後5),反觀清新(排名前5)則有熱售大於款式的情況,我們可以在之後的消費者調研中了解消費者選擇花香、清新的差異,並且查看比例來了解消費者是否比較喜歡清新,還是更進一步,清新整體給人的風格到底是什麼?以做後續的進貨、生產研發等策略。

通常垂直電商的營收創造能力很大來自於進貨能力,定期在每季更新銷售狀況的表,可以幫助我們優化下一季的進貨策略與營收估計。

data product monitor

其實我們會希望分佈都在0,也就是熱賣款就進貨比較多的調節效果。這邊也可以作為一個監測圖,看看進貨是否難以反應熱賣品。

根據香味分類

樣品香有最多貨,運動香最少,其他還有一些香味也不知道怎麼分的lol ,比如上課香、撲倒香XD

接下來我們想看看香調跟風格之間的關係,以木質清新調為例:

前調
後調

像是木質清新調的前調就是以佛手柑為主,中調會用到肉豆蔻、薰衣草,最後會用到麝香、琥珀等等…

通常木質前調比較多會用到薰衣草、橘子,比較特別有菸草香可能就會用到柏樹、香根草,麝香則被廣泛用在後調中,這點跟之前學到的香水知識非常一致。

style extract

其他風格想知道通常都用到什麼配料的話,您也可以自行輸入風格來查看,只要調用上面寫好的函數即可:)比如我想看看花果清新調的香水原料:

花果清新
中調

花果清新跟木質清新比較,可以看到花果用了蠻多小蒼蘭、茉莉、玫瑰等花,木質則是簡單的薰衣草、天竺葵等等…

花果比較偏向柔和甜膩,不過重一點就會到甜膩跟刺鼻,也有人說濃郁會比較沈穩,看自己比較想要什麼風格囉!

Tag

因為風格幾乎都透過店員幫我們在tag標注好了 所以我們接下來看看tag欄位。

這邊有個小坑,tag是字串,我們可以用ast套件把它轉為list方便程式撰寫

比較多是清新風

所以受歡迎的木質清新雖然中性,不過「暖男」看起來是男性取向的,其他包括優雅、成熟則是所有性別通用,好感加分的字眼則蠻強烈的。

花果清新看起來稍微偏向主流女性取向,比如說柔美、氣質、甜美等等… 不過也會有其他性別想要營造柔美氣質,這樣來看也許大家買香水的風格或許比較偏向優雅風?我們可以把銷售較好的產品畫出來看看:

style for perfume

以及後五名:

我稍微看了一下,前五名最常出現的tag就是「成熟內斂」、「優雅路線」、「好感加分」,而比較差一點的後五名則有自己的詞,包括「性感、約會撲倒、柔美」等等… 就比較冷門一點,當然我們這邊只是先前單純用熱門銷售類別做出來的排名。如果有更完整的銷售數據會更準確一點,不過初步判斷「性感、約會撲倒、柔美」呃…應該是功能性香水XD,成熟內斂則是比較通用的。 如果搭配一點消費者資料,光憑很簡單的年齡、性別、職業、居住地則可以更準確描繪這些香水的受眾,這是品牌之後可以做的分析。

這邊可以給出的建議是:感覺商品方面可以再細分「成熟」與「優雅」,比如哪一種成熟、哪一種優雅的感覺,會更能精確描繪出顧客想要的香水風格。好感加分感覺被濫用了,可以透過場景再進一步細分何謂好感加分,比如「約會好感加分」、「派對好感加分」、「面試好感加分」之類的…像是面試用的香水就不會希望有那麼多變化(最好整場面試都是同樣的香味),會讓不同需求的人更精確找到自己想要的香水,並且推薦給身旁的人使用。比如你聽到對方最近許多面試,可能就可以送他一瓶、或者推薦他去購買面試好感加分類別的香水。

或者我們可以進一步設計商業實驗,透過標著不同的tag來看看什麼樣的文字效果比較好,可以促進銷售與轉化。

附註說明、mode_ml 則比較多是有關包裝的詞、試管、擦的樣式等等… 這邊就是good to know,不是我們的分析重點,稍微看一下即可。

價位分析

selling_price是銷售價格,price是原價,其實差蠻多的,我們可以畫圖來看更清楚一些:

distribution for perfume

稍微看一下統計數據,發現特價跟原價差距平均都便宜1500左右(也太多…),分佈均呈現常態,如果只在打折的時候買預算大概就是2000內可以搞定,不過我比較好奇的是最貴的香水是什麼:

在Python中使用max就可以抓出來囉!

是 Tom Ford Tobacco Oud ,看那精美的back_insane,超級多有的沒的,安息香是什麼東西XD 有人形容那種香類似纖細柔美的甜香味,宛如香草口味的甜點,好奇的時候真的會想聞聞看。主打為「成熟內斂品味」男。

分析上的應用

我們還可以做個香水挑選器,我們可以做個心理測驗來分析顧客是哪一種風格的人,進而推薦香水款式給顧客,或者乾脆讓他選他想要什麼香料,給他看這種香料會配出什麼樣的香水。 接下來還有一些應用,我初步想到的包括:

1. Pricing : 這感覺蠻好做

2. Brand position : 這感覺很有意思

3. recommendation system : 這感覺很實用(?

這次我們的主題是品牌定位,將會用到文字探勘的技術。 或者我們如果是轉貨的經銷商,可以分析我們所定的TA是哪群人,再去看貨源中符合我們需求的商品進貨來賣。

另外再提一下如果要做pricing model,我們還可以再拆分product_name的香水命名,香水的名稱有「香精」「香水」「淡香水」「古龍水」等。這些名稱來自法文的「parfum」「eau de parfum」「eau de toilette」「eau de Cologne」,溶於酒精的香精濃度不同名稱也有所不同。這些命名的特徵對pricing model其實有幫助,比如香精(法文parfum)的濃度20%以上、香水(eau de toilette)為12–20%、淡香水(eau de toilette)為7–12%、古龍水(eau de Cologne)為4–6%。香精定位為香水中最高等級的香氛,一般來說價格最高,香氣持久時間也最長。

品牌分析 — 香水風格定位

1. price level — brand

2. text clustering — use introduction

萃取出品牌

資料分析的過程經常是循環往復的,這邊我們可以看到用規則提取出的品牌非常雜,混了許多款式,稍微思考一下之後,我的解法是到電商的網站看有沒有整理好的品牌,通常都會有,因為品牌是一個B2C , B2B2C電商常使用的分類規則。

看到之後,我們再寫一個爬蟲把資料抓下來,然後讀取進來。透過比較品牌與文字的相似度來定義它。

這邊我們自己構建一個簡單提取香水品牌的函數,用文字相似度去分析,並且使用swifter加速,即使加速了還是需要101 sec,要有耐心的等一下。

題外話,光品牌識別也算是一份中型專案,在這裡為了簡單快速,我就選擇用很基本的文字相似度去做品牌識別。之前工作時曾負責一份專案 — 【建立brand detection的模型】

品牌識別的價值在電商平台很大,當時我建立了好幾個deep learning的model來做,效果非常棒,訓練出來的AI能夠幫我從紊亂的商品名稱中準確標準化品牌,對於資料分析上的價值在於data source與data warehouse。其實很多時候資料分析的專案不限定於優化一個非常下游的模型(比如推薦系統),有時候我們要做商業分析的時候需要更完整的資料,就要回到資料上游,協助資料倉儲的建立與清洗,會有「資料歸整化」的需求。

這些需求也需要圈定專案範圍、思考分析方式、研究這些解決方案、執行、追蹤與反饋,好處是之後這是可以重複使用的,所以初期的確會辛苦一點,但是可以幫助公司整體的資料體系更加完善。

接著分析品牌的價位:

Price level for brands

這邊有點亂,是因為我把全部品牌都丟進去了,如果有想看特定品牌,就select出來即可。我們可以觀察到ACCENDIS、Tom Ford的價位是比較高的,而OHANA MAHAALO、ICEBERG等則比較親民一點。

品牌文字探勘

通常在快銷品的消費者文字探勘中,我們會分析的文字是消費者的評論資料,這邊我們想做campaign,所以會想了解廠商的文案溝通方式來了解他們看待自己的品牌方式,在談資源時會更容易一些。

之前我有開發過一個NLP的套件,寫一行code直接跑完NLP analysis,所以直接導過來做文字相關的分析。

包括詞頻萃取、文字共現還有一堆有的沒的等等….通常詞頻萃取可以幫助我們找到「產品屬性」,而產品屬性可以建構出品牌定位圖,所以我都會先用詞頻來找屬性,再用MAP等方法做消費者知覺圖來對比消費者問卷調查的結果。

文案大概介於100~150字之間,商品名稱則是10~20字左右,比較重要的詞則有品牌、男女性、清新、設計、香氣、瓶身,也就是說我們可以把產品特質拆出三個面向:

1. 風格:清新?果香?

2. 視覺:設計、瓶身

3. 性別:代表

接下來我們可以分析「產品屬性」,了解「產品屬性」來分析各個品牌的定位點。

香水屬性
不同品牌屬性的關聯,越遠代表相對獨特

產品屬性我們會希望越遠越好,這樣比較可以構建出相對客觀、不同面向的圖,通常這邊會花很多時間跟業主、客戶討論,帶入領域知識來建立讓雙方都覺得合理的結果。這邊只是case,我就直接用TF-IDF(一種文字探勘的演算法)把關鍵詞當作產品屬性囉。

以下是詞頻截圖:

香水果然最多,這邊可以把他加入停用詞

觀察這個排名,我們將tidy_text架構下的產品屬性分離出來:

產品屬性:香氛、瓶身、設計、清新、、經典、氣息、性感、優雅、魅力、包裝

並且把這些屬性都mapping到品牌上:

然後用雷達圖呈現這100多個品牌的特色:

以Agent為例
以1881為例

來一個強勁的Marina

香氛跟優雅直接點好點滿XD

這樣我們就可以畫出感興趣的品牌定位,這樣還不夠,我們可以使用Brand perceptual map來畫出品牌在產品屬性的定位。這是我們這次分析的重點:

以Iceberg For Him為例,他的瓶身非常特別,香水穿上了毛衣,猶如情侶緊靠在一起取暖,相互依慰,是一款適合用來告白及約會的香水。我們可以看到他在瓶身方面就很特別。而有一群香水其實沒有被分到一個向度,也就是第二象限那邊,這代表我們這代表我們這次挑選的產品屬性其實不是很優,可以再透過顧客訪談、專家訪談來了解什麼樣的產品屬性比較好。

Iceberg For Him 的香水瓶身

還有比較深一點是可以用word2vec來找競品:

word2vec training

我們從這裡也可以看到Burberry、TOUS、Versace 的品牌定位特別強調經典,其中又可以透過詞向量來找出品牌行銷文案的策略定位,比如我們輸入TOUS,看看哪些品牌的文案是跟我們類似的:

1. 伯瓊的環戒

2. Vercase

3. Narciso

4. Coach

5. Jimmy chao

6. 萬寶龍

此時就要再去檢視這些品牌的行銷策略與產品線是否有朝我們公司的定位走,並且搭配雷達圖溝通與分析。

TOUS Branding

有趣一點還可以用到原料分析,來知道不同風格的香水該用什麼原料調配比較好,什麼原料會一起使用搭配,以佛手柑為例:

佛手柑大多都是從義大利的西西里來的,最常被用在樣品香,看到「柑橘」,查了資料之後發現佛手柑味道清甜,與柑橘的味道有些類似,而它也有很高的營養價值。透過這張表,我們就可以知道要使用某個原料時可以搭配哪些原料來調香囉!

分析完畢之後,可以最後從機會點與市場策略去彙報與總結觀察,而次要產生的圖表、數據就放在Appendix。比如我現在想跟TOUS談聯合商業企劃,就會做Slide來告訴他他目前的機會點、我們可以怎麼幫助他增長,好比跟競爭品Narciso對比:

Example
用雷達圖搭配受眾來報告

通常我在畫slides的時候會先把假說的故事線搭好,並且在假說驗證的過程中填寫下面內容與證據,所以資料分析、建模有時候不是結束,而是一個開始。接著我們就可以針對要討論的策略去填滿下面的內容與故事,管顧就是留白,不過因為之前寫過前端的經驗,所以我還是習慣用Lorem語法(產生假字讓畫面好看一點)補一下。

然後就可以帶著你的Slides去跟客戶開會了~那麼以上,就是這次的資料科學與商業分析的Case- Back to E’shanzen 。如果想知道案例中的這家店是做什麼的,點這兒:https://pse.is/SG5DL ,就可以到我同學的賣場逛逛了XD

歡迎想學習Python資料科學、商業分析、金融知識的人一起交流!本部落格的內容全部都是基於「分享」的實作、理論兼顧文章,希望能夠幫助到所有對資料科學領域有興趣的人們,長期關注可按左手邊的Follow!若喜歡我在 Medium 的內容,可以拍個手(Claps)這邊想做個實驗,好讓我知道你/妳喜不喜歡這篇文章:
拍 10 下:簽個到,表示支持(謝謝鼓勵!)
拍 20 下:想要我多寫「商管相關」
拍 30 下:想要我多寫「資科相關」
拍 50 下:我有你這讀者寫這篇也心滿意足了!

敬請期待下一篇!或是您也可以逛逛我的其他資料科學文章:人工智慧商務系列:

Python資料科學系列:

看我用金融的概念解釋AI:

如果想跟著我實作資料科學,開始寫程式必知必會基礎系列:

--

--

戴士翔 | Dennis Dai
Finformation當資料科學遇上財務金融

外商分析顧問,Ex- Apple Data Scientist,曾在FMCG巨頭/日商管顧/MBB管顧/高成長電商從事商業分析與數位轉型,專注分享管顧、商業、數據分析的思考。分析/演講/合作歡迎來信:dennis.dai.1011@gmail.com