pandas:数据规范化方法与python实现
這里就不說為什么要做數據規范化了,直接講幾種規范化的方法。
有許多規范化的方法,我們將學習種:最大-最小規范化、分數規范化、小數定標規范化。這里令是數值屬性,具有個觀測值。
一、原理
1.最大-最小規范化
假設和分別為屬性的最大值和最小值。最小-最大規范化通過計算
? ? ? ? ? ?
把A的值映射到區間,中的。
最小-最大規范化保持原始數據值之間的聯系。如果今后的輸入實例落在的原數據值域之外,則該方法將面臨“越界”錯誤。
2.分數(z-score)規范化(或零均值規范化)
屬性?的值基于?的均值(即平均值)和標準差規范化。的值被規范化為,由下式計算:
? ? ? ? ? ?
其中,和分別為屬性??的均值和標準差。
上面的標準差可以用均值絕對偏差替換。?的均值絕對偏差(mean absolute deviation)?定義為
? ? ? ? ? ?
這樣,使用均值絕對差的?分數規范化為
? ? ? ? ? ?
對于離群點,均值絕對偏差 比標準差更加魯棒。在計算均值絕對偏差時,不對到均值的偏差即取平方,因此離群點的影響多少有點降低。
3.小數定標規范化
小數定標規范化通過移動屬性值的小數定位置進行規范化。小數點的移動位數依賴于的最大絕對值。A的值被規范化為,由下式計算:
? ? ? ? ? ??
其中是使得的最小整數。
舉例:
假設?的取值由 到 。 的最大絕對值為 。因此,為使用小數定標規范化,我們用 (即)除每個值。因此, 被規范化為 ,而?被規范化為 。
注意,規范化可能將原來的數據改變很多,特別是使用 分數規范化或小數定標規范化時尤其如此。有必要保留規范化參數(如均值和標準差,如果使用?分數規范化的話),以便將來的數據可以用一致的方式規范化。
4.歸一化方法
由下式進行計算:
? ? ? ? ? ??
則且無量綱,并且顯然有。
二、代碼實現
#-*- coding: utf-8 -*- #數據規范化 import pandas as pd import numpy as npdatafile = '../data/normalization_data.xls' #參數初始化 data = pd.read_excel(datafile, header = None) #讀取數據(data - data.min())/(data.max() - data.min()) #最小-最大規范化 (data - data.mean())/data.std() #零-均值規范化 data/10**np.ceil(np.log10(data.abs().max())) #小數定標規范化?
?
總結
以上是生活随笔為你收集整理的pandas:数据规范化方法与python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: keras:Sequential API
- 下一篇: 数据分析:度量数据散布的四分位数