1. 程式人生 > >Day1 機器學習(Machine Learning, ML)基礎

Day1 機器學習(Machine Learning, ML)基礎

向量 data testin 應用 k-近鄰算法 ldo 精度 風險 樸素

一、機器學習的簡介

  • 定義

  Tom Mitchell給出的機器學習定義: 對於某類任務T和性能度量P,如果計算機程序在T上以P衡量的性能隨著經驗E而自我完善,那麽就稱這個計算機程序從經驗E學習。

  百度百科給出的機器學習定義:機器學習是多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、算法復雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。

  • 分類

  監督學習(supervised learning):數據集是有標簽的,就是說對於給出的樣本是知道答案的,我們大部分學到的模型都是屬於這一類的,它包括K-近鄰算法、決策樹、樸素貝葉斯、邏輯回歸、支持向量機等;

  無監督學習(unsupervised learning):跟監督學習相反,數據集是完全沒有標簽的,主要的依據是相似的樣本在數據空間中一般距離是相近的,這樣就能通過距離的計算把樣本分類,它包括聚類、EM算法等;

  半監督學習(semi-supervised learning):半監督學習一般針對的問題是數據量超級大但是有標簽數據很少或者說標簽數據的獲取很難很貴的情況,訓練的時候有一部分是有標簽的而有一部分是沒有的;

  強化學習:一直激勵學習的方式,通過激勵函數來讓模型不斷根據遇到的情況做出調整;

  • 相關概念

  訓練集(training set/data)/訓練樣例(training examples): 用來進行訓練,也就是產生模型或者算法的數據集;

  測試集(testing set/data)/測試樣例 (testing examples):用來專門進行測試已經學習好的模型或者算法的數據集;

  特征向量(features/feature vector):屬性的集合,通常用一個向量來表示,附屬於一個實例;

  標記(label): 實例類別的標記;

  正例(positive example);

  反例(negative example);
  • 深度學習(Deep Learning)

  它是基於機器學習延伸出來的一個新的領域,由以人大腦結構為啟發的神經網絡算法為起源加之模型結構深度的增加發展,並伴隨大數據和計算能力的提高而產生的一系列新的算法。深度學習,作為機器學習中延伸出來的一個領域,被應用在圖像處理與計算機視覺,自然語言處理以及語音識別等領域。

  • 機器學習步驟

  先把數據拆分為訓練集和測試集,再用訓練集和訓練集的特征向量來訓練算法,然後用學習來的算法運用在測試集上來評估算法 (可能要設計到調整參數(parameter tuning), 用驗證集(validation set)。

二、模型評估與選擇

  • 誤差相關概念、過欠擬合

  錯誤率(error rate):通常把分類錯誤的樣本數占樣本總數的比例。

  精度(accuracy): 1 - 錯誤率。

  誤差(error):把學習器的實際預測輸出和樣本的真實輸出之間的差異;

  訓練誤差(training error):也稱為經驗誤差(empirical error),學習器在訓練集上的誤差;

  泛化誤差(generalization error):學習器在新樣本上的誤差;

  過擬合(overfitting):當學習器把訓練樣本學得“太好”了的時候,很可能已經把訓練樣本自身的一些特點當作了所有潛在樣本都會具有的一般性質,這樣就會導致泛化性能下降。這種現象稱為過擬合。學習能力太過強大,以至於把訓練樣本所包含的不太一般的特性都學到了,過擬合是無法避免的,能做的只是緩解或者減小其風險。

  欠擬合(underfitting):指學習器對訓練樣本的一般性質尚未學好。欠擬合比較容易客服,如在在決策樹學習中擴展分支、神經網絡學習中增加訓練輪數。

  • 評估方法

假設有數據集D={(x1,y1),(x2,y2),...,(xm,ym)},對D進行適當處理,從中產生訓練集S和測試集T。下面介紹幾種常見的方法。

  留出法(holdout):

  它直接將數據集D劃分為兩個互斥的集合,其中一個作為訓練集S,另一個作為測試集T。在S上訓練出模型後,用T來評估其測試誤差,作為對泛化誤差的估計。訓練集和測試集的劃分要盡可能的保持數據分布的一致性。

  交叉驗證法(cross validation):

  它先將數據集D劃分為K個大小相似的互斥子集,每個子集Di都盡可能保持數據分布的一致性。然後,每次用K-1個子集的並集作為訓練集,余下那個子集作為測試集;這樣就可以獲得K組訓練集和測試集,從而可進行K次訓練和測試,最終返回的是這K次測試結果的均值。K通常取值為10,稱為10折交叉驗證。

  自助法(bootstrapping):

  對於給定的包含m個樣本的數據集D,對它進行m次有放回的取出一個樣本,得到新的數據集D1。初始數據集D中約有36.8%的樣本未出現在D1中,可將D1作為訓練集,D-D1作為測試集。

  • 性能度量

回歸任務最常用的性能度量是均方誤差(mean squared error);

在分類問題中,使用的性能度量主要有(混淆矩陣)準確率 、召回率 、 F1度量。

  

 

  

Day1 機器學習(Machine Learning, ML)基礎