作為數據挖掘研究生需要補充哪些數學知識?

現在大三,明年畢業後去日本讀研,方向是數據挖掘/機器學習,這一方向數學很重要,但是我現在除了大學高數和線性代數以外,平時在數學上沒花什麼時間。請問,我現在應該去補充哪些數學知識,如果可以的話,能否也推薦一下所需的書籍


一般來說掌握線代(微積分)、概率論(統計)、凸優化即可。如果想迅速補足複習這些知識,可以看Stanford CS229的討論課(Discussion Section)資料,鏈接如下:Machine Learning


寫一個目錄,解釋需要哪些數學知識,先列知識點,後講目的:

以下是我認為在數據挖掘或者說機器學習比較相關的數學知識:

概率論:

  1. 機器學習為什麼要使用概率
  2. 概率學派和貝葉斯學派
  3. 何為隨機變數和何又為概率分布?
  4. 條件概率,聯合概率和全概率公式:
  5. 邊緣概率
  6. 獨立性和條件獨立性
  7. 期望、方差、協方差和相關係數
  8. 常用概率分布
  9. 貝葉斯及其應用
  10. 中心極限定理
  11. 極大似然估計
  12. 概率論中的獨立同分布?

線代:

  1. 標量、向量、矩陣和張量
  2. 矩陣向量的運算
  3. 單位矩陣和逆矩陣
  4. 行列式
  5. 方差,標準差,協方差矩陣
  6. 範數
  7. 特殊類型的矩陣和向量
  8. 特徵分解以及其意義
  9. 奇異值分解及其意義
  10. Moore-Penrose 偽逆
  11. 跡運算

優化:

  1. 計算複雜性與NP問題
  2. 上溢和下溢
  3. 導數,偏導數及兩個特殊矩陣
  4. 函數導數為零的二三事
  5. 方嚮導數和梯度
  6. 梯度下降法
  7. 牛頓法
  8. 仿射集,凸集和凸錐
  9. 超平面,半空間及凸集分離定理
  10. 不改變凸性的運算
  11. 凸函數及凸優化簡述
  12. 無約束的優化,等式約束優化,不等式約束優化
  13. 線性規劃中對偶理論
  14. 拉格朗日對偶理論

其他:

  1. 信息熵
  2. 條件熵
  3. 相對熵 (KL散度)
  4. 互信息
  5. 幾種常用的距離度量
  6. 圖論
  7. 樹論

看到這個問題,很多人回答的都是什麼教材,什麼書的,但我比較贊同的說法是:書和教材,一列一堆大多,不實際,該問題應該更加具體詳細回答,恩恩,說下我的目的:是為了宣傳一下之前寫的文章的,上面的絕大部分,我在我的專欄絕大部分都有講解,但好像看的的不多,我就再拿來宣傳下哈哈,可能寫的不好,歡迎討論和指教,詳見:

機器學習和數據挖掘的關係很近,我認為上面的知識點對於機器學習或者數據挖掘都是比較重要的,下面給出乾貨~~~

線代篇:掌握機器學習數學基礎之線代(重點知識)

概率論篇:掌握機器學習數學基礎之概率統計(重點知識)

優化篇:

  • 掌握機器學習數學基礎之優化[1](重點知識)
  • 掌握機器學習數學基礎之優化[2](重點知識)

資訊理論及其他:掌握機器學習數學基礎之資訊理論及其他[完結篇](重點知識)


把高數與線代複習一遍,有時間看看國外公開課,可以更深入的理解這兩門課,然後把學習的重點放在概率論與數理統計上。

有上面三門課的基礎,大部分的數據挖掘書都可以看懂,然後再根據需要去補一些,測度論、泛函的部分知識,秉著用到的時候再補的原則。


《數據挖掘與分析:概念與演算法》 穆罕默德·扎基 (Mohammed J. Zaki), 小瓦格納·梅拉 (Wagner Meira Jr.), 吳誠堃【摘要 書評 試讀】圖書


不會需要太多數學的東西,我本科是數學專業的現在研究生讀cs 發現數據挖掘和machine learning 需要的數學非常簡單。把高數搞懂了應該沒問題。到時候學的時候一定要自己把演算法推理一遍,演算法都非常簡單,但是真正能想出演算法來的人才厲害!ps:暑假的時候最好把python和r自學了,這兩個是必備的。


數學基礎雖然再多也不叫多,但是與DM直接相關的一定要認真打好基礎。

  1. 概率學。基礎中的基礎。
  2. 數理統計學
  3. 統計機器學習 (vapnik,Elements of Statistical Learning, Pattern Classification以及C. Bishop的PRML)


補充一下,在機器學習領域中,的確不需要很多數學知識就可以做得很好,而且數學好並不能顯著提升你調參的效率

但是!!如果你要問數學在機器學習等領域的研究,還是很多的。目前深度神經網路沒有完善的數學解釋,但是比如說數據降維方法中從線性的pca到非線性的lle,isomap,都已經有完善的數學解釋,也正是數學理論證明了lle,isomap的收斂性並可以給出一些誤差估計。

現在在機器學習領域數學沒什麼明顯用處,不是因為機器學習不需要數學理論,而是目前的數學工具不夠有力,以至於無法解決實際問題。至少,我覺得現在的神經網路的理論還很不完善。。。

我剛剛接觸機器學習領域 ,也只是看過幾篇基礎的論文,自己動手用matlab跑了幾個最經單的方法與數據集,所以肯定對這個領域很不了解。若報道出了偏差,概不負責。

——

補充一下我看的幾篇最簡單的論文用到的數學知識:

1.微積分、線性代數、概率論(基礎)

2.泛函/實變分析(說話方便)

3.微分幾何(流形學習)

4.調和分析(圖像、卷積)

5.抽象代數(對稱群)

6.數值計算、最優化(都用得到)


我非常認同yumo的答案。我是念應用數學出身,現在工作需要在搞機器學習。以前把實變測度隨機過程神馬的都認真搞了個遍,現在在工作應用上並沒什麼用。數學太嚴格了,學習過程基本在做數學證明,為什麼定理成立,不允許0.1%的錯誤。數據挖掘不一樣,錯了20%都能接受,我還有80%是對的,能產生商業價值啊。

換句話說,如果你畢業後去搞應用,那數學基本把概率統計搞好就行,實變測度那個層面的根基別搞了,數學根基深不可測,搞著搞著神馬拓撲數論都出來了,有時間不如多實踐。畢業如果想搞學術研究的話,可能數學基礎要打深一點。


哈哈,我學了兩年統計碩士,從linear regression, glm, longitudinal analysis, survival analysis, statistical inference, nonparametric, multivariate analysis, bayesian analysis,還有sas, r, phyton這些工具。然後終於我對machine learning感興趣了,發現這真是一個奇妙的領域,基本和statistic的background類似,但是就是不完全同,然而數學是無窮無盡的,我現在邊學machine learning邊看需要的數學,所以如果你感興趣可以看看基礎的statistics, calculus和線性代數這些,然後上學應該會教你的。


怎麼會邀請我這個學渣……尤其是數學渣。

首先說明一下我自己的數學基礎,給題主點信心。高中搞生物競賽,高二下學期開始停課集訓,停課之前也沒怎麼好好上過課,因此我的數學起點真的很低。本科數學分析倆學期60,概率論數理統計60,線代倒是有90。

然後說看你到底做什麼,你如果做的是用機器學習方法進行數據挖掘,我這個水平補補概率論和統計也差不多夠了。你如果是要對各種機器學習的演算法做研究,拿本統計學習基礎先翻著唄,看不懂的地方再查嘛,反正你肯定比我數學基礎好。

不過像我這種基礎差的學渣,要說學也學的下去。就是做研究的時候,只能開腦洞找應用,改進演算法基本沒戲,也是挺被動的。


所以我不是很懂,大家都說的高數和現代,但為什麼統計學要學《數學分析》《高等代數》《解析幾何》《複變函數》《數值分析》《近世代數》.......

學大物什麼的還能理解,畢竟多一些知識素養,但是把統計和數學不獨立出來學一堆數學類課程真的好嗎?為什麼不替換統計課程比如半參什麼的,或者學點計算機類的?

你讓我一個大一剛進來屁都不懂的人,一看全是數學,完了,沒工作了,而且也特別討厭金融什麼的,卻對IT特別感興趣。

後來畢業了,大數據概念被炒起來了,才知道原來統計是可以做IT行業的啊!!!

呵呵呵,我的眼界認知真狹窄。


數據挖掘入門

若是非數學專業

並不需要多少的數學知識

普通理科生足夠

入門後再補

挖掘演算法和應用場景

應用場景在於理解運用

挖掘演算法在於理解實現

沒事的時候看看數學

遇到實際需要的時候再學

快快樂樂數據挖掘

省得有挫敗感


機器學習實戰,統計分析,數據分析


推薦閱讀:

convex optimization 可以用來做哪些有意思的事情(可以是實驗性質)?
機器學習下的各種norm到底是個什麼東西?
學習程序資料推薦?
在人工智慧和機器學習領域,作為一個產品經理可以做什麼?
怎麼從一個有演算法基礎但是沒有項目經驗的學生,成長為數據挖掘工程師?

TAG:數據挖掘 | 數學 | 機器學習 | 數據挖掘入門 |