SQL是必學的嗎?數據科學家的技能樹該怎么點?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。
一間屋子10個人,可能其中5位數據科學家都表示需要結構化查詢語言(SQL)才能工作,另一半人則表示還有其他方法可以處理數據。
作為一名數據科學家,你使用什么方法?你還有其它方法嗎?數據科學家必須要會使用SQL嗎?本文將討論SQL在數據科學中的作用,以及結構化查詢語言(SQL)的替代方法。
SQL
是否需要了解SQL具體取決于個人所屬公司和數據科學團隊。有些團隊有數位數據工程師和數據分析師以及機器學習工程師,而有些團隊則只有一位數據科學家。所以數據科學家是否需要了解SQL,你心中自有答案。
但是,討論一下是否需要了解SOL的原因,以及不需要SOL的時機是頗為有趣且十分重要,討論這個問題也有助于即將入職的數據科學家了解工作期望。以下是我使用SQL的原因:
- 使用SQL查詢表格以獲得有用的數據集
- 保持自主感(盡管也需要幫助)
- 在現有的SQL查詢中隨時發(fā)現和創(chuàng)建新功能
盡管數據科學可以看作是只專注于Python和R以及復雜機器學習算法的工作,但如果不充分利用SQL的優(yōu)勢,一個團隊可能很難執(zhí)行數據科學運算進程。不過,有時SQL并不是必需的,這取決于個人在數據科學領域的具體角色。
如果能從數據工程師或數據分析師那里獲得一些幫助,便可以參考其他替代方法。此外,當SQL查詢功能完全不符合專業(yè)時也不需要SQL,因為此時專注點在于數據科學模型開發(fā),類似于在已獲取的數據上相互測試各種機器學習算法。
替代方法
從數據分析師或數據工程師處獲取數據集后,對數據集的下一步改進就是創(chuàng)建新功能要素,而不只是直接從數據表中獲取字段。例如,如果數據集中有10個字段,則可以開發(fā)幾個全新指標作為字段,而不是通過計算第1列和第2列來直接創(chuàng)建新的第11列。除了SQL以外,另一個比較容易進行此計算的工具是pandas。充分理由顯示,數據分析師和數據科學家已廣泛使用該庫。
使用pandas,能夠快速執(zhí)行復雜計算,并且只需一行代碼。有時很難使用SQL計算數據,因為它在視覺上呈多行布局(僅為個人看法)。
以下是一些常用的pandas 數據框操作,旨在方便化數據集特征工程運算。
- * groupby* items* loc* iloc* iteritems*keys* iterrows* query (this operation is quite similar to SQL quering, Ihighly recommend)* aggregate* corr* mean, median, min, and max* quantile*rank* sum* std* var* append* merge* join* sort_values* isnull* notna*between_time
大量操作都可以應用到pandas 數據框架中。個人最喜歡的操作:
- 分組(Groupby)——對數據進行分組,并對所述組執(zhí)行進一步的操作。
- 查詢(query)——一種類似SQL的查詢方式,但在個人的數據框架中。
圖源:unsplash
個人認為,計算全新的字段或指標更容易,這些字段或指標最終將用于個人pandas數據科學模型。不過,有人偏愛只在SQL中執(zhí)行計算。對我來說,使用SQL的好處是我不必一次性添加所有新特性(查詢時間過長),這樣當我想添加一個新特性時,操作就非常簡單有效。
數據科學家需要了解SQL嗎?答案不是絕對的。這取決于公司、團隊,有時還取決于個人偏好。
使用SQL查詢,可以使用戶受益匪淺,所以如果你還不了解SQL,可以學習其使用方法。如果你偏愛類似pandas的替代方法,你可能是龐大數據科學團隊中的一員。
一些數據科學家同時使用SQL和Python來為模型創(chuàng)建最終的數據集。pandas最獨特的地方在于它有一個類似于SQL的查詢操作,用戶可以在pandas數據框中綜合使用SQL和Python。所以,想好你自己的解決方案了嗎?