眾所周知,基於現實世界資料不完整(缺少屬性值,只有聚合資料),資料不一致(比如說錯誤或異常值)等原因,我們對資料預處理越發的看重。
在機器學習演算法中,我們通常會使用一些技術來處理資料,以獲得更好的結果。在這裡,作者使用的是Python語言,你也可以用其他語言來處理資料。
在python中,我們首先匯入庫/模組,這些庫/模組可以幫助我們將程式碼區分為不同的部分。
匯入庫
在這裡,我們使用了不同的資料集,其中包括一些獨立的變數。
匯入資料集
在匯入資料時,我們發現在"年齡"和"工資"方面有一些缺失值。並且某些分類資料包含在了"採購"這一獨立值中。
因此,我們需要從實際情況出發,解決這些問題。
缺失值
想查詢缺失值,我們就需要找出平均值。
分類資料
什麼是分類屬性?
分類變數是屬於特定類別的變數。像頭髮顏色、性別、大學專業、大學就讀、政治傾向、殘疾或性取向都可以是列出分類變數的類別。通常,這些變數在一個集合中是固定不變的。
例如:
"頭髮顏色"這一類別可以包含"黑色"、"棕色"、"金色"和"紅色"這些分類變數。
"性別"類別可以包含"男性"、"女性"或"其他人"這些分類變數。
拆分資料集
拆分資料集意味著將完整的資料集分成兩部分。即拆分為:
1.測試資料
2.訓練資料
在拆分中,測試資料應包含20%的資料,訓練資料應包含80%的資料。為了拆分資料,我們使用帶有cross_validation的scikit-learn包,並然後把它匯入模組train_test_split中。
功能擴充
什麼是StandardScaler?
對許多機器學習估計器來說,資料集StandardScaler化是一種極其常見的需求。如果單個特徵不像標準的正態分佈資料時(例如,均值為0的高斯分佈和單位方差為0的高斯分佈),它們的表現會很糟糕。
預處理模組提供了實用程式類StandardScaler分析器,該分析器透過Transformer API來計算訓練和測試資料集上的均值和標準差。相關連結:
FIT_Transform()和Transform()之間的區別?
將資料居中(使其均值為0,單位標準差為0),減去均值,再除以標準差。
因此,每個sklearn的變換的fit()只計算引數(例如StandardScaler的μ和σ)並將它們儲存為內部物件狀態。
功能擴充方法
參考資料
如果你想要完整的python程式碼對每個資料進行預處理,請訪問下面的連結:
此外,關於資料預處理的更多細節,請點選下面這個連結。熟練掌握這些資料預處理方法,能使你更上一層樓。
連結:
資料預處理的具體細節及其型別,你可以參照這個連結:(在這篇文章中,你會知道為什麼我們需要資料預處理? 資料清理、資料整合、資料轉換、資料離散化等更多內容。)