實際生產中機器學習的整個過程應該是如下的幾步(後面還將從資料探勘的角度另文進行講解):
1.場景選擇(演算法選擇)——根據實際問題選擇合適的演算法,是分類還是回歸等,是否需要做特徵抽象,或者特徵縮放;
2.資料預處理——缺失值的處理,資料清洗等等;
3.特徵工程——包括特徵構建、特徵提取、特徵選擇等;
4.模型訓練——判斷過擬合和欠擬合,通過交叉驗證和grid research來選擇引數,調整模型複雜度;
5.模型評估及優化——測試模型,分析誤差,找到誤差**,進行改進;
6.模型融合——提公升演算法主要方法是模型的前端(如特徵工程、清洗、預處理、取樣等環節)和後端(如模型融合),成熟的機器演算法只有有限的幾種,往往通過幾種演算法的融合來提公升模型的效能;
機器學習中「資料決定機器學習結果的上限,而演算法只是盡可能的逼近這個上限」,資料的好壞決定了模型的效能,機器學習過程中資料預處理和特徵工程是十分重要的步驟,兩者也是緊密結合在一起的。
資料預處理可以按照以下步驟進行:
一、匯入資料,一般是csv格式的文件,使用pandas庫中的方法;
二、分析缺失資料值,找出含有缺失資料的行或者列;
三、統計分析,對割各列資料進行統計,得到相關屬性,如峰值、最大值、均值、偏斜度等等;
四、資料處理,包括:
1.刪除資料,如刪除無用特徵列,刪除空的列,和其他一些髒資料(不符合常識的);
2.填充缺失值,根據情況使用某些數值如均值、最大值等,對缺失值等進行填充;
3.字串替換,將元素的字串替換成數字等,再使用one-hot獨熱編碼處理數位化的類別屬性(只有存在性,沒有大小的概念);
4.資料連線,講兩塊資料連線在一起進行分析;
5.資料轉換,如使用log(1+x)函式處理數值,改變資料的偏斜度,使之更加符合正態分佈;
6.資料的標準化和歸一化,標準化是使資料按比例縮小落在一定範圍內,歸一化是是資料對映到[-1,1]或者[0,1]區間。歸一化分為線性歸一化、z-score歸一化等,暫不贅述。
資料預處理之後就可以認為手中的資料是可以使用的了,為了更好地利用資料樣本,還需要在特徵上做文章。
特徵構建,相當於是特徵構造,原始資料中人工的找出一些具有物理意義的特徵,並對特徵進行分割與結合。比如特徵x1和x2,那麼x1+x2可以是乙個新的特徵,也就是通過某些運算來生成新的特徵。特徵構建是乙個比較麻煩的問題,沒有一定的方法,需要對資料敏感性,以及機器學習的實戰經驗。
特徵提取,可以算是其中最重要的了,比如在資料元素裡提取出特徵,例如卷積神經網路中卷積層和池化層就是提取的特徵。主要方法包括pca主成分析、pla線性判別分析等。
1.pca主成分析的通過座標轉換,尋找最優子空間,從而達到降維、去相關性的目的。那麼什麼是最優子空間呢?我們為了達到目標,尋找的最優指的是使樣本點投影到新的座標之後盡量的分散(也就是方差最大),同時為了保留樣本中的原始資訊,我們不能使新的座標線性相關(也就是讓任意兩特徵之間的協方差為0,也即最終座標是正交的)。這樣就得到了協方差矩陣:
其中
我們計算原始資料的協方差矩陣,通過某個基變換得到新空間的協方差矩陣,使得新的協方差矩陣中方差最大同時協方差為0。怎麼找到這個基變換呢?根據線性代數的知識,實對稱陣一定是可以對角化的。
其中根據特徵值的大小反映對應特徵的重要性,選擇其中最大的一部分(如75%)來進行降維處理。(大致的過程就是這樣,我看到西瓜書上面有更詳盡的推導,以後再試著專門講講,先佔坑吧。)
2.lda線性判別分析,其基本思想是將高維的樣本投影到最佳鑑別空間,以達到抽取分類資訊和壓縮特徵空間維數的效果,所謂的最佳鑑別空間就是指在新的子空間樣本有最大的類間距離和最小的類內距離。和pca不同的是lda是有監督的,需要樣本有label。看下圖就能很好的理解
公式先不推導了,大致的思想是求投影後求類間距離和類中距離,使類間距離最大的同時,使類中距離最小。類間分散程度(類間距離)大概相當兩類均值的歐氏距離
損失函式為
關於pca和lda的比較如下:
相同點不同點
a) 兩者均可以對資料進行降維;
a) lda有監督,pca無監督;
b) 兩者在降維時均使用了矩陣特徵分解的思想;
b) lda最多降維到類別數k-1的維數,而pca無限制;
c) 兩者都假設資料符合高斯分布;
c) lda除了降維,還可用來分類;
d) lda選擇分類效能最好的投影方向,而pca選擇樣本點投影具有最大方差的方向;
特徵選擇,是特徵集合中挑選一組具有明顯物理或統計意義的特徵子集,和特徵提取一樣都能降低特徵的維度、減少資料冗餘。特徵提取有時能發現更有意義的特徵屬性,特徵選擇的過程經常能表示出每個特徵的重要性對於模型構建的重要性(特徵選擇過程對模型構建的重要性??)。
機器學習 資料特徵預處理
資料的特徵預處理 數值型資料 標準縮放 歸一化 標準化 缺失值 類別型資料 one hot編碼 時間型別 時間的切分 歸一化處理 統計人覺得幾個特徵同等重要時,要用歸一化 目的 使得乙個特徵不會對最終結果不會造成更大影響 特點 通過對原始資料進行變換,把資料對映到 預設 0,1 之間 公式 x x ...
機器學習 資料特徵預處理
通過特定的統計方法 數學方法 將資料轉換成演算法要求的資料 數值型資料 標準縮放 1 歸一化 2 標準化 3 缺失值 類別型資料 one hot編碼 時間型別 時間的切分 sklearn特徵處理api sklean.preprocessing 特點 通過對原始資料進行變化把資料對映到 預設為 0,1...
機器學習 特徵預處理
通過一些轉換函式將特徵資料轉換成更加適合演算法模型的特徵資料的過程。特徵的單位或者大小相差較大,或者某特徵的方差相比其他的特徵要大出幾個數量級,容易影響 支配 目標結果,使得一些演算法無法學習到其它的特徵。對資料進行標準化或者歸一化可解決此類現象 資料標準化 是消除變數間的量綱關係,從而使資料具有可...