壹般在機器學習的 模型訓練 之前,有壹個比較重要的步驟是 數據變換 。
因為,壹般情況下,原始數據的各個特征的值並不在壹個統壹的範圍內,這樣數據之間就沒有 可比性 。
數據變換的目的是 將不同渠道,不同量級的數據轉化到統壹的範圍之內,方便後續的分析處理 。
數據變換的方法有很多,比如 數據平滑,數據聚集,數據概化,數據規範化 和 屬性構造 等。
本篇文章主要介紹數據規範化,這是壹種比較常用,也比較簡單的方法。
數據規範化是 使屬性數據按比例縮放,這樣就將原來的數值映射到壹個新的特定區域中 ,包括 歸壹化,標準化 等。
歸壹化就是獲取原始數據的最大值和最小值,然後把原始值線性變換到 [0,1] 範圍之內,變換公式為:
其中:
從公式中可以看出,歸壹化與最大最小值有關,這也是歸壹化的缺點,因為最大值與最小值非常容易受 噪音數據 的影響。
比如,我們有以下數據:
通過數據可以觀察出:
這裏我們用第壹條數據來舉例,看看是如何變換的。
sklearn 庫的 preprocessing 模塊中的 MinMaxScaler 類就是用來做歸壹化處理的。
首先引入 MinMaxScaler 類:
準備要變換的 data 數據,並初始化 MinMaxScaler 對象:
擬合數據:
輸出每個特征的最大最小值:
變換所有數據:
可以對比我們計算的第壹行數據,結果是壹樣的。
z-score 標準化 是基於正態分布的,該方法假設數據呈現 標準正態分布 。
正態分布也叫高斯分布 ,是 連續隨機變量 概率分布的壹種,它的數學公式是:
其中, u 為 均值 (平均數), σ 為 標準差 。均值和標準差是正態分布的關鍵參數,它們會決定分布的具體形態。
正態分布有以下特點:
正態分布就是常態分布,正常狀態的分布。在現實生活中,大量隨機現象的數據分布都近似於正態分布。
正態分布的分布圖為:
當 μ 為 0 , σ 為 1 時,正態分布為 標準正態分布 。
圖中的百分數表示所在面積占總面積的百分比。
z-score 標準化 利用正態分布的特點, 計算壹個給定分數距離平均數有多少個標準差 。它的轉換公式如下:
其中 x 為原始值, u 為均值, σ 為標準差, x’ 是變換後的值。
經過 z-score 標準化 後,高於平均數的分數會得到壹個正的標準分,而低於平均數的分數會得到壹個負的標準分數。
和歸壹化相比, z-score 標準化 不容易受到噪音數據的影響,並且保留了各維特征對目標函數的影響權重。
sklearn 庫的 preprocessing 模塊中的 StandardScaler 類就是用來做 z-score 標準化 處理的。
首先引入 StandardScaler 類:
準備要變換的 data 數據,並初始化 StandardScaler 對象:
擬合數據:
輸出每個特征的均值和標準差:
變換所有數據:
數據變換的目的是 將不同渠道,不同量級的數據轉化到統壹的範圍之內,方便後續的分析處理 。
不同的機器學習算法,對數據有不同的要求,所以要針對不同的算法,對原始數據進行不同的轉換。
數據規範化 是常用的數據變化方法,包括歸壹化和標準化等:
數據變換不壹定能提高模型的準確度,但是會提高數據的可解釋性。
需要註意的是,對訓練數據進行了數據變換之後,在測試模型準確度或者預測數據之前,也要對數據進行同樣的數據變換。
(本節完。)
推薦閱讀:
決策樹算法-理論篇-如何計算信息純度
決策樹算法-實戰篇-鳶尾花及波士頓房價預測
樸素貝葉斯分類-理論篇-如何通過概率解決分類問題
樸素貝葉斯分類-實戰篇-如何進行文本分類
計算機如何理解事物的相關性-文檔的相似度判斷