標籤:

譯文:機器學習的首要條件不是數學而是數據分析

當初學者開始學習機器時,首先會問「門檻是什麼?我需要了解什麼才能開始從事這一行?

一旦初學者開始嘗試了解這個問題,經常發現善意但令人沮喪的建議,如下所示:

你需要掌握數學,以下是清單:

- 微積分

- 微分方程

- 數學統計

- 優化

- 演算法分析

...

像這樣的回復足以令任何人都感到恐懼,即使你具有一定的數學專業基礎。

我猜很多初學者會被這樣的建議嚇倒,如果你有同感,我有一個好消息給你:為了開始構建機器學習模型(不是機器學習理論研究),你需要的數學知識比你想像的少(至少比你被告知的要少)。如果您有興趣成為機器學習從業者,那麼你不需要很多高級數學知識也可以開始。

但你要說沒有任何門檻那也不是。

門檻還是有的。事實上,即使沒有對微積分和線性代數的高度理解,也有其他門檻,你應該知道這些。

數學不是機器學習的主要前提

如果你是初學者,而你的目標是在行業或企業中處理問題,那麼數學不是機器學習的主要先決條件。聽上去有點不可思議,那麼讓我解釋一下。

到目前為止,你聽到的關於機器學習的大多數建議是來自在學術領域裡從事數據科學的專家。

使用術語「學術」並不意味著我對這些人有偏見,事實上我很佩服這些從事基礎研究的人。

在學術領域中有不同的追求和三觀,這些三觀使得學術界人士的思想認識和工業界人士大大不同。

在學術領域,你經常會被鼓勵學術研究和寫報告,當你的研究領域是機器學習,那麼你的確需要深入了解機器學習的統計學和數學基礎。

在工業領域,在大多數情況下,主要的追求不是發明創造(造輪子)和寫報告。企業真正追求的是否能創造商業價值。在大多數時候,尤其剛起步階段,你會應用「現成」工具就足夠了。這時候你會發現,這些工具對數學的要求並沒有你想像的那麼高。

「現成的」工具數學要求並不高

幾乎所有常見的機器學習庫和工具都會為你處理困難的數學問題,這包括R的caret包以及Python的scikit-learn庫,也就是說不一定需要知道線性代數和微積分才能從事機器學習工作。

安德魯·格爾曼(Andrew Gelman)在對一本關於回歸演算法的書中寫道:

「大多數書籍都是通過複雜的矩陣運算來定義回歸演算法的,我們並不以為然,原因很簡單,矩陣運算現在可以由計算機自動完成。計算雖然重要,但也許可以把它放在用戶的視線之外。」

要知道Gelman是一位備受好評的統計學家,他是哥倫比亞大學(常春藤聯盟之一)的統計教授,寫過幾本關於回歸和貝葉斯統計方法的牛書。雖然他這句話只提到了回歸演算法,但同樣適用於其他機器學習演算法。

再次強調這一點:現代統計學和機器學習軟體可以為你處理大量的數學問題。

如果你只是想建立一個很棒的預測模型,幾乎不需要任何微積分或線性代數的知識。你對此表示懷疑嗎?那麼你可以看一下《An Introduction to Statistical Learning》 or 《AppliedPredictive Modeling》,這是兩門機器學習方面的經典教材,書中幾乎沒有微積分或線性代數的內容。

對於想要開始機器學習的初學者來說,這是一個好消息。您可以從R的caret包中或Python的scikit-learn庫中直接調用函數,這些函數將處理好涉及到數學運算。對於初學者來說,機器學習涉及的數學知識深似海,了解深海領域的數學知識既不需要也沒必要。

當然,我不是說這些工具可以替你把所有的事都幹了。你仍然需要動手實踐才能掌握這些工具。實踐出真知,你不動手實踐是掌握不了機器學習的。

大多數數據科學家不搞數學

我認為許多初學者對數據科學家並不了解。他們想像的數據科學家們花大把時間站在白板前,一邊喝著咖啡一邊在白板上修改數學公式。

然而事實並非如此。

那麼數據科學家實際上做了多少數學?

就我所知不管是初級數據科學家還是中級數據科學家,他們花費在數學上的時間實際不到5%,坦白的說,5%都是高估了。

就機器學習而言,你只有不到5%的時間花在數學上。特別是當建立模型時,你將花費更少的時間在數學上。

在工業領域,數據科學家們不會做更高級別的數學。

實際上大多數數據科學家花費大量時間是在獲取數據、清理數據和探索數據上,不管是數據分析還是機器學習(後者尤其如此),如果過你是初學者更是如此。

如果要開始學習機器,您需要學習的真正的必備技能就是數據分析。

機器學習的主要必備技能是數據分析

(請注意,下文中,我將使用「數據分析」一詞作為「獲取數據,清理數據,聚合數據,探索數據和可視化數據」的簡寫)

對於初學者(不管你是軟體工程師還是來自其他領域的從業者),你不需要知道很多微積分、線性代數或其它任何大學級數學知識就可以完成這些任務。

但數據分析能力卻是必不可少的,數據分析是你完成工作所需的第一個技能,這才是機器學習初學者真正需要必備的能力。初學者尤其如此,雖然在高層次上有一些數據科學家需要深入的數學技能,但是在開始的時候,當你的目的是為了構建一個能夠做出準確預測的模型時,你不需要知道微積分和線性代數。

但是,如果你沒有掌握數據分析的技能,那麼建立模型幾乎是不可能的。

即使你使用「現成」工具(如R的caret包或Python的scikit-learn庫),如果你不懂探索性數據分析和數據可視化的話,你是無法工作的。為了正確應用caret包或者scikit-learn庫,你需要知道如何收集、準備和探索數據,你需要對數據分析有深入了解。

數據科學家80%的工作是數據準備,探索性數據分析(EDA)和可視化

你知道嗎?數據科學家們「80%的工作是數據準備」,這些準備工作包括獲得數據(從資料庫,電子表格,平面文件)、執行探索性數據分析、重塑數據、可視化數據。

雖然這個數字一般是關於數據分析的,但它也適用於機器學習領域:當你構建機器學習模型時,你將花費80%的時間來獲取數據、探索數據、清理和分析結果(包括數據可視化)。

總結一下:如果你不了解微積分和線性代數,你仍然可以建立有用的模型,但如果你不會數據分析,那你就麻煩大了。

對於初學者來說,數據黑客能力完勝數學

在幾個財富500強公司,我知道的很多最好的數據科學家和模型建造者中,大多數在微積分、線性代數或高級數學方面並不是特別擅長,但是他們在數據分析方面毫無例外都是中高手。

舉一個我朋友的例子:她用過的最好的預測模型,但數學並不是她的強項。

她有博士學位,但她的博士專業是社會心理學。她沒有接受任何嚴謹而專業的數學訓練。我和她的工作並相交多年,我相信她對微積分和線性代數的了解非常非常有限。

但是,她知道如何和數據集打交道,知道如何探索和準備數據集,知道如何讓機器學習演算法在實際環境中工作。

可以說,任何具有機器學習博士學位的人在聽她解釋機器學習背後的數學邏輯時都不會太感冒。她對k-means或支持向量機的數學知識所知有限,但這些並不影響她的工作。事實上,她在這個領域做得相當不錯,薪水豐厚,因為她可以做出準確的預測。沒有人會對她的數學專業素養說這說那,她保證結果,拿到薪水,如此而已。

我想說的是,我這個朋友不是個案。我知道至少幾十個這樣的人(上述這個只不過是比較典型的例子),這些人都在蘋果這樣的財富500強公司工作。這些公司都有宏大的目標並賺取了大量的商業利潤,而這些人是這些優秀公司的核心骨幹。

數學是重要的,但不是對入門者的

我知道很多人可能會質疑我上述的言論,甚至可能得罪一大堆我尊重和敬佩的人。所以我必須說的更清楚一些:數學很重要,特別是在某些情況下,數學是非常重要的。

首先,如果你是在學術領域中進行機器學習研究,數學很重要;

第二,在行業領域中,數學對於一小部分高級數據分析師/數據科學家也是重要的。特別是像Google和Facebook這樣的公司,他們走在前沿,正在使用機器學習領域的尖端工具,這些人會在他們的工作中經常使用微積分、線性代數和更高級的數學。

但是在這篇文章中,我討論的範圍不是使用尖端工具的高級數據科學家,也不是學術領域。

我談論的是才入門的數據科學家,這些人剛入行並試圖尋找一條通向優秀數據科學家的道路。

初學者學習機器學習也是需要數學的

我澄清一下,即使是所說的初學者,也需要一些數學。

我將在另一篇博客文章中寫下我的全部建議,這裡我先簡單透露一下:要開始學習機器學習,入門級你至少需要本科基礎數學技能。你還需要了解基本統計知識,你可以從「Introduction to Statistics」這門課程學習,你需要知道一些基本概念如:平均值,標準偏差,差異等等。

您的第一個里程碑:掌握數據分析

你需要思考的數據科學家入門到底意味什麼?

對於數據科學家和ML從業人員來說,數據專家比數學專家更有用,也就是說,如果你想走的更遠,你可以先從怎麼處理數據開始而不是學習微積分和高等數學。

因此,如果你的目標是在企業獲得一份工作而不是學術研究,你的第一個里程碑就是掌握數據分析:

  • 它不是掌握如何計算;
  • 它無法通過數學問題證明或研究;
  • 數據分析就是教你如何收集、探索並準備數據;
  • 你需要掌握數據可視化和數據清洗等數據預處理技能,以便能夠進行探索性數據分析。

如果你是用R,那麼我建議你學習以下內容:

- ggplot2:數據可視化工具,用於基本可視化,如散點圖,直方圖,條形圖;

- dplyr:數據預處理工具,用於數據聚合和數據整理

- 學習將ggplot和dplyr結合在一起用於探索性數據分析。

如果你在Python中工作,可以學習以下內容:

- Python編程基礎

- Pandas:Python下的數據聚合和數據整理工具

- Matplotlib:數據可視化工具,pyplot可用於基本可視化,Seaborn可進行更高級的統計圖形;

- 學習將Pandas和數據可視化結合在一起用於探索性數據分析。

如果你是一個機器學習初學者,你可以在不知道微積分和線性代數的情況下開始工作,但是在不懂數據分析的情況下是不行的。

如果你掌握了數據分析,你將很快開始構建可以工作的機器學習模型。

END.

作者: Sharp Sight Labs

原文連接:The real prerequisite for machine learning isn』t math, it』s data analysis

PPV課翻譯小組作品,未經許可,嚴禁轉載

推薦閱讀:

零基礎學習Python數據挖掘(修改版)
用 TensorFlow 訓練 Doom 機器人
機器學習領域,如何選擇研究方向?
如何評價 2017 年 IHMSC 上發表的探測流量的論文?
Boosting 和 Adaboost 的關係和區別是什麼?

TAG:机器学习 |