用資料分析的方法來探討 — 如何成為資料科學家?-系列1

行銷資料科學
22 min readNov 3, 2020

--

相信大家都有耳聞過「21世紀最性感的職業 — 資料科學家」,這是源自《哈佛商業評論》(Harvard Business Review)於2012年發表的文章。臺灣的《Cheers雜誌》評論本世紀最「性感」的5種職業,分別為資料科學家、資料視覺化分析師、商業智慧分析師、資料管理師、資料工程師,其中有四種職業與「資料」有密切的關聯,到底資料「性感」在哪裡呢? 而「資料科學家」真正的工作內容又在做什麼呢?

Data Scientist: The Sexiest Job of the 21st Century (原文連結:https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century)

資料對於數據分析非常的重要,使用「好的資料」與準確的分析來解決問題,絕對能給你一個好飯碗!

Glassdoor是一個職場資訊平台,在美國它是一個很重要的薪資資訊分享網站。根據2020年10月Glassdoor的資料,資料科學家的平均年薪為US$113,309,相當於台幣320萬! 雖然美國與臺灣有一部分的薪資差距,但資料科學家在臺灣的平均薪水也絕對能讓您滿意!

資料科學家在美國的平均年薪 (網站連結:https://www.glassdoor.com/Salaries/data-scientist-salary-SRCH_KO0,14.htm)

資料科學是什麼?

在探討資料科學家前,我們先來討論什麼是資料科學。「資料科學」的定義為「使用科學化的方法,從許多結構化及非結構化的資料中得到資訊及可行的見解,進而解決問題。」更直觀一點來說,資料科學由以下八大學科所構成:

構成資料科學的八大學科

由此可知,資料科學要兼顧多種面向,並且可以歸類成三種專業領域:

1. 數理能力

包括基礎數學微積分線性代數,由於「建構分析模型」是資料科學很重要的部分,因此微積分上的極限、極值、函數逼近…等等概念是不可或缺的;而線性代數中最重要的為「矩陣」觀念,對於思考實際資料的架構,還有分析模型有很大的幫助,因此也是資料科學的基本技能之一。

(圖片來源:https://commons.wikimedia.org/wiki/File:Matrix_logo.svg)

此外,還有更專業的學科:統計學機率論,許多機器學習的估計方法就是建構在機率與數理統計之上的,還有其他的理論基礎、概念在機器學習上十分重要,如:隨機變數、大數法則、中央極限定理等等。

(圖片來源:https://www.vecteezy.com/vector-art/143608-linear-icons-with-charts-and-statistics)

2. 資訊科學能力

在資料分析上程式設計能力是不可或缺的技能,其中最相關的基礎學科包含:資料結構演算法,若掌握了這兩個專業能力,會對你在編程執行效率及程式可讀性上有很顯著的效果。
更進階的資訊科學為機器學習深度學習,縱使現今有很多機器學習的套件方便我們做使用,如:Python的Scikit-learn、R的rpart、e1071。但是更龐大的數據、更複雜的資料結構及資料科學日益增加的應用領域,其所需的演算法深度也大為增加,例如:我們能夠將Kaggle平台上不同資料科學家致力開發新的演算法,透過更好的調參技術、優化模型,增加預測的準確度。由此可知,資訊科學的重要性,強大的程式執行能力,及精益求精的精神,是資料科學的必備條件。

3. 應用領域知識

資料科學是一種科學方法,必須要應用在實際的領域,才能發揮其效用來解決問題。
我們以「行銷資料科學」為例,其應用領域的專業知識就是「行銷管理」。企業透過行銷管理來研究市場、制訂相關行銷策略、滿足消費者需求,而在行銷資料科學之中,需要行銷管理的技能才得以進行更準確的資料分析,如:我們可以透過客戶消費的資料來進行「RFM顧客分群」找出行銷資源及預算配置的最佳方法,進行精準行銷,滿足顧客的需求並達到更大的獲利。
而想要要建構出此分析架構,並產出資料分析的最佳決策,除了強大的分析能力外,Domain Knowledge也擔任很重要的角色。

因此,要擔任資料科學家,「數理能力」「資訊科學能力」「應用領域知識」是最主要的核心技能,要有此三種跨領域的專業,並且透過數據分析進行完善的決策,累積經驗產出有用的洞見。

要具備以上的能力是需要經過很長的學習時間與努力才能達成,這也體現了資料科學家養成的不易。雖然資料科學家的工作門檻很高,但如果能透過完善的學習及練習,一定也能成為資料科學界中的佼佼者!

所以…要怎麼成為資料科學家呢?

想必大家如果是想踏上或是轉職到資料科學領域的新手,在學習或是實做前心裡都會有幾個問題:

  • 資料科學家主要工作內容有哪些?
  • 資料科學家會使用哪種程式語言?
  • 如果要深入資料科學,可以透過什麼資源來了解呢?

接下來我們將使用先前所介紹過的Kaggle競賽 “2019 Machine Learning and Data Science Survey” 的資料集,透過「資料科學」中的方法,來釐清上述關於「資料科學家」的問題,並且深入了解此資料集的內容,透過程式碼進行資料預處理及視覺化。

一、資料集簡介

此競賽的數據是源自於2019年針對資料科學及機器學習的使用者所做的調查,詢問了34個問題並蒐集了19,717筆數據。接下來,我們將使用競賽中所提供的資料集 ”multiple_choice_responses.csv”, 並使用以下程式碼,概觀的統整出此份調查詢問的問題及填答內容 (如下圖一)。

# 載入pandas套件
import pandas as pd
# 讀取資料
multiple_choice = pd.read_csv('multiple_choice_responses.csv')
multiple_choice.head(8)
圖一、讀取資料

二、資料科學家主要工作內容有哪些?

此題主要探討資料科學家&工作間的分配關係,因此在資料集中,我們選擇與「職業」及「工作內容」最有關聯的調查題目來進行研究,以下分別為Q5及Q9的題目設定:

Q5. Select the title most similar to your current role (or most recent title if retired): — Selected Choice

Q9. Select any activities that make up an important part of your role at work: (Select all that apply) — Selected Choice

找出所需要的資料之後,接下來我們使用程式碼,遵循以下步驟來進行視覺化分析吧:

1. 資料預處理

繪製圖表前,最重要的就是資料處理啦!
首先,我們取出Q5及Q9的資料,並在Q5. 職業的資料中篩選,只取出「資料科學家」的填答內容。
另外可以發現,Q9. 工作內容是一個複選題,因此此題由多個欄位組成 (如下圖二)。

# 抓出第九題的資料
lst = []
for i in multiple_choice.columns:
if i[:2] == 'Q9':
lst.append(i)
activity = multiple_choice[lst]
# 加入Q5的資料
activity = activity.join(multiple_choice.iloc[1:,6],lsuffix='Q9_Part_1', rsuffix='Q5')
# 將Q5擷取出「資料科學家」
activity = activity[activity['Q5'] == 'Data Scientist']
activity
圖二、資料預處理

接下來,我們取出Q9. 工作內容複選題的所有選項 (如下圖三)。

# 抓出選項內容
choose = multiple_choice[lst].iloc[0].apply(lambda x: ''.join(x.split('-')[2:]))
choose.values
圖三、Q9複選題選項

並計算Q9每個選項在填資料科學家中的選擇數量 (如下圖四)。

activity_df = pd.DataFrame()# 將選項題目放入
activity_df['choice'] = list(choose.values)
# 計算選擇數量並放入
activity_df['value'] = list(map(lambda i: len(activity.iloc[:,i].dropna()), list(range(activity.shape[1]-1))))
activity_df
圖四、資料科學家在Q9複選題的選擇數量

2. 資料視覺化

我們藉由plotly套件繪製此資料,並使用水平柱狀圖來呈現 (如下圖五)。

# 刪除'Other'及'Text'
activity_df = activity_df.iloc[:-2, :]
# 由大到小排序
activity_df = activity_df.sort_values(by = ['value'], ascending=False)
# 自動儲存plotly圖表
import plotly as py
pyplt = py.offline.plot
# 繪製
import plotly.graph_objects as go
fig = go.Figure(go.Bar(
x=[*activity_df['value']],
y=[*activity_df['choice']],
orientation='h'),
go.Layout(yaxis=dict(autorange="reversed")))
fig.update_layout(title_text='The Activity of Data Scientist')
fig.show()
# 圖表儲存
pyplt(fig, filename ='The Activity of Data Scientist.html')
圖五、The Activity of Data Scientist

3. 分析

以下為資料科學家主要工作內容的前三名:

  • 分析並了解資料對產品或企業決策的影響
  • 探索機器學習應用領域
  • 改善現有的機器學習模型

我們可以將此結果與數據分析的過程來比較。
數據分析的過程可以簡單的統整為:資料選擇->資料分析方法->應用及改善

資料選擇階段:資料科學家會面對到的問題應是「要解決什麼問題?」和「該使用哪些資料作分析?」由於開啟一段資料分析的過程需要花費很多的資源及時間,因此一開始的資料分析的導向十分重要,要考量的面向也很多,例如:企業政策、現有資料內容、預期效益等等,每一個決策都有可能對企業的營運有很大的影響,因此「分析並了解資料對產品或企業決策的影響」是資料科學家主要工作內容。

資料分析方法階段:選定好資料分析的方向及所需資料後,接下來會遇到的問題是「該使用什麼方法分析?」不同的資料集,各自有適合的機器學習方法,有時資料包含了特殊的資料結構,需要特別開發演算法來擬合,因此「探索機器學習應用領域」為資料科學家主要工作內容之一。

應用及改善階段:「改善現有的機器學習模型」對於資料分析也是很重要的過程,有時使用的演算法無法達到我們的預期效益或實際需求,持續的改善機器學習模型是資料科學家必備的能力。

三、資料科學家會使用哪種程式語言?

我們了解到「資訊科學能力」對於資料科學家的重要性之後,該學習哪種程式語言作為入門應該是大家心裡面的第一個問題。程式語言有千千百百種,資料科學家們都使用哪一個呢? 他們推薦使用哪一種語言呢? 我們將在以下從資料科學家的經驗為大家解答。

我們將使用資料集中的Q18. 使用語言Q19.推薦語言來進行分析,以下分別為Q18、Q19的題目設定:

Q18. What programming languages do you use on a regular basis? (Select all that apply) — Selected Choice

Q19. What programming language would you recommend an aspiring data scientist to learn first? — Selected Choice

找出所需要的資料之後,接下來我們使用程式碼,分別繪製各職業使用語言各職業推薦語言的圖表:

1. 各職業使用語言資料預處理

首先如同前面的資料處理方式,抓取出Q18. 使用語言Q5. 職業資料,並更改column names (如下圖六)。

# 抓出Q18的資料
lst = []
for i in multiple_choice.columns:
if i[:3] == 'Q18':
lst.append(i)
job = multiple_choice[lst].iloc[1:,]
# 加入Q5的資料
job = job.join(multiple_choice.iloc[1:,6],lsuffix='Q18_Part_1', rsuffix='Q5')
# 提出Q18複選題的選項
choose = multiple_choice[lst].iloc[0].apply(lambda x: ''.join(x.split('-')[2:]).replace(' ',''))
job.columns = list(choose.values) + ['Q5']
job
圖六、各職業使用語言資料預處理(抓出Q18及Q5)

並將Q18. 使用語言複選題的欄位合併,整理成Treemap所需格式 (如下圖七)。

# dataframe整理成Treemap的格式
df = job[['Python','Q5']].dropna()
df.columns= ['language','Q5']
for language in list(choose.values[1:-3]):
lan_df = job[[language,'Q5']].dropna()
lan_df.columns= ['language','Q5']
df = df.append(lan_df)
df['value'] = 1
df
圖七、 各職業使用語言資料預處理(整理成Treepmap格式)

2. 各職業推薦語言資料預處理

我們一樣將Q19.推薦語言Q5. 職業資料作合併,並去掉空值整理成Treemap所需格式 (如下圖八)。

# 取出Q19、Q5資料,並去除空值
recommend = multiple_choice[['Q19','Q5']].iloc[1:,].dropna()
recommend.columns = ['language','job']
recommend['value'] = 1
recommend
圖八、各職業推薦語言資料預處理

3. 各職業使用語言資料視覺化

資料整理完後就開始來繪圖吧,以下圖表是使用plotly套件提供的Treepmap function來繪製的 (如下圖九)。
plotly套件最大的特色是可以製作動態的圖表,可以點選圖表內容並得到圖表實際數值 (如下影一),在資料呈現上是非常好的工具,若對plotly套件有興趣,下篇文章將有更詳細的介紹!

# 繪製各職業使用語言Treemap
import plotly.express as px
fig = px.treemap(df, path=['Q5', 'language',], values='value', color='language', color_discrete_sequence=px.colors.qualitative.Pastel,
title ='Language Used For Each Jobs')
fig.show()
# 圖表儲存
pyplt(fig, filename ='Language Used For Each Jobs.html')
圖九、各職業使用語言Treemap
影一、plotly treemap展示

4. 各職業推薦語言資料視覺化

各職業推薦語言資料也是使用plotly套件的Treepmap來進行繪製的 (如下圖十)。

# 繪製各職業推薦語言Treemap
import plotly.express as px
fig = px.treemap(recommend, path=['job', 'language',], values='value', color='language', color_discrete_sequence=px.colors.qualitative.Pastel,
title ='Language Recommend For Each Jobs')
fig.show()
# 圖表儲存
pyplt(fig, filename ='Language Recommend For Each Jobs.html')
圖十、各職業使用語言Treemap

5. 分析

相信大家從以上兩個圖表都可以發現到「Python」不管是在使用或推薦語言,在各個職位中都是名列前茅的佼佼者!
尤其在本文所探討的「資料科學家」Python都取得第一名的位置,因此我們推薦,若要加入資料科學家的行列,Python是最推薦的程式語言! 另外第二及第三名為R及SQL語言,以下是我們簡單統整出各語言的特色與應用領域:

  • Python -> 容易撰寫、直觀、適合入門,在資料整理使用機器學習演算法執行深度學習時建議使用。
  • R -> 在統計分析視覺化上功能強大,適合用來數據檢視製作視覺化圖表統計分析。
  • SQL -> 用於建立、查詢、更新及管理關聯式資料庫系統。

若想了解更多數據分析領域各程式語言的比較與特色,可以參考下文連結,有更詳細的介紹喔!

數據分析的領導者 — 爲什麼要使用Python語言呢?

下篇文章,我們將和大家分享繼續分享,若是想要深入資料科學的學習,成為一位優秀的資料科學家,可以透過那些資源來強化呢?

作者:許喬雅(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)

歡迎加入我們的Telegram獲取即時訊息!https://t.me/marketingdatascience
歡迎加入我們的Line@獲取即時訊息!https://line.me/R/ti/p/%40cde8265r

您可能有興趣:

📢TMR全新線上直播課程

【直播Workshop-線上實戰講堂】
《用AI進行顧客資料分析與銷售判斷》

🔹直播日期:11/07(六)
🔹直播時間:14:00–17:00
🔹課程詳情:https://bit.ly/2RHOwT6

【課程簡介】
📌Python技法結合商業思維,一步步建立數值化思考能力
📌機器學習分析顧客行為,找出最佳獲利模式
📌輿情數據結合STP策略,洞察潛在藍海市場
📌專業講師實案講解,帶您快速落地應用

❗現在購買還有多種好康優惠❗
💥早鳥價 :$550(7折)
💥兩人以上同行:$500(64折)
(原價:$780)

📢趕緊號召親朋好友一起上課~
🏃‍♂前往報名:https://bit.ly/2RHOwT6

— — — — — — — — — — — — — —

📢TMR為您量身打造「全方位數據課程」

👨‍🎓熱門Python程式語言結合全新商業思維,快來終生學習不間斷!

【TMR】 X 【 好學校】
👨‍💼Python商業全系列數位課程👨‍💼

#行銷人必學實用Python課程

《 Python 0到1 基礎商業數據分析實戰 》
💥 價格 :3188
👉 從0開始:手把手從頭學習,適合完全沒學過的學員
👉 商業應用全台最多:傳授市面上少見的Python實務應用
👉 網路輿情爬蟲演練:網路輿情商務爬蟲技法
👉 競品分析:競爭價值定位圖找出藍海策略
👉 貨架陳列視覺化:解析行銷策略及廣告預算配置方法
🛒 前往購買:https://hahow.in/cr/python0-1

《 顧客分類大師:Python x RFM 會員經營新觀點 》
💥 價格 :2388

🎯 Python X RFM最佳拍檔,輕鬆鎖定潛(錢)在顧客
不需要出門,在家也能學習專業課程,讓你擁有會員經營的新思維!

本課程以五個面向為您的企業,做更深入的健診:
👉 市場面:以最基本的顧客消費資料(頻率、購買次數),將現有顧客區隔分類。
👉 財務面:計算出在每個顧客身上所賺得毛利,在不同客群中的獲利。
👉 行銷面:藉由 RFM 的分析進行行銷預算重新分配。
👉 產品面:觀察在不同客群中,各個產品的銷售狀況。
👉 顧客回購面:分析顧客的購買週期後,進行精準推薦。
🛒 前往購買:https://hahow.in/cr/rfm-model

《 AI 行銷學:用 Python 機器學習創造商業新價值 》
💥 價格 :3888
👉 全台第一門Python機器學習線上課程
👉 教導你快速理解Logistic Regression, XGBoost, Random Forest商務機器學習模型。
👉 建構老闆或主管們看得懂的模型評估指標,讓精準行銷方案更容易被接受且推出
👉 如何利用機器學習找出消費者心中的重要變數及客樣貌與特徵,做到個體及總體的商品推薦?
👉 如何從數以萬計的消費資料中偵測可能的詐欺名單?
🛒 前往購買:https://hahow.in/cr/python-ml

#實用投資分析課程

《 用 Python 打造自己的股票小秘書 》
💥 價格 :4288
👉 打造自動推播機器人,趁著股市最近低迷,找出最適進場點
👉 「到價提醒」功能,大大提升投資便利性
👉 了解Python雲端服務架構,完整的專案流程
👉 孰悉No SQL資料庫操作,未來大數據的基礎
🛒 前往購買:https://hahow.in/cr/stock-secretary

#好學校企業百大課程之一:

台科 EMBA 年年爆滿的一門 Word 課(A系列)
💥 價格 :950
👉 系統性學習Office軟體功能,教您別人不知道的快捷鍵
👉 調整不受控制的行距與精準對齊排版
👉 一鍵轉換Word到Excel
👉 有效率處理企畫書、畢業論文、小組報告、公文等
🛒 前往購買:https://hahow.in/cr/tmr-word1

台科 EMBA 年年爆滿的一門 Word 課(B+C系列)
💥 價格 :1,050
👉 傳授獨家快捷鍵字典
👉 分享好用的大綱模式,讓文章處理更有效率
👉 建立大綱模式、多層次清單、目錄與圖表目錄,掌握文件編輯規則
👉 優化文章的邏輯架構
🛒 前往購買:https://hahow.in/cr/tmr-word2

— — — — — — — — — — — — — — — — -

【TMR】 X 【工研院】
🏭工業4.0大數據智慧應用課程🏭

《Python工業4.0人工智慧:製程資料處理大師》

製程數據資料 X 資料科學,
為您開啟工業人工智慧領域的大門!
👉全球前十大智慧製程案例實戰
👉專業講師手把手帶您入門製程資料處理分析
👉課後完整模組心法讓您通通帶回家

💥價格 : 2,800
🏃趕緊手刀前往購買:https://bit.ly/39koNbn

— — — — — — — — — — — — — — — — -

2020課程地圖

💪 點我看更多

🏆 國內第一本行銷資料科學專書

💪 點我看書本資訊

🏆 國內第一本行銷資料科學 ” 實作 ” 專書

💪 點我看書本資訊

🏆國內第一本「股票小祕書」專書

附上購書網址~ 國外的朋友也可以使用博客來與金石堂的通路轉運到國外哦!

  1. 天瓏書局:http://bit.ly/stock-secretaryBot
  2. 博客來:https://www.books.com.tw/products/0010833772

--

--

行銷資料科學
行銷資料科學

Written by 行銷資料科學

Marketing data science. 台灣第一個行銷資料科學(MDS)知識部落,本粉絲專頁在探討行銷資料科學之基礎概念、趨勢、新工具和實作,讓粉絲們瞭解資料科學的行銷運用,並開啟厚植數據分析能力之契機。粉絲專頁:https://www.facebook.com/MarketingDataScienceTMR

No responses yet