作為數據挖掘研究生需要補充哪些數學知識?
現在大三,明年畢業後去日本讀研,方向是數據挖掘/機器學習,這一方向數學很重要,但是我現在除了大學高數和線性代數以外,平時在數學上沒花什麼時間。請問,我現在應該去補充哪些數學知識,如果可以的話,能否也推薦一下所需的書籍
一般來說掌握線代(微積分)、概率論(統計)、凸優化即可。如果想迅速補足複習這些知識,可以看Stanford CS229的討論課(Discussion Section)資料,鏈接如下:Machine Learning
寫一個目錄,解釋需要哪些數學知識,先列知識點,後講目的:
以下是我認為在數據挖掘或者說機器學習比較相關的數學知識:
概率論:
- 機器學習為什麼要使用概率
- 概率學派和貝葉斯學派
- 何為隨機變數和何又為概率分布?
- 條件概率,聯合概率和全概率公式:
- 邊緣概率
- 獨立性和條件獨立性
- 期望、方差、協方差和相關係數
- 常用概率分布
- 貝葉斯及其應用
- 中心極限定理
- 極大似然估計
- 概率論中的獨立同分布?
線代:
- 標量、向量、矩陣和張量
- 矩陣向量的運算
- 單位矩陣和逆矩陣
- 行列式
- 方差,標準差,協方差矩陣
- 範數
- 特殊類型的矩陣和向量
- 特徵分解以及其意義
- 奇異值分解及其意義
- Moore-Penrose 偽逆
- 跡運算
優化:
- 計算複雜性與NP問題
- 上溢和下溢
- 導數,偏導數及兩個特殊矩陣
- 函數導數為零的二三事
- 方嚮導數和梯度
- 梯度下降法
- 牛頓法
- 仿射集,凸集和凸錐
- 超平面,半空間及凸集分離定理
- 不改變凸性的運算
- 凸函數及凸優化簡述
- 無約束的優化,等式約束優化,不等式約束優化
- 線性規劃中對偶理論
- 拉格朗日對偶理論
其他:
- 信息熵
- 條件熵
- 相對熵 (KL散度)
- 互信息
- 幾種常用的距離度量
- 圖論
- 樹論
看到這個問題,很多人回答的都是什麼教材,什麼書的,但我比較贊同的說法是:書和教材,一列一堆大多,不實際,該問題應該更加具體詳細回答,恩恩,說下我的目的:是為了宣傳一下之前寫的文章的,上面的絕大部分,我在我的專欄絕大部分都有講解,但好像看的的不多,我就再拿來宣傳下哈哈,可能寫的不好,歡迎討論和指教,詳見:
機器學習和數據挖掘的關係很近,我認為上面的知識點對於機器學習或者數據挖掘都是比較重要的,下面給出乾貨~~~
線代篇:掌握機器學習數學基礎之線代(重點知識)
概率論篇:掌握機器學習數學基礎之概率統計(重點知識)
優化篇:
- 掌握機器學習數學基礎之優化[1](重點知識)
- 掌握機器學習數學基礎之優化[2](重點知識)
資訊理論及其他:掌握機器學習數學基礎之資訊理論及其他[完結篇](重點知識)
把高數與線代複習一遍,有時間看看國外公開課,可以更深入的理解這兩門課,然後把學習的重點放在概率論與數理統計上。有上面三門課的基礎,大部分的數據挖掘書都可以看懂,然後再根據需要去補一些,測度論、泛函的部分知識,秉著用到的時候再補的原則。
《數據挖掘與分析:概念與演算法》 穆罕默德·扎基 (Mohammed J. Zaki), 小瓦格納·梅拉 (Wagner Meira Jr.), 吳誠堃【摘要 書評 試讀】圖書
不會需要太多數學的東西,我本科是數學專業的現在研究生讀cs 發現數據挖掘和machine learning 需要的數學非常簡單。把高數搞懂了應該沒問題。到時候學的時候一定要自己把演算法推理一遍,演算法都非常簡單,但是真正能想出演算法來的人才厲害!ps:暑假的時候最好把python和r自學了,這兩個是必備的。
數學基礎雖然再多也不叫多,但是與DM直接相關的一定要認真打好基礎。
- 概率學。基礎中的基礎。
- 數理統計學
- 統計機器學習 (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到底是個什麼東西?
※學習程序資料推薦?
※在人工智慧和機器學習領域,作為一個產品經理可以做什麼?
※怎麼從一個有演算法基礎但是沒有項目經驗的學生,成長為數據挖掘工程師?