天天看點

機器學習--基礎概念

機器學習類型劃分

按有無标簽劃分

一、有監督學習

有監督學習:用已知某種或某些特性的樣本作為訓練集,以建立一個數學模型,再用已建立的模型來預測未知樣本,此種方法被稱為有監督學習,是最常用的一種機器學習方法。是從标簽化訓練資料集中推斷出模型的機器學習任務。(出處:https://www.cnblogs.com/yifanrensheng/p/12076877.html)

1.判别式模型(Discriminative Model):直接對條件機率p(y|x)進行模組化,常見判别模型有:線性回歸、決策樹、支援向量機SVM、k近鄰、神經網絡等;

(1)線性回歸:沒什麼可說的

(2)決策樹:沒什麼可說的

(3)支援向量機SVM:想要的就是找到各類樣本點到超平面的距離最遠,也就是找到最大間隔超平面。

(4)K近鄰:所謂K近鄰算法,即是給定一個訓練資料集,對新的輸入執行個體,在訓練資料集中找到與該執行個體最鄰近的K個執行個體(也就是上面所說的K個鄰居), 這K個執行個體的多數屬于某個類,就把該輸入執行個體分類到這個類中。

(5)神經網絡:趕緊掏出大學課本

2.生成式模型(Generative Model):對聯合分布機率p(x,y)進行模組化,常見生成式模型有:隐馬爾可夫模型HMM、樸素貝葉斯模型、高斯混合模型GMM、LDA等;

(1)隐馬爾可夫模型:

(2)樸素貝葉斯模型:https://zhuanlan.zhihu.com/p/37575364

(3)高斯混合模型GMM:混合模型是一個可以用來表示在總體分布(distribution)中含有 K 個子分布的機率模型,換句話說,混合模型表示了觀測資料在總體中的機率分布,它是一個由 K 個子分布組成的混合分布。

二、無監督學習

無監督學習:與監督學習相比,無監督學習的訓練集中沒有人為的标注的結果,在非監督的學習過程中,資料并不被特别辨別,學習模型是為了推斷出資料的一些内在結構。

1.無監督學習試圖學習或者提取資料背後的資料特征,或者從資料中抽取出重要的特征資訊,常見的算法有聚類、降維、文本處理(特征抽取)等。

2.無監督學習一般是作為有監督學習的前期資料處理,功能是從原始資料中抽取出必要的标簽資訊。

3.常見算法:

(1)聚類:https://blog.csdn.net/qq_40597317/article/details/80949123

(2)降維:上面的連結也簡單的介紹了降維

(3)文本處理:

三、半監督學習

半監督學習:考慮如何利用少量的标注樣本和大量的未标注樣本進行訓練和分類的問題,是有監督學習和無監督學習的結合

按功能性劃分 

分類和回歸是分類學習的代表,聚類是非監督學習的代表。

一、分類:通過分類模型,将樣本資料集中的樣本映射到某個給定的類别中(一般是有監督)

二、聚類:通過聚類模型,将樣本資料集中的樣本分為幾個類别,屬于同一類别的樣本相似性比較大(屬于無監督)

三、回歸:反映了樣本資料集中樣本的屬性值的特性,通過函數表達樣本映射的關系來發現屬性值之間的依賴關系

四、關聯規則:擷取隐藏在資料項之間的關聯或互相關系,即可以根據一個資料項的出現推導出其他資料項的出現頻率。(也屬于無監督)

算法名稱 算法描述(我這種菜鳥需要了解下概念哈哈)
C4.5 分類決策樹算法,決策樹的核心算法,ID3算法的改進算法。(待了解)
CART 分類與回歸樹(Classification and Regression Trees) (待了解)
kNN K近鄰分類算法;如果一個樣本在特征空間中的k個最相似的樣本中大多數屬于某一個類别,那麼該樣本也屬于該類别
NaiveBayes 貝葉斯分類模型;該模型比較适合屬性相關性比較小的時候,如果屬性相關性比較大的時候,決策樹模型比貝葉斯分類模型效果好(原因:貝葉斯模型假設屬性之間是互不影響的)
SVM 支援向量機,一種有監督學習的統計學習方法,廣泛應用于統計分類和回歸分析中。
EM 最大期望算法,常用于機器學習和計算機視覺中的資料集聚領域
Apriori 關聯規則挖掘算法
K-Means 聚類算法,功能是将n個對象根據屬性特征分為k個分割(k<n); 屬于無監督學習
PageRank Google搜尋重要算法之一
AdaBoost 疊代算法;利用多個分類器進行資料分類

機器學習常見名詞

1、泛化能力(generalization ability):是指一個機器學習算法對于沒有見過的樣本的識别能力。我們也叫做舉一反三的能力,或者叫做學以緻用的能力。

2、過拟合:是指模型過度的拟合了訓練集,而在其他資料集上拟合程度較差。過拟合會導緻高方差(Variance)(即為不同訓練集得到的模型的輸出與這些模型期望輸出的差異)

過拟合的解決方案:(1)擷取更多訓練資料(2)增加正則化程度 (待了解)

3、欠拟合是指模型沒有很好地捕捉到資料特征,不能夠很好地拟合資料。欠拟合的表現為其在訓練集表現較差,在測試集表現同樣較差。欠拟合會導緻高偏差(Bias) (即為模型的期望輸出與其真實輸出之間的差異)

欠拟合的解決方案:(1)使用更複雜的模型(2)減少正則化程度 (什麼事正則化程度)

4、交叉驗證(Cross Validation)

交叉驗證是用來驗證分類器的性能一種統計分析方法,基本思想是把在某種意義下将原始資料進行分組,一部分做為訓練集(training set),另一部分做為驗證集(validation set),首先用訓練集對分類器進行訓練,在利用驗證集來測試訓練得到的模型(model),以此來做為評價分類器的性能名額。

常見交叉驗證:

4.1、簡單交叉驗證(Hold-Out Method)

将原始資料随機分為兩組,一組做為訓練集,一組做為驗證集,利用訓練集訓練分類器,然後利用驗證集驗證模型,記錄最後的分類準确率為此分類器的性能名額。

簡單交叉驗證的優點是處理簡單,隻需随機把原始資料分為兩組即可。嚴格意義來說Hold-Out Method并不能算是CV,因為這種方法沒有達到交叉的思想,由于是随機的将原始資料分組,是以最後驗證集分類準确率的高低與原始資料的分組有很大的關系。

4.2、K-折交叉驗證(K-fold Cross Validation)

将原始資料分成K組(一般是均分),将每個子集資料分别做一次驗證集,其餘的K-1組子集資料作為訓練集,這樣會得到K個模型,用這K個模型最終的驗證集的分類準确率的平均數作為此K-CV下分類器的性能名額。K-CV可以有效的避免過拟合以及欠拟合的發生。

機器學習開發流程

一、資料收集:

資料來源:使用者通路行為資料、業務資料、外部第三方資料

資料存儲:

1、需要存儲的資料:原始資料、預處理後資料、模型結果

2、存儲設施:mysql、HDFS、HBase、Solr、Elasticsearch、Kafka、Redis等

資料收集方式:Flume & Kafka(大資料方向的時候要掌握)

在實際工作中,我們可以使用業務資料進行機器學習開發,但是在學習過程中,沒有業務資料,此時可以使用公開的資料集進行開發,常用資料集如下:

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

二、資料預處理

大部分情況下 ,收集得到的資料需要經過預處理後才能夠為算法所使用,預處理的操作,主要包括以下幾個部分:

  1. 資料過濾
  2. 處理資料缺失
  3. 處理可能的異常、錯誤或者異常值
  4. 合并多個資料源資料
  5. 資料彙總

對資料進行初步的預處理,需要将其轉換為一種适合機器學習模型的表示形式,對許多模型類型來說,這種表示就是包含數值資料的向量或者矩陣

  1. 将類别資料編碼成為對應的數值表示(一般使用one-hot編碼方法)
  2. 從文本資料中提取有用的資料(一般使用詞袋法或者TF-IDF)
  3. 處理圖像或者音頻資料(像素、聲波、音頻、振幅等<傅裡葉變換>,小波變換主要處理圖像)
  4. 數值資料轉換為類别資料以減少變量的值,比如年齡分段
  5. 對數值資料進行轉換,比如對數轉換
  6. 對特征進行正則化、标準化,以保證同一模型的不同輸入變量的值域相同
  7. 對現有變量進行組合或轉換以生成新特征,比如平均數 (做虛拟變量)不斷嘗試

詞袋法:将文本當作一個無序的資料集合,文本特征可以采用文本中的詞條T進行展現,那麼文本中出現的所有詞條及其出現的次數就可以展現文檔的特征

TF-IDF: 詞條的重要性随着它在檔案中出現的次數成正比增加,但同時會随着它在語料庫中出現的頻率成反比下降;也就是說詞條在文本中出現的次數越多,表示該詞條對該文本的重要性越高,詞條在所有文本中出現的次數越少,說明這個詞條對文本的重要性越高。TF(詞頻)指某個詞條在文本中出現的次數,一般會将其進行歸一化處理(該詞條數量/該文檔中所有詞條數量);IDF(逆向檔案頻率)指一個詞條重要性的度量,一般計算方式為總檔案數目除以包含該詞語之檔案的數目,再将得到的商取對數得到。TF-IDF實際上是:TF * IDF

三、特征提取

四、模型建構

模型選擇:對特定任務最優模組化方法的選擇或者對特定模型最佳參數的選擇。

五、模型測試評估

1.在訓練資料集上運作模型(算法)并在測試資料集中測試效果,疊代進行資料模型的修改,這種方式被稱為交叉驗證(将資料分為訓練集和測試集,使用訓練集構模組化型,并使用測試集評估模型提供修改建議)

2.模型的選擇會盡可能多的選擇算法進行執行,并比較執行結果

3.模型的測試一般以下幾個方面來進行比較,分别是準确率/召回率/精準率/F值

  1. 準确率(Accuracy)=提取出的正确樣本數/總樣本數
  2. 召回率(Recall)=正确的正例樣本數/樣本中的正例樣本數——覆寫率
  3. 精準率(Precision)=正确的正例樣本數/預測為正例的樣本數
  4. F值=Precision*Recall*2 / (Precision+Recall) (即F值為正确率和召回率的調和平均值)

六、模型過程:

機器學習--基礎概念

文章來源:https://www.cnblogs.com/yifanrensheng/p/12076877.html

繼續閱讀