《集體智慧編程》之機器學習&數據挖掘框架認識
前言:新開通的博客,用于記錄一些學習方面的東西,算是一個學習筆記吧。本系列按照《集體智慧編程》一書的框架進行。老實說,《集體》在理論上并不算是很好的參考書,但是該書是以一個個具體場景應用為驅動的,個人認為很適合用于機器學習相關的入門教材,起碼很對我的胃口。
“假如你訓練了一只狗,若干年后,如果它忽然有一天能幫你擦鞋洗衣服,那么這就是數據挖掘;要是忽然有一天,你發現狗化裝成一個老太婆消失了,那么這就是機器學習。” ——楊強,香港科技大學
機器學習說起來應該是人工智能領域與算法領域的一個子領域。它允許計算機不斷的進行學習。大多數情況下,這相當于將一組數據傳遞給算法,并由算法推斷出這些數據屬性相關的信息——借助這些信息,算法能夠預測出未來有可能出現的其他數據。簡單點來說就是從數據中自動分析獲得規律,并利用規律對未知數據進行預測。
數據挖掘在某方面可以說算是機器學習的一種應用。機器學習算法其它的方面的應用有計算機視覺、自然語言處理、生物特征識別、搜索引擎、醫學診斷、檢測信用卡欺騙、證券市場分析、DNA序列測序、語音和手寫字識別、戰略游戲和機器人運用等。
1、機器學習&數據挖掘的數學基礎
機器學習是一個多領域交叉的學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等。具體來說,機器學習與數據挖掘學習需要用到的數學核心基礎有以下幾個方面:
①微積分 (沒辦法,這個是數學分析的基礎)
②線性代數 (主要用來理解有關數據的向量表示及矩陣/向量運算)
③概率論 (你不得不相信,機器學習算法的現狀是多數是基于統計概率,剩下的是樹模型)
④統計學
⑤離散數學 (這個。。。傻傻地只知道便于邏輯推理、符號運算、線性轉離散,具體還沒碰到)
進階學習需要用到的數學基礎有(除了復變函數聽說過一點,別的對我來說都來自火星):
①泛函分析
②復變函數
③偏微分方程
④抽象代數
⑤約束優化
⑥模糊數學
⑦數值計算等
2、機器學習&數據挖掘的類別
2.1、機器學習主要可以分成下面幾種類別:
①監督學習:
形式:從訓練集(有人為標注的結果)學習一個函數,當新的數據到來時,把數據傳遞給這個函數,嗖,Duang!就把結果給你了 A--->f(x)--->B
常見算法:回歸分析與統計分類
②無監督學習
形式:A---->B
常見算法:聚類
③半監督學習(還沒碰到)
④增強型學習
主要是通過周圍環境的反饋(還沒碰到)
2.2、算法分類
機器學習與數據挖據算法主要有以下三個方面:
①聚類
②分類
③推薦(某種程度上算是前面兩個的應用)
具體的機器學習算法有:
構造條件概率:回歸分析與統計分類
人工神經網絡
決策樹
高斯過程回歸
線性判別分析
最近鄰(KNN)
感知器
徑向基函數核()
支持向量機(SVM)
通過再生模型構造概率密度函數
最大期望算法
圖模型:貝葉斯網絡、Markov隨機場
近似推斷技術
馬爾科夫鏈
蒙特卡羅方法
變分法
最優化
大多數以上方法、直接或剪輯使用最優化算法
3、機器學習與數據挖掘的十大算法
把這個單獨列出來呢是因為這十大算法不是按類別分的,而是人為選取出來在機器學習和數據挖掘方面影響最大的Top10算法。
①C4.5
②K-means
③SVM
④Apriori
⑤EM
⑥PageRank
⑦AdaBoost
⑧KNN
⑨NaiveBages
⑩CART
4、機器學習的局限
機器學習不是“銀彈”,也有自身的缺點。主要表現在:
①機器學習算法受限于其在大量模式之上的歸納能力,而一個模式只能根據過往的信息,而無法找出新遇到的信息和過往信息的相似之處
②所有的機器學習算法都有過度歸納的可能性
5、應用
嘎嘎,發展興起和學習什么機器學習也好,數據挖掘也好,為的是啥?——使用它們來為我們服務,讓我們的生活更美好!
①推薦系統
當當、亞馬遜之類的推薦商品;
delicious.com URL分享
豆瓣類的
微博、搜索引擎
約會網站、交友網站(任何一種成功的匹配算法很可能都會涉及一個持續不斷的求值過程——算法會反復判斷選定的匹配成功與否)
②生物工藝學
人類的測序技術和篩選技術(DNA序列、蛋白質結構、化合物篩選以及RNA表達)
③金融欺詐偵測
利用技術:神經網絡、歸納邏輯
④機器視覺
從大數據集中發現有趣特征的獨立組元分析技術(無人監控)
車牌識別、人臉識別
⑤產品市場化
⑥供應鏈優化
⑦國家安全
政府部門搜集海量信息,對數據分析將其與潛在的威脅聯系起來
。。。
附:
1、相關的軟件
①MATLAB/GNU Octave
用于矩陣運算分析、線性分析、多元函數分析、數值微積分、方程求解、邊值問題求解、數據統計、繪圖
②SPSS系列
封裝好的算法,可以直接調用,用以發現、檢驗等等
③R
用于統計分析、繪圖。內建多種統計學及數字分析功能
④Python程序集(NumPy、BS、Sci、matplotlib、PIL、CV2等)
數據獲取、數據清洗、數據分析、算法實現、繪圖、系統實現等等
2、相關資訊資料鏈接
①維基百科
了解基礎概念
②好東西傳送門
微博:http://weibo.com/haoawesome
③結構之法 算法之道(v_July_v)