文章目錄
1機器學習定義
Machine Learning(ML) is a scientific discipline that deals with the construction and study of algorithms that can learn from data.
機器學習是一門從數據中研究算法的科學學科。
機器學習直白來講,是根據已有的數據,進行算法選擇,並基於算法和數據構建 模型,最終對未來進行預測
2機器學習基本概念
輸入: (屬性值)
輸出:
獲得一個目標函數(target function):
-
(理想的公式)
輸入數據:(歷史信息)
最終具有最優性能的假設公式:
(學習得到的最終式) -
A program can be said to learn from experience E with respect to some class of tasks T and performance measure P , If its performance at tasks in T, as measured by P, improves with experience E.
-
對於某給定的任務T,在合理的性能度量方案P的前提下,某計算機程序可以自主學習任 務T的經驗E;隨着提供合適、優質、大量的經驗E,該程序對於任務T的性能逐步提高。
-
其中重要的機器學習對象:
-
任務Task T,一個或多個、經驗Experience E、度量性能Performance P
-
即:隨着任務的不斷執行,經驗的累積會帶來計算機性能的提升。
算法(T):根據業務需要和數據特徵選擇的相關算法, 也就是一個數學公式
模型(E):基於數據和算法構建出來的模型
評估/測試§:對模型進行評估的策略
擬合:構建的算法符合給定數據的特徵
魯棒性:也就是健壯性、穩健性、強健性,是系統的健壯性;當存在異常數據的 時候,算法也會擬合數據
過擬合:算法太符合樣本數據的特徵,對於實際生產中的數據特徵無法擬合
欠擬合:算法不太符合樣本的數據特徵
3機器學習實際用途
- 個性化推薦:個性化指的是根據各種因素來改變用戶體驗和呈現給用戶內容,這 些因素可能包含用戶的行爲數據和外部因素;推薦常指系統向用戶呈現一個用戶 可能感興趣的物品列表。
- 精準營銷:從用戶羣衆中找出特定的要求的營銷對象。 客戶細分:試圖將用戶羣體分爲不同的組,根據給定的用戶特徵進行客戶分組。
- 預測建模及分析:根據已有的數據進行建模,並使用得到的模型預測未來。
4機器學習、數據分析、數據挖掘區別與聯繫
- 數據分析:數據分析是指用適當的統計分析方法對收集的大量數據進行分析,並 提取有用的信息,以及形成結論,從而對數據進行詳細的研究和概括過程。在實 際工作中,數據分析可幫助人們做出判斷;數據分析一般而言可以分爲統計分析、 探索性數據分析和驗證性數據分析三大類。
- 數據挖掘:一般指從大量的數據中通過算法搜索隱藏於其中的信息的過程。通常 通過統計、檢索、機器學習、模式匹配等諸多方法來實現這個過程。
- 機器學習:是數據分析和數據挖掘的一種比較常用、比較好的手段。
5機器學習分類(1)
5.1有監督學習
用已知某種或某些特性的樣本作爲訓練集,以建立一個數學模型,再用已建立的模型來預測未知樣本,此種方法被稱爲有監督學習,是最常用的一種機器學習方法。是從標籤化訓 練數據集中推斷出模型的機器學習任務。
5.1.1判別式模型(Discriminative Model)
直接對條件概率p(y|x)進行建模,常見判別模型有:
線性迴歸、決策樹、支持向量機SVM、k近鄰、神經網絡等;
5.1.2生成式模型(Generative Model)
對聯合分佈概率p(x,y)進行建模,常見生成式模型有: 隱馬爾可夫模型HMM、樸素貝葉斯模型、高斯混合模型GMM、LDA等;
5.1.3小結
- 生成式模型更普適;判別式模型更直接,目標性更強
- 生成式模型關注數據是如何產生的,尋找的是數據分佈模型;判別式模型關注的數據的 差異性,尋找的是分類面
- 由生成式模型可以產生判別式模型,但是由判別式模式沒法形成生成式模型
5.2無監督學習
與監督學習相比,無監督學習的訓練集中沒有人爲的標註的結果,在非監督的學習過程中, 數據並不被特別標識,學習模型是爲了推斷出數據的一些內在結構。
無監督學習試圖學習或者提取數據背後的數據特徵,或者從數據中抽取出重要的 特徵信息,常見的算法有聚類、降維、文本處理(特徵抽取)等。
無監督學習一般是作爲有監督學習的前期數據處理,功能是從原始數據中抽取出 必要的標籤信息。
5.3半監督學習(SSL)
考慮如何利用少量的標註樣本和大量的未標註樣本進行訓練和分類的問題,是有監督學習和無監督學習的結合
主要考慮如何利用少量的標註樣本和大量的未標註樣本進行訓練和分類的問題。 半監督學習對於減少標註代價,提高學習機器性能具有非常重大的實際意義。
SSL的成立依賴於模型假設,主要分爲三大類:平滑假設、聚類假設、流行假設; 其中流行假設更具有普片性。
SSL類型的算法主要分爲四大類:半監督分類、半監督迴歸、半監督聚類、半監 督降維。
缺點:抗干擾能力弱,僅適合於實驗室環境,其現實意義還沒有體現出來;未來 的發展主要是聚焦於新模型假設的產生。
6機器學習分類(2)
6.1分類
通過分類模型,將樣本數據集中的樣本映射到某個給定的類別中
6.2聚類
通過聚類模型,將樣本數據集中的樣本分爲幾個類別,屬於同一類別的樣本相似性比較大
6.3迴歸
反映了樣本數據集中樣本的屬性值的特性,通過函數表達樣本映射的關係來發現屬性值之間的依 賴關係
6.4關聯規則
獲取隱藏在數據項之間的關聯或相互關係,即可以根據一個數據項的出現推導出其他數據項的出 現頻率。
7機器學習算法(TOP10)
- C4.5:分類決策樹算法,決策樹的核心算法,ID3算法的改進算法。
- CART:分類與迴歸樹(Classification and Regression Trees)
- kNN:K近鄰分類算法;如果一個樣本在特徵空間中的k個最相似的樣本中大多數屬於某一個 類別,那麼該樣本也屬於該類別
- NaiveBayes:貝葉斯分類模型;該模型比較適合屬性相關性比較小的時候,如果屬性相關性比較大的 時候,決策樹模型比貝葉斯分類模型效果好(原因:貝葉斯模型假設屬性之間是互不影 響的)
- SVM:支持向量機,一種有監督學習的統計學習方法,廣泛應用於統計分類和迴歸分析中。
- EM:最大期望算法,常用於機器學習和計算機視覺中的數據集聚領域
- Apriori:關聯規則挖掘算法
- K-Means:聚類算法,功能是將n個對象根據屬性特徵分爲k個分割(k<n); 屬於無監督學習
- PageRank:Google搜索重要算法之一
- AdaBoost:迭代算法;利用多個分類器進行數據分類
8機器學習、人工智能和深度學習的關係
深度學習是機器學習的子類; 深度學習是基於傳統的神經 網絡算法發展到多隱層的一 種算法體現。
機器學習是人工智能的一個子類;
9機器學習開發流程
- 數據收集
- 數據預處理
- 特徵提取
- 模型構建
- 模型測試評估 投入使用(模型部署與整合) 迭代優化
10機器學習可用公開數據集
在實際工作中,我們可以使用業務數據進行機器學習開發,但是在學習過程中, 沒有業務數據,此時可以使用公開的數據集進行開發,常用數據集如下:
http://archive.ics.uci.edu/ml/datasets.html
https://aws.amazon.com/cn/public-datasets/
https://www.kaggle.com/competitions
http://www.kdnuggets.com/datasets/index.html http://www.sogou.com/labs/resource/list_pingce.php https://tianchi.aliyun.com/datalab/index.htm http://www.pkbigdata.com/common/cmptIndex.html
11數據清洗和轉換
實際生產環境中機器學習比較耗時的一部分
大部分的機器學習模型所處理的都是特徵,特徵通常是輸入變量所對應的可用於模型的 數值表示
大部分情況下 ,收集得到的數據需要經過預處理後才能夠爲算法所使用,預處理的操作 主要包括以下幾個部分:
- 數據過濾
- 處理數據缺失
- 處理可能的異常、錯誤或者異常值
- 合併多個數據源數據
- 數據彙總
對數據進行初步的預處理,需要將其轉換爲一種適合機器學習模型的表示形式, 對許多模型類型來說,這種表示就是包含數值數據的向量或者矩陣
- 將類別數據編碼成爲對應的數值表示(一般使用1-of-k方法)-dumy
- 從文本數據中提取有用的數據(一般使用詞袋法或者TF-IDF)
- 處理圖像或者音頻數據(像素、聲波、音頻、振幅等<傅里葉變換>)
- 數值數據轉換爲類別數據以減少變量的值,比如年齡分段
- 對數值數據進行轉換,比如對數轉換
- 對特徵進行正則化、標準化,以保證同一模型的不同輸入變量的值域相同
- 對現有變量進行組合或轉換以生成新特徵,比如平均數 (做虛擬變量)不斷嘗試
11.1類型特徵轉換之1-of-k
功能:將非數值型的特徵值轉換爲數值型的數據
描述:假設變量的取值有 k 個,如果對這些值用 1 到 k 編序,則可用維度爲 k
的向量來表示一個變量的值。在這樣的向量裏,該取值所對應的序號所在的元素
爲1,其他元素均爲0.
T1 | T2 | T3 | |
---|---|---|---|
R1 | A | 1 | 2 |
R2 | A | 2 | 3 |
R3 | B | 3 | 3 |
R4 | C | 2 | 2 |
R5 | C | 1 | 2 |
A | B | C | |
---|---|---|---|
A | 1 | 0 | 0 |
B | 0 | 1 | 0 |
C | 0 | 0 | 1 |
最終轉成以下形式
T1-A | T1-B | T1-C | T2 | T3 | |
---|---|---|---|---|---|
R1 | 1 | 0 | 0 | 1 | 2 |
R2 | 1 | 0 | 0 | 2 | 3 |
R3 | 0 | 1 | 0 | 3 | 3 |
R4 | 0 | 0 | 1 | 2 | 2 |
R5 | 0 | 0 | 1 | 1 | 2 |
11.2文本數據抽取
文檔1內容:A(2)、B(1)、C(3)、D(9)、E(1)
文檔2內容:A(1)、B(5)、C(2)、D(10)
A | B | C | D | E | |
---|---|---|---|---|---|
文檔1 | 2 | 1 | 3 | 9 | 1 |
文檔2 | 1 | 5 | 2 | 10 | 0 |
TF(A|文檔1)=1/8
TF(B|文檔1)=1/16
…
TF(E|文檔2)=0/18=0
IDF(A)=IDF(B)=IDF©=IDF(D)=2 / 2 = 1
IDF(E)=2/1=2
A | B | C | D | E | |
---|---|---|---|---|---|
文檔1 | 1/8 | 1/16 | 3/16 | 9/16 | 1/8 |
文檔2 | 1/18 | 5/18 | 1/9 | 9/5 | 0 |
11.2.1詞袋法
將文本當作一個無序的數據集合,文本特徵可以採用文本中的詞條T進
行體現,那麼文本中出現的所有詞條及其出現的次數就可以體現文檔的特徵
11.2.2TF-IDF
詞條的重要性隨着它在文件中出現的次數成正比增加,但同時會隨着它 在語料庫中出現的頻率成反比下降;也就是說詞條在文本中出現的次數越多,表 示該詞條對該文本的重要性越高,詞條在所有文本中出現的次數越少,說明這個 詞條對文本的重要性越高。TF(詞頻)指某個詞條在文本中出現的次數,一般會將 其進行歸一化處理(該詞條數量/該文檔中所有詞條數量);IDF(逆向文件頻率)指 一個詞條重要性的度量,一般計算方式爲總文件數目除以包含該詞語之文件的數 目,再將得到的商取對數得到。TF-IDF實際上是:TF * IDF
12模型訓練及測試
- 模型選擇:對特定任務最優建模方法的選擇或者對特定模型最佳參數的選擇。
- 在訓練數據集上運行模型(算法)並在測試數據集中測試效果,迭代進行數據模型的修改, 這種方式被稱爲交叉驗證(將數據分爲訓練集和測試集,使用訓練集構建模型,並使用測 試集評估模型提供修改建議)
- 模型的選擇會盡可能多的選擇算法進行執行,並比較執行結果
- 模型的測試一般以下幾個方面來進行比較,分別是準確率/召回率/精準率/F值
-
- 準確率(Accuracy)=提取出的正確樣本數/總樣本數
-
- 召回率(Recall)=正確的正例樣本數/樣本中的正例樣本數——覆蓋率
-
- 精準率(Precision)=正確的正例樣本數/預測爲正例的樣本數
-
- F值=PrecisionRecall2 / (Precision+Recall) (即F值爲正確率和召回率的調和平均值)
預測值 | 預測值 | ||
---|---|---|---|
正例 | 負例 | ||
真實值 | 正例 | 真正例(A) | 假負例(B) |
真實值 | 負例 | 假正例() | 真負例(D) |
A和D預測正確,B和C預測錯誤,測試計算結果爲:
13ROC
ROC(Receiver Operating Characteristic)最初源於20世紀70年代的信號 檢測理論,描述的是分類混淆矩陣中FPR-TPR兩個量之間的相對變化情況, ROC曲線的縱軸是“真正例率”(True Positive Rate 簡稱TPR),橫軸是“假 正例率” (False Positive Rate 簡稱FPR)。
如果二元分類器輸出的是對正樣本的一個分類概率值,當取不同閾值時會 得到不同的混淆矩陣,對應於ROC曲線上的一個點。那麼ROC曲線就反映了 FPR與TPR之間權衡的情況,通俗地來說,即在TPR隨着FPR遞增的情況下,誰 增長得更快,快多少的問題。TPR增長得越快,曲線越往上屈,AUC就越大, 反映了模型的分類性能就越好。當正負樣本不平衡時,這種模型評價方式比起 一般的精確度評價方式的好處尤其顯著。
14AUC
AUC的值越大表達模型越好
AUC(Area Under Curve)被定義爲ROC曲線下的面積,顯然這個 面積的數值不會大於1。又由於ROC曲線一般都處於y=x這條直線的 上方,所以AUC的取值範圍在0.5和1之間。使用AUC值作爲評價標準 是因爲很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好, 而AUC作爲數值可以直觀的評價分類器的好壞,值越大越好。
AUC = 1,是完美分類器,採用這個預測模型時,不管設定什麼閾值 都能得出完美預測。絕大多數預測的場合,不存在完美分類器。
0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值 的話,能有預測價值。
AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。 AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機 猜測。
15模型評估
迴歸結果度量
explained_varicance_score:可解釋方差的迴歸評分函數
mean_absolute_error:平均絕對誤差
mean_squared_error:平均平方誤差
15.1模型評估總結_分類算法評估方式
指標 | 描述 | SK函數 |
---|---|---|
Precision | 精確度 | from sklearn.metrics import precision_score |
Recall | 召回率 | from sklearn.metrics import recall_score |
F1 | F1指標 | from sklearn.metrics import f1_score |
Confusion Matrix | 混淆矩陣 | from sklearn.metrics import confusion_matrix |
ROC | ROC曲線 | from sklearn.metrics import roc |
AUC | ROC曲線下的面積 | from sklearn.metrics import auc |
15.2模型評估總結_迴歸算法評估方式
指標 | 描述 | SK函數 |
---|---|---|
Mean Square Error (MSE, RMSE) | 平均方差 | from sklearn.metrics import mean_squared_error |
Absolute Error | 絕對誤差 | from sklearn.metrics import mean_absolute_error, (MAE, RAE) median_absolute_error |
R-Squared | R平方值 | from sklearn.metrics import r2_score |
16模型部署和整合
當模型構建好後,將訓練好的模型存儲到數據庫中,方便其它使用模型的應用加 載(構建好的模型一般爲一個矩陣)
模型需要週期性(一週,一月)
17模型的監控與反饋
- 當模型一旦投入到實際生產環境中,模型的效果監控是非常重要的,往往需要關 注業務效果和用戶體驗,所以有時候會進行A/B測試
- 模型需要對用戶的反饋進行響應操作,即進行模型修改,但是要注意異常反饋信 息對模型的影響,故需要進行必要的數據預處理操作