入數(shù)據(jù)科學(xué)大坑,我需要什么樣的數(shù)學(xué)水平?
作為一門基礎(chǔ)性學(xué)科,數(shù)學(xué)在數(shù)據(jù)科學(xué)和機器學(xué)習(xí)領(lǐng)域都發(fā)揮著不可或缺的作用。數(shù)學(xué)基礎(chǔ)是理解各種算法的先決條件,也將幫助我們更深入透徹地了解算法的內(nèi)在原理。所以,本文作者闡釋了數(shù)據(jù)科學(xué)和機器學(xué)習(xí)為何離不開數(shù)學(xué),并提供了統(tǒng)計學(xué)與概率論、多變量微積分、線性代數(shù)以及優(yōu)化方法四個數(shù)學(xué)分支中需要熟悉的一些數(shù)學(xué)概念。
本文的作者是物理學(xué)家、數(shù)據(jù)科學(xué)教育者和作家 Benjamin Obi Tayo 博士,他的研究興趣在于數(shù)據(jù)科學(xué)、機器學(xué)習(xí)、AI、Python 和 R 語言、預(yù)測分析、材料科學(xué)和生物物理學(xué)。
本文作者 Benjamin Obi Tayo。
數(shù)據(jù)科學(xué)和機器學(xué)習(xí)離不開數(shù)學(xué)
如果你是一個數(shù)據(jù)科學(xué)愛好者,則大概會產(chǎn)生以下兩個疑問:
- 我?guī)缀鯖]有數(shù)學(xué)背景,那么能成為數(shù)據(jù)科學(xué)家嗎?
- 哪些基本的數(shù)學(xué)技能在數(shù)據(jù)科學(xué)中非常重要呢?
我們都知道,數(shù)據(jù)科學(xué)離不開各式各樣的擴展包。并且,現(xiàn)在有很多性能強大的包可以用來構(gòu)建預(yù)測模型或者用來生成可視化數(shù)據(jù)。如下列舉了用于描述性和預(yù)測性分析的一些最常見包:
- Ggplot2
- Matplotlib
- Seaborn
- Scikit-learn
- Caret
- TensorFlow
- PyTorch
- Keras
得益于以上這些擴展包,任何人都可以構(gòu)建模型或者生成可視化數(shù)據(jù)。但與此同時,要優(yōu)化模型進而生成性能最佳的可靠模型,擁有強大的數(shù)學(xué)背景也是很有必要的。
也就是說,構(gòu)建模型只是一方面,另一方面還需要對模型進行解釋,得出有意義的結(jié)論,這樣才能更好地做出數(shù)據(jù)驅(qū)動的決策。
最后,在使用這些包之前,你需要理解每個包中蘊含的數(shù)學(xué)基礎(chǔ),這樣才不會只把這些包當作黑盒工具(black-box tool)。
案例分析:構(gòu)建一個多元回歸模型
假設(shè)我們要構(gòu)建一個多元回歸模型,那么需要事先問自己幾個問題:
- 數(shù)據(jù)集有多大?
- 特征變量和目標變量是什么?
- 哪些預(yù)測特征與目標變量關(guān)聯(lián)最大?
- 哪些特征比較重要?
- 是否應(yīng)該擴展特征?
- 數(shù)據(jù)集應(yīng)該如何劃分成訓(xùn)練集和測試集?
- 主成分分析(principal component analysis, PCA)是什么?
- 是否應(yīng)該使用 PCA 刪除多余特征?
- 如何評估模型?用 R2 值、MSE 還是 MAE?
- 如何提升模型的預(yù)測能力?
- 是否使用正則化回歸模型(regularized regression model)?
- 回歸系數(shù)是多少?
- 截距是多少(intercept)?
- 是否使用像 K 近鄰回歸(KNeighbors regression)或者支持向量回歸(support vector regression)這樣的無參數(shù)回歸模型?
- 模型中的超參數(shù)是多少?如何調(diào)整超參數(shù)使模型性能達到最佳?
很明顯,如果沒有良好的數(shù)學(xué)背景,你將無法解決上述問題。因此,在數(shù)據(jù)科學(xué)和機器學(xué)習(xí)中,數(shù)學(xué)技能和編程技能一樣重要,這很關(guān)鍵。
作為一個數(shù)據(jù)科學(xué)的推崇者,投入時間來學(xué)習(xí)數(shù)據(jù)科學(xué)和機器學(xué)習(xí)中的理論基礎(chǔ)和數(shù)學(xué)基礎(chǔ)很有必要。毫不夸張地說,你所構(gòu)建的可靠有效模型能否用于解決現(xiàn)實世界的問題,這也將取決于你的數(shù)學(xué)技能有多好。
接下來討論一下數(shù)據(jù)科學(xué)和機器學(xué)習(xí)中一些必要的數(shù)學(xué)技能。
數(shù)據(jù)科學(xué)和機器學(xué)習(xí)中必要的數(shù)學(xué)技能
數(shù)學(xué)包羅萬象,任何人都不可能門門精通。所以,在數(shù)據(jù)科學(xué)和機器學(xué)習(xí)研究中,我們可以根據(jù)自身所在的具體領(lǐng)域、手頭的具體工作或者使用的具體算法來有側(cè)重地學(xué)習(xí)對應(yīng)的數(shù)學(xué)技能。
1. 統(tǒng)計學(xué)與概率論
統(tǒng)計學(xué)和概率論可用于可視化變量、數(shù)據(jù)預(yù)處理、特征變換、數(shù)據(jù)插補、降維、特征工程和模型評估等等。
以下是需要熟悉的一些統(tǒng)計學(xué)與概率論概念:
- 平均數(shù)、中位數(shù)、眾數(shù)、標準差 / 方差;
- 相關(guān)系數(shù)和協(xié)方差矩陣、概率分布(二項分布、泊松分布和正態(tài)分布);
- p 值、貝葉斯定理(精度、召回率、正預(yù)測值、負預(yù)測值、混淆矩陣和 ROC 曲線)、中心極限定理
- ;R_2 值、均方誤差(MSE)、A/B 測試、蒙特卡羅模擬。
2. 多變量微積分(Multivariable Calculus)
大多數(shù)機器學(xué)習(xí)模型是使用包含幾種特征或預(yù)測變量的數(shù)據(jù)集來構(gòu)建的。因此,熟悉多變量微積分對于構(gòu)建機器學(xué)習(xí)模型非常重要。
以下是你需要熟悉的多變量微積分數(shù)學(xué)概念:
- 多元函數(shù)、導(dǎo)數(shù)和梯度、階躍函數(shù);
- Sigmoid 函數(shù)、Logit 函數(shù)、ReLU 函數(shù)、損失函數(shù);
- Plot 函數(shù)繪制、函數(shù)最小值和最大值。
3. 線性代數(shù)
線性代數(shù)是機器學(xué)習(xí)中最重要的數(shù)學(xué)技能,一個數(shù)據(jù)集可以被表示為一個矩陣。線性代數(shù)可用于數(shù)據(jù)預(yù)處理、數(shù)據(jù)轉(zhuǎn)換以及降維和模型評估。
以下是你需要熟悉的線性代數(shù)概念:
- 向量、向量范數(shù);
- 矩陣、矩陣的轉(zhuǎn)置、矩陣的逆、矩陣的行列式、矩陣的跡、點積、特征值、特征向量。
4. 優(yōu)化方法
大多數(shù)機器學(xué)習(xí)算法通過最小化目標函數(shù)的方法來執(zhí)行預(yù)測建模。
以下是你需要熟悉的優(yōu)化數(shù)學(xué)概念:
- 損失函數(shù) / 目標函數(shù)、似然函數(shù)、誤差函數(shù)、梯度下降算法及其變體。
總之,作為一個數(shù)據(jù)科學(xué)的推崇者,應(yīng)該時刻謹記,理論基礎(chǔ)對構(gòu)建有效可靠的模型至關(guān)重要。因此,你應(yīng)該投入足夠的時間去研究每一種機器學(xué)習(xí)算法背后的數(shù)學(xué)理論。
原文鏈接:
https://medium.com/towards-artificial-intelligence/how-much-math-do-i-need-in-data-science-d05d83f8cb19
【本文是51CTO專欄機構(gòu)“機器之心”的原創(chuàng)譯文,微信公眾號“機器之心( id: almosthuman2014)”】