資料歸一化處理
1. 0-1標準化
2. z-score標準化
#1. 0-1標準化
#將資料的最大最小值記錄下來,並通過max-min作為基數,進行資料的歸一化處理
#2. z-score標準化
#z分數,是乙個分數與平均數的差再除以標準差的過程
#z值的量代表著原始分數和母體平均值之間的距離,是以標準差為單位計算,在原始分數低於平均值時,z則為負數,反之為證書
df=pd.dataframe(
)def
f_z(df,
*cols)
: df_n=df.copy(
)for col in cols:
u=df_n[col]
.mean(
) std=df_n[col]
.std(
) df_n[col+
'_zn']=
(df_n[col]
-u)/std
return
(df_n)
df_zn=f_z(df,
'v1'
,'v2'
)df_zn
u_zn=df_zn[
'v1_zn'
].mean(
)std_zn=df_zn[
'v1_zn'
].std(
)print
('標準化後v1的均值為:%.2f ,標準差為:%.2f'
%(u_zn,std_zn)
)#經過處理的資料符合標準正態分佈,即均值為0,標準差為1
#什麼情況下用z-score標準化
#在分類、聚類演算法中,需要使用距離來度量相似性的時候,z-score表現更好
資料連續屬性離散化
連續屬性變換為分類屬性:在數值的取值範圍內設定若干個離散劃分點,將取值範圍化為一些離散化的區間,最後用不同的符號或整數值代表每個子區間中資料值
等寬法/等頻法
#等寬法
#cut方法
ages=[20
,22,25
,27,21
,23,37
,31,61
,45,42
,32]#將年齡劃分為18-25,26-35,36-60,60以上
bins=[18
,25,35
,60,100
]cats=pd.cut(ages,bins)
print
(cats.codes)
#分組編號
print
(cats.categories)
#四個區間,結果為index
print
(pd.value_counts(cats)
)#按區間計數
print
(pd.cut(ages,bins,right=
false))
#預設右閉
#等頻法:以相同數量的記錄放進每個區間
#qcut方法
data=np.random.randn(
1000
)s=pd.series(data)
cats=pd.qcut(s,4)
print
(pd.value_counts(cats)
)#qcut 根據樣本分位數對資料進行面元劃分,得到大小基本相等的面元,但並不能保證每個面元含有相同資料個數
#也可以設定成自定義的分位數(0-1之間的數,包含端點):pd.qcut(data,[0,0.1,0.5,0.9,1])
資料歸一化處理 特徵歸一化
1 定義 資料的歸一化處理,即將資料統一對映到 0,1 區間上。2 方法 1 最大最小標準化 min max normalization 本歸一化方法又稱為離差標準化,使結果值對映到 0 1 之間,轉換函式如下 應用場景 在不涉及距離度量 協方差計算 資料不符合正太分布的時候,可以使用第一種方法或其...
資料離散化和歸一化
資料離散化和歸一化 在進行資料分析時,通常需要對資料進行歸一化和離散化的操作 from pylab import from numpy import import codecs import matplotlib.pyplot as plt import operator 新加了乙個庫,用於排序 i...
資料離散化處理
離散化,把無限空間中有限的個體對映到有限的空間中去,以此提高演算法的時空效率。通俗的說,離散化是在不改變資料相對大小的條件下,對資料進行相應的縮小。例如 原資料 1,999,100000,15 處理後 1,3,4,2 原資料 處理後 例如有時需要將資料直接作為陣列下標,但因為資料太大而無法開陣列時,...