1. 程式人生 > >機器學習基礎流程概念[轉載]

機器學習基礎流程概念[轉載]

業務 明顯 bre 有監督 p s desc 不同的 map thead

機器學習概念

定義:對於某給定的 技術分享圖片 ,在合理的 技術分享圖片 的前提下,某計算機程序可以自主學習任務T的 技術分享圖片 ; 隨著提供合適、優質、大量的經驗E,該程序對於任務T的性能逐步提高。

從機器學習的概念轉化為實際的開發思路:

算法T:根據業務需要和數據特征,選擇則相關的算法。
模型E:基於數據和算法構建出來的模型。
評估/測試(P):對模型進行評估的策略。

機器學習步驟: 算法 → 模型 → 評估 → 算法

機器學習是人工智能的一個分支。機器學習的思路是:根據大量的訓練數據,按照一定的方式來指導機器學習;隨著機器訓練次數的增加不斷得學習和改進,最終使得學習模型能夠用於預測相關問題的輸出。拿之前蓋樓的例子來說,我們要不斷得修改圖紙的內容,使其越來越像金茂大廈。

深度學習和機器學習的區別

機器學習偏向於對數據的處理,只要有數據,機器學習中相關的算法都可以運用進去。

深度學習則偏向於圖像檢測、自然語言處理等,深度學習更專精於某個領域一些。

如果機器學習和深度學習各會一點,而沒有專精於某個領域,那麽對於找工作而言未必是個好事。就好比圖像識別的相關系數和自然語言處理的相關系數是完全不同的。如果你只想做圖像檢測,那麽就將深度學習中的圖像處理、目標檢測學明白即可。

後續的文章會分別將機器學習和深度學習進行梳理,當大家對內容有了一定的認知後再慢慢思考自己的興趣所在以及將來研究的方向。相信這會是你畢生的事業。

向量和矩陣

在機器學習中,如果定義了一個向量,那麽一定是列向量,多個列向量組成一個矩陣。

下圖是一個3行2列的矩陣,3行代表有3個體檢報告的樣本(維度是3),2列代表每個體檢報告的樣本包含2個特征。

身高體重
175 70
160 58
85 77

將樣本數據傳入最優性能假設公式進行計算,得出了目標值:判斷樣本數據的所有者是男是女。1代表男,0代表女。

身高體重目標
175 70 1
160 58 0
85 77 1

x(i) 表示第i個樣本的x向量。即一個樣本的值 ,包含一組特征 (身高,體重)
xi 表示x向量的第i維度的值。即一個特征的所有值(x2=體重向量)



魯棒性

Robwst,翻譯成中文是穩健性、健壯性的意思。當存在異常數據的時候,算法也會擬合數據。簡單的說,系統能夠識別出異常的數據,不會讓它影響到計算的結果。

魯棒性強,意味著異常數據對系統的影響較小。魯棒性差,意味著一旦出現了異常數據,模型會去迎合這些異常數據,使結果收到幹擾。

過擬合和欠擬合 略
常見的應用框架

scikit-learn(Python)
http://scikit-learn.org/stable/

以下兩種是基於大數據處理的框架
Mahout(Hadoop,基於MapReduce)
http://mahout.apache.org/

Spark MLlib
http://spark.apache.org/

機器學習的大綱

這裏我先把後續文章的大綱簡單列一下,後續可能會略有調整。

首先理解回歸和分類的概念。

回歸:對連續型數據未來的預測稱為回歸。是進入機器學習的入門算法,幫助你們進入機器學習的大門。該算法和統計中相關的模型建立、假設相關,最後通過線性回歸對數據進行預測。統計學習中的終極是回歸算法,而這個算法是機器學習的開始,是最基礎、最簡單的方法。

分類:對離散型數據的歸納稱為分類。

1、LinearRegression線性回歸:對連續型數據未來的預測。

2、Logistic回歸:名曰回歸,卻處理著離散數據的分類。如:根據一堆數據,分析是產生這些數據的男是女。

3、Softmax回歸: 處理多分類。如:分析一個動物是貓是狗是兔子,處理多分類。是在Logistic二分類的基礎上進化出來的算法。

4、 KNN算法: 也稱鄰近算法,是分類算法中最簡單的方法之一。所謂K最近鄰,就是k個最近的鄰居的意思,說的是每個樣本都可以用它最接近的k個鄰居來代表。

5、 決策樹:比較高級的算法,分類問題和回歸問題都能解決。

6、 集成學習:了解了以上若幹比較基礎的機器學習算法後,將之前的方法合並起來。
也許這些模型的最終的模型結果不是很好,通過某種集成的方法也許會讓結果變得更好。

7、SVM支持向量機:主要用來解決分類問題。其中SVR也支持向量回歸的算法。

8、聚類:以上的算法都有明確的目的,但如果對於數據的分類結果事先不確定,或者說不知道數據要分出幾類。那麽最合理的解決方法就是把數據劃分開,每一類數據都分析出一個比較典型的特性來區分。這種思想和算法叫做聚類。1~5是有監督的方法,即有目標存在而聚類是一種無監督的方法。

9、貝葉斯算法、貝葉斯網絡:一種特定的分類方法,用於文本的分類。

10、EM算法:不是機器學習的模型,是一種解決機器學習模型中參數求解的算法。

11、HMM(隱馬爾可夫模型):中文分詞運用的比較多。也是分詞領域中最基本的模型,面試中會經常問起,但工作中未必會用到。

12、主題模型LDA算法:有若幹份文章,想知道文章的類型(是新聞、小說?)或更細的分類(懸疑小說、科幻小說?) 對於人類而言需要閱讀後才能知道。機器能做的是對這若幹份文章進行劃分。註意:是劃分而不是明確分類。因為在有監督的算法中,我們才能確定文章所屬的明確分類,但很多時候分類的時候並不知道。LDA算法通過機器對文章進行分類,最後人工進行貼標簽。

13、特征工程:將原始數據轉化為特征,更好表示預測模型處理的實際問題,提升對於未知數據的準確性。它是用目標問題所在的特定領域知識或者自動化的方法來生成、提取、刪減或者組合變化得到特征。

AI面試中最重要的能力指標

1、項目經歷。
2、對算法的理解能力:遇到一個復雜公式的時候,如何對其進行解讀。
3、計算機編程的能力。

商業場景

技術分享圖片模式識別、數據挖掘、統計學習
技術分享圖片圖像識別、語音識別、自然語言處理

數據分析、數據挖掘、機器學習之間的區別和聯系

技術分享圖片對海量的數據進行分析,並提取有用的信息,以及形成結論。是一種對數據詳細研究和概括的過程。實際工作中可以幫助人們做出判斷,數據分析一般而言可以分為統計分析、探索性數據分析、驗證性數據分析三大類。

其中統計分析和驗證性數據分析在機器學習中也會用到。需要我們對數學統計中的概念有基本的認知。比如中位數、方差、均值、特征值之間的協方差等等,都需要了解,對樣本的初步瀏覽過程就是探索性分析。驗證性數據分析是對結果是否合理進行分析,在機器學習中就是不斷地判斷模型的效果指標是否在提升。

技術分享圖片一般值從大量數據中通過算法搜索隱藏於其中信息的過程。通常通過統計、檢索、機器學習、模式匹配等諸多方法來實現這個過程。

涉及面非常廣,很多時候企業有數據卻不知道從何下手。數據挖掘就是從毫無頭緒的數據中大膽預測並分析出有價值的信息。

技術分享圖片是數據分析和數據挖掘的一種比較常用、比較好的手段。

工作中會遇到一些坑:比如有些客戶提出做一些數據分析的需求,但是客戶不懂技術,給的數據又少又亂,很多時候還需要提醒客戶補充一些必要的數據。從客戶立場上來說,數據即是金錢。客戶透露的數據越多,損失就越大。因此做人工智能相關的工作非常考驗工程師的溝通能力,控制客戶的期望值,充分告訴客戶我們分析的產物能夠為企業提供哪些幫助、我們做的模型比別人好在哪裏。

機器學習分類

技術分享圖片 有目標值,標簽化訓練數據。

判別式模型:對條件概率進行建模。線性回歸、決策樹等。
生成式模型:對聯合分布概率進行建模。隱馬爾可夫、LDA等。

生成式模型適用面更廣,關註數據是如何產生的,尋找的是數據的分布模型。
判別式模型更直接,目標性比較強。只想看看某個條件的情況下的分布是什麽樣的。關註的是數據的差異性,尋找的是分類面。

因此生成式的模型可以轉化成判別式的模型,反之則不行。在後文具體模型中進一步細說,面試中考官有時會問某個模型屬於生成式還是判別式,記住這點即可。

技術分享圖片 無目標值,為了推斷出數據的一些內在結構,一種探索性分析的過程。

技術分享圖片 利用少量標註樣本和大量未標註樣本進行訓練和分類的問題。發展不是很完整,和流形學習有點關系,本文集不做討論。

機器學習開發流程

1、數據收集
機器學習最關鍵的是數據,有了數據我們才能知道選擇什麽樣的模型,選擇什麽樣的參數,怎麽對模型進行調優,得到我們最後想要的結果。因此數據搜集是一件相對比較關鍵的任務,一般需要我們從企業現有的數據中找出有用的數據。

我們也不能在拿到數據後什麽都不做,第一時間就將數據扔給機器進行處理(直接用API對數據進行分析)。這樣的處理結果會非常差。一般而言做完數據分析後,工程師需要寫一份報告,其中涉及:為什麽選這些模型,為什麽要選這些數據。所以當我們拿到數據後,首先一定要去閱讀這些數據集的數據描述(Data Description)。數據描述會對每一個數據的特征以及目標做一個詳細的解釋。如果是參加比賽,那麽比賽的數據一定會把需要預測的目標Targer告訴你。而在實際的工作中,我們要人為得從繁雜的數據庫中找到需要的特征和目標作為最終的預測值。所以如果不讀數據描述,連目標都不確定,如何能建立起一個合適的模型?

數據搜集不是簡單獲取數據的步驟,更重要的是你要了解這批數據。

2、 數據預處理
企業中一般有一些數據庫維護的運維人員,他們對於數據的定義和專門做機器學習的人不一樣。數據庫中的數據往往會存在很多缺失值,甚至是一些邏輯混亂的數據。我們必須對這些數據的異常充分了解後,才能算完成了數據收集的操作。

比如我們設姓別屬性,0代表男,1代表女。數據庫中有時會出現00或01這樣的數據。如果人為得去看,很明顯可以識別出00代表男,01代表女。而如果是機器拿來學習,它會以為目標有4個分類(0,1,00,01)。我們要將數據都轉化成0和1,再交給機器處理。

3、特征提取
特征提取分為兩個步驟:第一、特征選擇,第二、特征降維。PS:對於特征的定義在《02 機器學習理性認識》中詳細說明過,不再贅述。

特征選擇:數據集中可能包含n個特征,從中選出k個我們覺得比較重要的特征。

特征降維:為了徹底說明白這個問題,我繞一個圈。


作者:白尒摩斯
鏈接:https://www.jianshu.com/p/c977c2728bcd
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。

機器學習基礎流程概念[轉載]