《百面機器學習》讀書筆記(一) 特徵工程

2021-10-18 14:54:16 字數 2764 閱讀 3030

全部筆記的彙總貼:《百面機器學習》-讀書筆記彙總

特徵工程,顧名思義,是對原始資料進行一系列工程處理,將其提煉為特

徵,作為輸入供演算法和模型使用。從本質上來講,特徵工程是乙個表示和展現資料的過程。在實際工作中,特徵工程旨在去除原始資料中的雜質和冗餘,設計更高效的特徵以刻畫求解的問題與**模型之間的關係。

對數值型別的特徵做歸一化可以將所有的特徵都統一到乙個大致相同的數值區間內。

在實際應用中,通過梯度下降法求解的模型通常是需要歸一化的,包括線性回歸、邏輯回歸、支援向量機、神經網路等模型。但對於決策樹模型則並不適用,以c4.5為例,決策樹在進行節點**時主要依據資料集d關於特徵x的資訊增益比(詳見第3章第3節),而資訊增益比跟特徵是否經過歸一化是無關的,因為歸一化並不會改變樣本在特徵x上的資訊增益。

類別型特徵(categorical feature)主要是指性別(男、女)、血型(a、b、 ab、o)等只在有限選項內取值的特徵。類別型特徵原始輸入通常是字串形式,除了決策樹等少數模型能直接處理字串形式的輸入,對於邏輯回歸、支援向量機等模型來說,類別型特徵必須經過處理轉換成數值型特徵才能正確工作。

為了提高複雜關係的擬合能力,在特徵工程中經常會把一階離散特徵兩兩組合,構成高階組合特徵。

上一節介紹了如何利用降維方法來減少兩個高維特徵組合後需要學習的引數。但是在很多實際問題中,我們常常需要面對多種高維特徵。如果簡單地兩兩組合,依然容易存在引數過多、過擬合等問題,而且並不是所有的特徵組合都是有意義的。因此,需要一種有效的方法來幫助我們找到應該對哪些特徵進行組合。

文字是一類非常重要的非結構化資料,如何表示文字資料一直是機器學習領域的乙個重要研究方向。

谷歌2023年提出的word2vec是目前最常用的詞嵌入模型之一。word2vec實際是一種淺層的神經網路模型,它有兩種網路結構,分別是cbow(continues bag of words)和skip-gram。

cbow的目標是根據上下文出現的詞語來**當前詞的生成概率,skip-gram是根據當前詞來**上下文中各詞的生成概率。

cbow和skip-gram都可以表示成由輸入層(input)、對映層(projection)和輸出層(output)組成的神經網路。

\;

lda是利用文件中單詞的共現關係來對單詞按主題聚類,也可以理解為對「文件-單詞」矩陣進行分解,得到「文件-主題」和「主題-單詞」兩個概率分布。而word2vec其實是對「上下文-單詞」矩陣進行學習,其中上下文由周圍的幾個單詞組成,由此得到的詞向量表示更多地融入了上下文共現的特徵。也就是說,如果兩個單詞所對應的word2vec向量相似度較高,那麼它們很可能經常在同樣的上下文**現。

這只是lda與word2vec的不同,不應該作為主題模型和詞嵌入兩類方法的主要差異。主題模型通過一定的結構調整可以基於「上下文-單詞」矩陣進行主題推理。同樣地,詞嵌入方法也可以根據「文件-單詞」矩陣學習出詞的隱含向量表示。主題模型和詞嵌入兩類方法最大的不同其實在於模型本身,主題模型是一種基於概率圖模型的生成式模型,其似然函式可以寫成若干條件概率連乘的形式,其中包括需要推測的隱含變數(即主題);而詞嵌入模型一般表達為神經網路的形式,似然函式定義在網路的輸出之上,需要通過學習網路的權重以得到單詞的稠密向量表示。

在機器學習中,絕大部分模型都需要大量的資料進行訓練和學習(包括有監督學習和無監督學習),然而在實際應用中經常會遇到訓練資料不足的問題。比如影象分類,作為計算機視覺最基本的任務之一,其目標是將每幅影象劃分到指定類別集合中的乙個或多個類別中。當訓練乙個影象分類模型時,如果訓練樣本比較少,該如何處理呢?

乙個模型所能提供的資訊一般**於兩個方面,一是訓練資料中蘊含的資訊;二是在模型的形成過程中(包括構造、學習、推理等),人們提供的先驗資訊。當訓練資料不足時,說明模型從原始資料中獲取的資訊比較少,這種情況下要想保證模型的效果,就需要更多先驗資訊。先驗資訊可以作用在模型上,例如讓模型採用特定的內在結構、條件假設或新增其他一些約束條件;先驗資訊也可以直接施加在資料集上,即根據特定的先驗假設去調整、變換或擴充套件訓練資料,讓其展現出更多的、更有用的資訊,以利於後續模型的訓練和學習。

具體到影象分類任務上,訓練資料不足帶來的問題主要表現在過擬合方面,即模型在訓練樣本上的效果可能不錯,但在測試集上的泛化效果不佳。根據上述討論,對應的處理方法大致也可以分兩類,

具體到影象分類任務中,在保持影象類別不變的前提下,可以對訓練集中的每幅影象進行以下變換。

一定程度內的隨機旋轉、平移、縮放、裁剪、填充、左右翻轉等,這些變換對應著同乙個目標在不同角度的觀察結果。

對影象中的畫素新增雜訊擾動,比如椒鹽雜訊、高斯白雜訊等。

顏色變換。

改變影象的亮度、清晰度、對比度、銳度等。

\;

除了直接在影象空間進行變換,還可以先對影象進行特徵提取,然後在影象的特徵空間內進行變換,利用一些通用的資料擴充或上取樣技術,例如smote(synthetic minority over-sampling technique)演算法。拋開上述這些啟發式的變換方法,使用生成模型也可以合成一些新樣本,例如當今非常流行的生成式對抗網路模型。

\;

此外,借助已有的其他模型或資料來進行遷移學習在深度學習中也十分常見。例如,對於大部分影象分類任務,並不需要從頭開始訓練模型,而是借用乙個在大規模資料集上預訓練好的通用模型,並在針對目標任務的小資料集上進行微調(fine-tune),這種微調操作就可以看成是一種簡單的遷移學習。

下一章傳送門:《百面機器學習》讀書筆記(二)-模型估計

百面機器學習筆記 特徵工程

特徵工程筆記 為了消除資料特徵之間的量綱影響,我們需要對特徵進行歸一化處理,使得不同指標之間具有可比性。特徵歸一化 normalization 使各指標處於同一數值量級,以便進行分析。1 線性函式歸一化 min max scaling 它對原始資料進行線性變換,使結果對映到 0,1 的範圍,實現對原...

《百面機器學習》讀書筆記(四) 降維

全部筆記的彙總貼 百面機器學習 讀書筆記彙總 在機器學習中,資料通常需要被表示成向量形式以輸入模型進行訓練。但眾所周知,對向維向量進行處理和分析時,會極大地消耗系統資源,甚至產生維度災難。因此,進行降維,即用乙個低維度的向量表示原始高維度的特徵就顯得尤為重要。常見的降維方法有主成分分析 線性判別分析...

百面機器學習 特徵工程總結(完善中 )

一 什麼是特徵工程 最大限度從資料中提取特徵供演算法和模型使用。二 為什麼要特徵工程 資料和特徵決定了機器學習的上界,而模型和演算法只是不斷逼近這個上界。三 怎樣做特徵工程 資料預處理 1.無量綱化 2.標準化 3.區間縮放法 歸一化 4.定量特徵二值化 5.定性特徵啞編碼 6.缺失值計算 7.資料...