官术网_书友最值得收藏!

4.3 數據的規范化

在統計學和統計學應用中,規范化可以有一系列含義。在最簡單的情況下,評級的標準化意味著將在不同尺度上測量的值調整到概念上的共同尺度。在更復雜的情況下,規范化可以指更復雜的調整,其意圖是使調整值的整個概率分布對齊。在教育評估中得分標準化的情況下,可能有意將分布與正態分布對齊。概率分布規范化的不同方法是分位數規范化,其中不同度量的分位數被對齊。

在統計學的另一種用法中,規范化是指創建統計的移位和縮放版本。其意圖是在比較不同數據集的相應規范化值時,這些正則化值可以消除數據集差異。某些類型的規范化僅涉及縮放,以獲得相對于某個大小變量的值。于是測量的對象變為數據變化比率,而不是針對標量進行測量。

在機器學習中,需要學習的數據樣本存在多個維度,而這些維度性質各異,通常具有不同的量綱或者數量級。例如,樣本的特征A的取值范圍為0~1,而特征B的取值范圍為100~200。當各種特征之間的水平相差很大時,如果直接用原始指標值進行分析,就會增加數值較高的特征在綜合分析中的影響程度,同時,相對削弱數值水平較低特征的影響程度。因此,為了保證結果的可靠性,需要對原始指標數據進行規范化。

4.3.1 縮放規范化

縮放規范化,具體來講,是將數據按照比例縮放,使之落入一個較小的特定區間,如[0,1]。在某些比較和評價的指標處理中經常會用到縮放規范化,用于去除數據的單位限制,將其轉化為無量綱的純數值,便于不同單位或者量級的指標進行比較和加權。

先從最簡單的縮放開始,如果特征之間的數值差異巨大,可以先從單個特征的最大值max和最小值min入手,將最大值和最小值作為控制縮放的因子。下面介紹兩種方法——存在樣本,其特征數為k,于是就有最小值-最大值縮放(Min-Max Scaling)及最大絕對值縮放(Max Absolute Scaling)。

最小值-最大值縮放將該樣本每個特征下的最大值與最小值之差作為縮放倍數,實際上,每個特征下沒有任何一個數會超過其最值之差,所以其作為分母;而分子則是每個特征下的值與最小值之差。當然,全為0的特征,其縮放后的值為0。故有如下公式:

經過最小值-最大值縮放之后的特征,其取值范圍為0~1,從而使其轉化為無量綱的純數值,在之后的模型訓練中,進一步提升模型的表現。其代碼實現如下:

其輸出結果如下:

最大絕對值縮放與最小值-最大值縮放類似,但是其執行效率更高。因為最大絕對值縮放在分子上減少了減法運算,分母上也僅僅采用特征的最大值的絕對值,具體的公式如下:

因為分子缺少對最小值的操作,所以其取值范圍為-1~1,且數據分布是以0為中心的,整體上來說,分布更加稀疏、合理。其代碼實現如下:

其輸出結果如下:

對于縮放來說,或許讀者會有一些特殊需求,如希望數據分布到特定的取值區間,而不僅僅是0~1或者-1~1,最小值-最大值縮放可以預先設置特定的范圍,數據變化滿足如下公式:

式中,x_scaleik)表示設定最大值和最小值之后的縮放變換輸出;max、min分別表示設定的最大值和最小值。

具體代碼如下:

其輸出結果如下:

當然,上述縮放方法并不完美,當存在新加入的樣本時,如果樣本中的某個特征的數值又恰好超出原有最大值或者最小值的界定邊界,則會引發最大值或者最小值的更新;進一步講,如果最大值和最小值存在不穩定的情況,其轉化后的特征值也會存在不穩定的狀況(假設對樣本進行實時轉化)。在上例代碼的基礎上,引入一個超出邊界的數據,并觀察其輸出結果,具體代碼如下:

其輸出結果如下:

4.3.2 標準化

標準化(Standardization),又稱標準差規范化或者Z標準化(Z-Score Normalization),對樣本的每個特征分別進行計算使其滿足正態分布——均值為0,標準差為1,具體公式如下:

式中,為擁有k個特征樣本i在通過標準化處理之后的樣本;μ代表所有樣本的均值;σ代表所有樣本的標準差。

數據集的標準化是許多在Sklearn中實現的機器學習估計器的共同要求;如果單個特征沒有呈現標準的正態分布——均值為0和標準差為1的分布,那么它們的表現可能很糟糕。在實際應用中,人們經常忽略分布的形狀,只是將數據轉換為中心,減去每個特征的平均值,然后將非常數特征除以它們的標準差。例如,在學習算法的目標函數中使用的許多元素(如支持向量機的RBF核或者線性模型的L1和L2調整器)都假定所有特征中心在0附近,且方差相同。如果一個特征的方差比其他特征大一個數量級,它可能支配目標函數,使估計器無法像預期的那樣正確地學習其他特征。其代碼實現如下:

其輸出結果如下:

從輸出結果可以發現,通過標準化轉換之后,其均值為0,標準差為1,滿足標準正態分布。

除此之外,所有的預處理方法都提供函數接口,之前展示的是類接口,函數調用的代碼實現如下:

其輸出結果如下:

4.3.3 范數規范化

在介紹范數規范化之前,應先了解什么是范數(Norm)。

范數是具有“長度”概念的函數。在線性代數、泛函分析及相關數學領域,范數是一個函數,其為向量空間內所有向量賦予非零的正長度或者大小。距離的定義是一個較為寬泛的概念,只要滿足非負、自反、三角不等式就可以稱為距離。范數是一種強化了的距離概念,它在定義上比距離多一條數乘的運算法則。

函數與幾何圖形往往具有對應的關系,特別是在三維以下的空間內,函數是幾何圖像的數學概括,而幾何圖像是函數的高度形象化,如一個函數對應幾何空間中若干點組成的圖形。

但當函數與幾何超出三維空間時就很難直觀地呈現出來,于是存在映射,映射表達的就是一個集合通過某種關系轉為另外一個集合。

為了更好地在數學上表示這種映射關系(這里特指線性關系),我們引入矩陣。這里的矩陣用于表征上述空間映射的線性關系。通過向量表示上述映射中提到的集合,而人們通常所說的基就是這個集合的最一般關系。可以這樣理解,一個集合(向量),通過一種映射關系(矩陣),得到另外一個集合(另外一個向量)。

向量的范數,就是表示這個原有集合的大小;矩陣的范數,就是表示這個變化過程的大小的一個度量。

范數L1或者L2實際表達的是什么?如果以更加概括的形式表達,都可以表現為L-P范數的形式,得到如下公式:

于是,可以得到如下范數并獲悉其意義。

范數L0——實際上用于度量向量中非零元素的個數。

范數L1——其來源是曼哈頓的出租車司機在曼哈頓街道中由一點到另一點需要走過的距離,用于表示向量中元素的絕對值之和,可以度量兩個向量間的差異,如絕對誤差和(Sum of Absolute Difference,SAD),其公式如下:

范數L2——用于表示向量的距離,即所謂的歐氏距離(Euclidean Distance,ED),同樣,L2也可以度量兩個向量間的差距,如平方差和(Sum of Squared Difference),其公式如下:

到此為止,上述范數的意義還比較容易理解,但是范數并不止于L2,到最極端的情況,還有范數L∞,為了方便理解范數的P值的增長對范數本身意味著什么,應先了解L∞最終代表什么,其公式表示如下:

在向量元素的集合中,必然存在一個最大絕對值,而這個最大絕對值在無窮大次方之后,其他元素的絕對值相對于最大絕對值的無窮大次方趨近于0,當再進行的開方之后,得到的是,即

L1表示向量元素{xi}的絕對值之和[見圖4-1(a)],L2表示向量元素{xi}的平方和的幾何平均數[見圖4-1(b)]。所以,同一組向量,隨著范數P值的增加,其趨向于該向量元素中的最大值,圖形更加“豐滿”;相反,隨著范數P值的減小,曲線越貼近坐標軸,最極端的情況,L0表示向量元素{xi}的個數。

圖4-1 L1和L2的輪廓(假設二維向量)

如圖4-2所示,從右到左,分別展示了不同范數升高時,其在超幾何空間所呈現的超幾何形態。

圖4-2 不同的P值在超平面空間的輪廓

范數正則化的處理方式也十分簡單,向量中每個元素除以向量的范數。若存在范數函數norm(x),則范數正則化變換公式為

x存在映射關系,而實現這種映射關系的過程就是范數正則化,如果對進行與之對應的范數計算就會得到其值為1。關于范數規范化的代碼實現如下。

函數化實現:

其輸出結果如下:

類實現:

其輸出結果如下:

主站蜘蛛池模板: 尼勒克县| 上饶市| 宁陕县| 定远县| 抚顺市| 东阳市| 大宁县| 专栏| 华阴市| 西昌市| 池州市| 鹿泉市| 黄陵县| 抚松县| 宝兴县| 旌德县| 蓬安县| 焉耆| 惠州市| 湖南省| 乌审旗| 康平县| 武穴市| 盈江县| 岢岚县| 凉城县| 新闻| 松原市| 镇宁| 镶黄旗| 连山| 敦煌市| 独山县| 阳山县| 通道| 禹州市| 明溪县| 固安县| 乡城县| 明光市| 思茅市|