引自:http://blog.csdn.net/zbc1090549839/article/details/45047377
有幸用最近兩個月的業余時間把”統計機器學習”一書粗略的學習了一遍,同時結合“模式識別”、“數據挖掘概念與技術”的知識點,對機器學習的一些知識結構進行梳理與總結:
機器學習包括兩個主要問題1、學習什么,2、怎么學習。
首先來梳理一下學習什么
一、學習什么
1. 要解決什么問題?機器學習中主要解決以下三類問題:
a) 監督學習問題:給定輸入輸出集(即人工標記的樣本集合),使用這一數據集對某一選定的模型進行訓練,訓練得到的模型能夠對新的輸入預測其輸出。具體的預測任務包括分類問題、標注問題及回歸問題。 b) 半監督學習問題:使用部分人工標記的樣本和部分未人工標記的樣本組成的樣本集對模型進行訓練,訓練得到的模型能夠對新的輸入預測其輸出。 c) 非監督學習問題:對未經過人工標記的樣本進行學習,以發現數據中的結構性知識。聚類分析、關聯分析都屬於這一類問題。
2. 學習哪種模型:針對具體問題選取切實可行的模型與方案
以下列舉了各類學習問題中基本的模型,實際應用中的模型多是在這些基本模型上針對具體的業務要求進行了改進。 標注問題的基本模型包括:隱馬爾可夫、條件隨機場。 回歸問題:神經網絡、決策回歸樹、Logistic回歸、以及普通的線性回歸模型 b) 半監督問題包括1、自我訓練模型:首先使用有類標記的數據進行模型的訓練,使用模型對未標記的數據進行標記,選取最有把握的標記的樣本加入到訓練集合中並再次使用訓練集合對模型進行訓練,用新的模型對未標記的樣本進行標記……如此反復。2、協同訓練模型:包含多個子模型,每個子模型對已標記的數據進行學習,使用模型對未標記的數據進行標記並將最有把握的標記加入到已標記的數據集中,新的已標號數據集訓練另外一個模型,再次對未標記的數據進行標記,供其他模型學習。在該模式下,一個模型是另外一個模型的老師,多個模型互教互學,故有協同訓練這一名稱了。 c) 非監督學習問題:其中包括聚類模型和關聯分析模型。在關聯分析問題中,常見的為頻繁模型挖掘(發現數據集中頻繁出現的子結構)、關聯規則挖掘(購物車商品分析中常使用)。聚類問題中主要從四個方面進行聚類挖掘(1)、基於划分的聚類模型:K均值、K中心點,原理主要是基於屬性的相似性進行划分(2)基於層次的聚類模型:主要為凝聚聚類及該方法的逆過程(分裂划分),該方法主要用於形成族群的聚類與划分。(3)基於密度的方法:上述(1)(2)方法的缺點主要是在聚類時難於發現具有任意形狀的結構,基於密度的方法則可以克服這一缺點,利用高密度聯通區域來識別聚類結構(在圖像處理OCR識別中可用於對字符圖像進行預處理操作)。(4)基於網格的方法。
a) 監督學習的分類問題使用的生成模型(朴素貝葉斯、神經網絡),判別模型(K近鄰、感知機、決策樹、Logistic回歸、SVM、boost等)。
其二,在基本理解問題。選定模型之后,需要解決模型怎么學習的問題:
二、怎么學習
1. 收集數據、預處理數據、提取特征:預處理數據通常需要對缺失值、異常值進行填充或者去除操作,也包括對原始數據進行適當變換(如PCA、ICA、小波變換、FFT等等),也包括對數據格式、大小的轉換(如圖像處理中將高清圖壓縮為固定大小、指定格式的圖像)。
2. 采用什么算法進行求解並優化模型:不同的模型及求解算法決定了系統學習的成本與時效。常見的優化求解算法包括:梯度下降算法、牛頓法、擬牛頓法、LM算法,及使用拉格朗日對偶性的約束求解算法。在構建模型的過程中根據模型優化准則的不同需要對應的方法(分布參數估算使用極大似然方法、隱變量估算使用EM方法、決策樹求解使用信息增益一類的方法等),不同的模型對象其優化准則各有不同,這一過程值得深入學習。同時,為了盡量避免過擬合,通常會在模型之中添加正則化的方法。
3. 模型評估:模型求解完畢之后,需要一定的准則對得到的模型質量進行度量,常用的評估指標包括:准確率、召回率、TP、FN、FP、TN、ROC曲線及面積,交叉驗證等,回歸問題中也會使用擬合殘差、擬合優度進行度量。並不是每個指標都有效,結合自己的業務問題使用合適的指標進行度量才是關鍵。
機器學習中的特征工程總結一
特征工程的具體過程則由以下四點決定:
1、評估模型優劣的方法、指標是什么?(RMSE還是AUC等)
2、要解決的問題屬於分類問題還是回歸問題..
3、具體使用的模型是什么?(決策樹、svm還是什么)
4、原始數據的形態?是否抽樣、是否為結構化數據?是否進行了數據清理等
一、特征提取,從原始數據中自動構造新特征:
通常得到的原始數據,比如音頻、圖像、文本等,使用列表數據表示時,其原始特征集通常可大數百萬維。如此高的維數,怎么將它的維數減小並利於建模,就是特征提取需要做的事情了。特征提取的方法因具體領域而不同,對於列表數據,可以使用PCA、CCA等方法進行降維,提取重要的特征表示;對於圖像音頻數據,小波分析、傅里葉分析等信號處理領域的一些通用方法都可以借鑒。
二,特征選取,從大量特征中選取有有用的特征:
通常經過特征提取步驟得到的特征量依然較大,在大量特征中,需要識別出哪些特征有利於提高模型質量。一般從一下三方面進行考慮:
1、特征與待解決問題的相關性
2、特征對模型精度的影響
3、特征彼此間存在的冗余性。
從這三個方面考慮后,將一些不必要的特征從特征集中去除,將得到一個更優質的特征集。一些通用的方法包括:
1、使用卡方檢驗獲得特征與待解決問題間的相關性,
2、使用決策樹選取分類、回歸精度高的特征
3、使用皮爾遜相關系數檢驗特征間的相關性。去除冗余性。
三,特征構造:由人工從原始數據集中構造出新特征:
原始數據集中存在的部分模式、結構上的信息,需要由人進行總結提取。對應於自動特征提取,這一部分可以稱之為人工特征提取。這一部分主要依賴於從業人員的經驗、直覺,同時可以借助一些統計工具、指標,進行探索性的提取新特征。能不能有效果,就看機緣和人品了。
四,特征學習,從原始數據集中自動識別和使用特征:
特征提取,特征選取,特征構造無不依賴於人工 或定義特征 或定義獲得特征的方法,同時原始數據集也依賴於人工方式進行轉換,特征處理在建模過程中依然是個棘手的問題。目前主要借助深度學習的思路,使用自編碼或者受限波爾茲曼機來進行特征提取。
總的來說,特征工程怎么做,還是取決於具體的數據和業務,做的好不好在,直接關系到模型的輸出效果。