前言:
在前一篇中,已經搭建好了Tensorflow環境,本文將介紹如何准備數據與預處理數據。
正文:
在機器學習中,數據是非常關鍵的一個環節,在模型訓練前對數據進行准備也預處理是非常必要的。
一、數據准備:
一般分為三個步驟:數據導入,數據清洗,數據划分。
1、數據導入:
數據存放在原始格式多種多樣,具體取決於用於導入數據的機制和數據的來源。比如:有*.csv,*.txt,*xls,*.json等。
2、數據清洗:
數據清洗主要發現並糾正數據中的錯誤,包含檢查數據的一致性,數據的無效值,以及缺失值等。
一致性檢查:根據每個變量的合理取值范圍和相互關系,檢查數據是否符合要求,要求異常或邏輯上不合理的數據。
無效值和缺失值檢查:由於編碼或錄入誤差,數據中可能存在一些無效的值和缺失值,需要對其進行適當的處理:估算,整例刪除,變量刪除等方法來保證數據的完整性。
數據清洗的基本操作有:
選擇,過濾,去重,采樣,變換(歸一化,標准化,縮放),數據替換(剪切,分割,合並),加權(屬性加權,自動優化),屬性生成,數據填補等。
3、數據划分:
數據划分是機器學習訓練必不可少的一個環節,將數據分成不同部分,一部分用於訓練,一部分用來驗證或測試模型。
一般可采用以下方法:
1、按一定比例划分訓練集與測試集,根據數據集大小,按8:2或7:3比例划分;
2、交叉驗證法,采用K折交叉驗證法;
二、特征工程:
(機器學習與深度學習最大的區別就是:在機器學習中,特征工程是獨立的,而在深度學習中,特征工程是與模型整合在一起的。)
特征工程是將原始數據轉化為特征的過程,這些特征可以很好的描述潛在問題,進而提高模型對未知數據的准確性。
特征一般分兩類:
固有的原始特征:直接從數據集中獲得;
從特征工程中獲得:需要從現有的數據屬性中提取出來的特征。
特征工程處理過程分三步:
特征提取,特征縮放,特征編碼。
1、特征提取:
將原始數據轉換為一組有明顯特征意義的特征。去除無關特征或關聯性很小的特征可以降低學習任務的難度,降低模型的復雜度。
主要方法:PCA和ICA
PCA(主成分分析)
找到數據中的主成分,利用這些主成分來表征原始數據,從而達到降維的目的。
步驟:1)對樣本數據中心化處理;
2)求樣本協方差矩陣;
3)對協方差矩陣進行特征分解,並從大到小排列;
4)取特征值前n個最大對應的特征向量。
ICA (獨立成分分析)
獲取相互獨立的屬性,尋找一個線性變換:z=Wx,使得z的各個特征分量之間的獨立性最大。
2、特征縮放
特征縮放包含兩種方法:歸一化和正則化
歸一化是將特征都縮放到一個指定的數據區間內。一般有兩種歸一化方法:線性函數歸一化和零均值歸一化。
線性函數歸一化: X =(X-Xmin)/(Xmax-Xmin)
零均值歸一化: 將原始數據映射到均值為0,方差為1的分布上。
3、特征編碼
1)序號編碼:
處理類別間大小關系的數據。
例如:在高,中,低三個檔次,存在高 > 中 > 低的關系,就可以用序號編碼對這三個檔次進行編碼:高表示3,中表示2,低表示1,轉換后依然保留了大小關系。
2)獨熱編碼:
用於處理類別間不具體大小關系的特征。
采用N位狀態位來對N個可能的取值進行編碼。
例:是否推出提示,有兩種取值(推出,不推出),那么獨熱編碼會將提示轉換成一個2維向量:推出(1,0),不推出(0,1)
上一篇:環境搭建與包安裝
下一篇:模型搭建與訓練
使用Tensorflow搭建回歸預測模型之三:模型搭建與訓練