機器學習,作為門時髦、熱門的計算機應用技術,特別是隨著深度學習的流行,推動「大資料+深度模型」的模式,為人工智慧和人機互動的發展提供巨大的空間。
和資料探勘一樣,利用大量的資料分析建立有效的模型以便提供分類或者決策支援,機器學習也是利用經典的演算法(聚類,svm,神經網路,深度學習等)建立資料模型,不同的是機器學習偏向於演算法的設計;更直接的說,機器學習,就是一些建立模型進行資料分析的演算法包。
作為典型的機器學習的方法,人工神經網路模型的應用經典而又廣泛。nn(neural network)的一般步驟是將資料樣本作為輸入,提取資料特徵然後訓練nn模型,再將模型應用在測試資料集上得到輸出。研究機器學習的一般步驟,類似於nn,需要補充的是提取資料特徵後選取的演算法包含很多,例如,決策樹、貝葉斯分類器、svm等。
下面分別簡單講講各種典型的機器學習的方法:
1.決策樹
決策樹的設計是根據思維邏輯來模擬出樹狀的圖形,其樣本最明顯的屬性特徵設為根節點,分支分別代表著屬性的值,葉子節點代表著分類的結果。
其演算法設計思路是利用資訊熵理論找出屬性的明顯性,將最明顯的屬性特徵設為根節點,然後根據這個屬性的不同值進行分支,得到新節點,如果新節點能較好模擬出分類結果;如果得不到分類結果,繼續以新的節點迭代上述過程。
演算法設計中遇到的問題,首先是如何根據資訊熵理論得到最明顯的屬性?
熵,在不同領域代表著不用的具體含義。在物理學,熵,指的是大量微粒在空間的位置和速度的分布密度的體現,熵越大,粒子的無序性越明顯;在夏農的資訊理論中,資訊熵指的是資訊的不確定性,其定義是 e(s)=-p(s1)*log(p(s1))-p(s2)*log(p(s2)), 其中集合s包含兩個集合s1和s2,對應的概率分別是p(s1)和p(s2)。在熵理論中,資訊的增加意味著不確定性的減少,也就是熵的減小;資訊增益在諸多系統中定義為:在某乙個操作之前的系統熵與操作之後的系統熵的差值也即是不確定性的減小量。將資訊熵的增益理論用在決策樹的劃分上面,通過比較屬性劃分後的資訊熵增益,比較明顯性。
其次遇到的問題是分類結果的過擬合問題?
過擬合,主要指對於某假設的模型,在資料訓練集合中能夠較好模擬出結果,但是在整個資料集合中表現出較大的誤差。過擬合問題,這裡**輒止。
決策樹的優點是對於小規模的資料集,能夠有較快的訓練速度和較好的訓練識別率;缺點是當資料集很大的時候,訓練誤差較大,決策樹的建立會帶來很大的記憶體消耗等。
2、貝葉斯學習
概率分析中如果給出p(a|b),怎麼求p(b|a)呢?
貝葉斯公式,熟悉不過,p(b|a)=p(a|b)*p(b)/p(a)。那麼,貝葉斯公式體現了什麼?
貝葉斯公式,體現了假設的置信度。簡單來講就是在先決概率的條件,怎麼做出假設,使得假設能夠最大體現已知的資料集。所以,貝葉斯學習為推理假設提供了可靠的概率估計。下面分析一下基於gmms(高斯混合模型,gaussian mixture models)的em演算法:
gmms下的em演算法,用個通俗的例子來講,教室裡有200個同學(身高資料集為h),已知男女同學的身高分別服從兩個不同的高斯分布,如何求得男、女各自的高斯引數θ
=[u,
∂]t,使得這個學校裡面出現這
200個
人身高的概率最大。利用極大似然估計,能夠算出θ1和θ2(分別表示男、女身高的高斯模型),使得這個學校的身高資料中出現h的概率最大。如果200個同學他們都帶上面具,不知性別,那麼只有知道性別,根據每個人的身高資料才能得到θ;只有得到θ,才能將戴面具的同學進行性別分類。例如,假設u1=175(表示男生的平均身高是175),如果某個人身高是180,把他歸為男生。這就衍生出是先有雞還是先有蛋的問題。
em演算法,過程就是先假設θ,然後根據這個θ可以將200人分呈男女兩類;利用這個新得到的分類,又可以根據最大似然估計算出新的θ值;迭代這兩個步驟,直到θ收斂。
3.基於例項的學習——knn(k近鄰演算法,k nearest neighbor)
基於例項的學習,要做的事就是就是如何將例項資料儲存起來,等到新例項發生時,將它與儲存的例項進行臨近劃分,並且使用臨近值來逼近目標函式。knn演算法,核心意思就是將例項資料按照區域性臨近的原則進行分類,取出某個維上最近的k個點來逼近當前新例項的函式值。
其基本思路如下,假設定義兩個例項的歐式距離為d(xi,xj)=||(xi-xj)^2||(相當於求歐式距離),如果輸入乙個新例項x,可以利用求min(d(x,xi)),xi取自資料集,將新例項劃分到某個分類中,分類中的逼近函式為f;那麼可以求出某一維上最近的k個點,f(x)=∑f(xi) / k,(其中i=1,2....k.);
對k-近鄰演算法的乙個改進是對k個近鄰的貢獻加權,越近的距離賦予越大的權值。
4.svm(支援向量機support victor machine)
svm,作為一種分類演算法,引起了前十年的機器學習熱潮。svm,理解起來很簡單,如其名字,找到對分類有支援作用的向量來找到分類域,這樣做的作用是可以在高維空間利用少資料量就可以進行分類。
VueJs學習入門指引
新產品開發決定要用到vuejs,總結乙個vuejs學習指引。3.按照文件學習vuejs 最重要 vuejs入門最重要的學習資料是官網的學習指引 建議把官方的指引教程的基礎部分看看,這個指引寫的不錯,也比較容易理解,能覆蓋大部分的知識點。vuejs核心是 雙向資料繫結 和 元件 指引教程基本都是圍繞這...
翻譯 nginx入門指引(一)
興趣使然的翻譯,業餘水平,nginx官方英文介紹文件很不錯,可惜中文網上好像沒有相應的翻譯。啟動,停止和過載配置 配置檔案的結構 服務靜態內容 建立簡單的 伺服器 建立fastcgi 這個指引對nginx做了一些簡單的介紹並且描述了一些它可以完成的簡單任務。我們假定讀者已經安裝了nginx,如果沒有...
機器學習入門(一)
分類和回歸 均為 過程,其中分類是對離散值的 回歸是對連續值的 監督學習和無監督學習 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習 聚類 監督學習就是給輸入的無標籤資料新增標籤的過程。資料集的劃分方法 1.留出法,即把資料集分為兩部分 一般來說是8 2,8...