資料探勘相關的數學基礎
最近我在看《數學之美》和《資訊簡史》兩本書,感覺十分受用。計劃在本部落格內開放讀書專欄,記錄心得體會。但在這之前,先大致描述一下我現在熱衷的資料探勘方向的相關基礎知識,為了以後寫文章做準備也是相當必要的。
引言
資料探勘,是指從大量資料中獲取隱含的、潛在的是有價值資訊的過程,是近年來計算機領域火熱的研究內容。作為一個大的命題,為了便於引入討論,這裡以本人目前涉及的遊戲工業領域的資料探勘方法展開討論。
資料探勘方法在遊戲工業領域最初的應用,常常是遊戲中的人工智慧的開發。例如遊戲中的電腦對手,對戰類遊戲的天梯系統,遊戲開發時的關卡自動生成器。這些功能對應著資料探勘方法中的專家系統、機器學習、模式識別、自然語言理解、自動定理證明、自動程式設計、機器人學、博弈、人工神經網路等。
事實上,資料探勘的方法本質上就是人工智慧的方法,資料探勘的出現是人工智慧發展史上具有重大意義的事件。傳統人工智慧的研究在20世紀末期事實上進入了一個低谷,這是因為20世紀80年代初,美國、歐洲和日本製定的一批針對人工智慧的大型專案都面臨了重重困難:一是所謂的交叉問題,即傳統方法只能模擬人類深思熟慮的行為,而不包括人與環境的互動行為;二是所謂的擴充套件問題,即傳統人工智慧方法只適合於建造領域狹窄的專家系統,不能把這種方法簡單地推廣到規模更大、領域更寬的複雜系統中去。以上兩個根本性問題使人工智慧研究進入低谷。而資料探勘的出現使人們又重新看到了人工智慧的希望。 原因就在於資料探勘方法將人工智慧方法帶進了廣域資料集中,突破了專家系統的限制。
在最近的研究中,遊戲行業的研究者們更多地使用資料探勘方法去分析使用者行為,從而進行更精準的商業方案定製。一方面這是因為資本的逐利性使然,現代遊戲開發已經走進了一個不斷推升製作成本和玩家期望之間的迴圈,高額的開發費用已經使很多遊戲公司不堪重負。另外一方面,大資料時代的資料採集,令大量使用者行為成為儲存在伺服器端的資料,令我們有能力進行分析與研究。通過資料探勘方法,我們可以做到對遊戲使用者行為進行建模,並進行自動程式設計。典型的應用例如分析玩家行為和動機,探尋線上角色扮演遊戲中的玩家社交群體的變化,識別玩家人物和公會的命名模式,檢測遊戲玩家感到沮喪的原因,揭露遊戲中玩家的社會關係。
資料探勘過程中相關的主要數學領域
面對複雜資料,資料探勘的基本流程是:首先對原始資料進行填補遺漏、消除異常、平滑噪聲等處理,提高資料探勘的有效性和準確性。然後使用專門的演算法對原始資料進行歸納抽象,去掉取之過多且不均勻的屬性和概念層次樹中不存在的屬性,最終得到一個關係模型。當新的資料加入資料集中時,可以根據該關係模型決定新資料的分類和處理模式。同時,新資料也將帶來對整體模型的變化,資料和模型處於動態對應的狀態。
從以上過程中可以明顯感到,所謂資料探勘,就是一個典型的數學建模過程。當然,這裡已經有較為成熟的工具、方法和理論。例如,統計機器學習所需要的主要理論和技術:泛函分析、逼近論與測度論、統計理論、VC維理論、覆蓋數、描述長度理論與演算法複雜度研究、核方法、非線性規劃技術、幾何變換。下文簡要介紹涉及的數學學科。
1. 線性代數和統計學
在這個建模過程中,基礎是兩大數學學科:線性代數和統計學。這代表了機器學習中最主流的兩大類方法的基礎。一種是以研究函式和變換為重點的代數方法,比如降維,特徵值提取等,一種是以研究統計模型和樣本分佈為重點的統計方法,比如圖模型、資訊理論模型等。它們側重雖有不同,但是常常是共同使用的,對於代數方法,往往需要統計上的解釋,對於統計模型,其具體計算則需要代數的幫助。以代數和統計為出發點,繼續往深處走,我們會發現需要更多的數學。傳統的統計學所研究的主要是漸進理論(大樣本情況下的統計性質),而樣本數目通常有限(甚至還十分有限)。人們過去一直採用樣本數目無窮為假設條件推導各種演算法,然後將演算法用於樣本較小的情況,希望能有較好的效果,然而,演算法往往不令人滿意。由此,人們提出了學習的推廣能力(泛化能力)的重要問題。過去多數工作集中在對大樣本統計學習方法的改進和修改,或利用啟發式方法設計特殊演算法。
2、微積分
微積分只是數學分析體系的基礎。其基礎性作用不言而喻。機器學習研究的大部分問題是在連續的度量空間進行的,無論代數還是統計,在研究優化問題的時候,對一個對映的微分或者梯度的分析總是不可避免。
3、泛函分析
泛函分析體現了數學模型從特殊到一般的發展過程。
函式在19世紀前期的定義還是數與數的對應關係,空間的概念也只有歐幾里德空間。十九世紀以來,數學的發展進入了一個新的階段。這就是,由於對歐幾里得第五公理的研究,引出了非歐幾何這門新的學科;對於代數方程求解的一般思考,最後建立並發展了群論;對數學分析的研究又建立了集合論。這些新的理論都為用統一的觀點把古典分析的基本概念和方法一般化準備了條件。泛函分析作為數學分析的分支,將函式擴充套件到函式與函式之間的關係,乃至任意兩個集合之間的關係,空間則從有限維空間擴充到無限維空間。
在這個地方,函式以及其所作用的物件之間存在的對偶關係扮演了非常重要的角色。機器學習發展至今,也在向無限維延伸——從研究有限維向量的問題到以無限維的函式為研究物件。核心學習和高斯過程是其中典型的例子。
4、測度理論
這是和實分析關係非常密切的學科。概率本身就是一種測度。測度理論對於機器學習的意義是根本的,現代統計學整個就是建立在測度理論的基礎之上——雖然初級的概率論教科書一般不這樣引入。在一些統計方面的文章中它們會把統計的公式改用測度來表達,這樣做有兩個好處:所有的推導和結論不用分別給連續分佈和離散分佈各自寫一遍了,這兩種東西都可以用同一的測度形式表達:連續分佈的積分基於Lebesgue測度,離散分佈的求和基於計數測度,而且還能推廣到那種既不連續又不離散的分佈中去。而且,即使是連續積分,如果不是在歐氏空間進行,而是在更一般的拓撲空間(比如微分流形或者變換群),那麼就不能使用傳統的黎曼積分了,需要使用,比如哈爾測度或者Lebesgue-Stieltjes積分。
5、拓撲學
這是學術中很基礎的學科。它一般不直接提供方法,但是它的很多概念和定理是其它數學分支的基石。看很多別的數學的時候,會經常接觸這樣一些概念:開集,閉集,連續函式度量空間,柯西序列,鄰接性,連續性。很多這些也許在大學一年級就學習過一些,當時是基於極限的概念獲得的。但是看過拓撲學之後,對這些概念的認識會有根本性的擴充。值得一提的是,計算機學科的基礎布林代數與拓撲學有重要的聯絡。
6、圖論
圖,由於它在表述各種關係的強大能力以及優雅的理論,高效的演算法,越來越受到資料探勘領域的歡迎。而從目前我所接觸的範圍內,圖論僅在資料結構這門課中提到過。經典圖論,在資料探勘領域中的一個最重要應用就是圖模型了,它被成功運用於分析統計網路的結構和規劃統計推斷。例如,分析社交網路的使用者關係,常用鄰接連結串列和鄰接矩陣綜合表示。在遍歷時也離不開深度優先和廣度優先演算法。
相關文章
- 《資料探勘基礎教程》書評
- 前端資料結構---相關基礎概念前端資料結構
- 大資料需要掌握的數學基礎大資料
- golang學習筆記(一)——golang基礎和相關資料結構Golang筆記資料結構
- 圖解資料分析 | 資料分析的數學基礎圖解
- 《資料探勘R語言實戰》圖書介紹,資料探勘相關人員看過來!R語言
- python基礎之資料型別及相關方法Python資料型別
- java基礎相關文章Java
- 基礎IO相關操作
- 數學建模 資料處理模型之變數相關性類(灰色相關聯、相關性分析)模型變數
- 傳智播客 java基礎 相關資料 Day1Java
- Mysql 基礎資料型別(無時間相關型別)MySql資料型別
- 『現學現忘』Docker基礎 — 30、Docker中資料卷相關命令Docker
- SAP PM 初級系列3 - 主資料相關的基礎設定
- iOS相關學習資料的整理iOS
- day 2 數學基礎 &資料結構1資料結構
- 【深度學習基礎-14】迴歸中的相關係數r和決定係數R^2深度學習
- [機器學習&資料探勘]樸素貝葉斯數學原理機器學習
- Oracle相關基礎知識Oracle
- NIO相關基礎篇一
- NIO相關基礎篇三
- 鎖相關基礎知識
- NIO相關基礎篇二
- 強化學習相關資料強化學習
- 統計學三大相關係數之Pearson相關係數、Spearman相關係數
- 數學基礎
- 0基礎學C#教程1--------comboBox的相關操作(包括下拉,多資料操作等等)C#
- 統計學與資料探勘
- activiti6基礎01-如何資料庫操作及相關表資料庫
- 資料探勘之關聯規則
- 《資料之美》:資料探勘、資料視覺化、雲端儲存及其他資料處理相關專案視覺化
- 零基礎學Java第四節(字串相關類)Java字串
- 『忘了再學』Shell基礎 — 31、字元處理相關命令字元
- 掌握資料科學和機器學習數學基礎必備的7本書資料科學機器學習
- 網站安全相關的基礎知識網站
- Zookeeper基礎概念及相關原理
- webpack基礎–css相關處理WebCSS
- 【RAC】RAC相關基礎知識