5.33. mnormalize 基準化¶
f=
パラメータで指定した項目を、 c=
パラメータで指定した基準化の方法で基準化する。
パラメータ¶
i= : 型=str , 任意(default=標準入力)
入力データを指定する。
o= : 型=str , 任意(default=標準出力)
出力データを指定する。
c= : 型=str , 必須
以下に示す基準化の方法のいずれかを指定する。z
: z得点 : \(z_i=(x_i-m)/u\) ( \(x_i\) : \(i\) 番目のデータ, \(m\) :算術平均, \(u\) :標準偏差)Z
: 偏差値 : \(Z_i=50+10 imes z_i\)range
: 最小値を0,最大値を1に線形変換 \(r_i=(x_i-\min_x)/(\max_x-\min_x)\)
f= : 型=str , 必須
ここで指定された項目が基準化される。:(コロン)で新項目名を指定する必要がある。例)f=
数量:数量基準値
k= : 型=str , 任意(default=キーブレイク処理しない)
キー項目名リストここで指定された項目を単位に基準化を行う。
bufcount= : 型=str , 任意(default=)
バッファのサイズ数を指定する。
共通パラメータ¶
i= , o= , bufcount= , assert_diffSize= , assert_nullkey= , assert_nullin= , assert_nullout= , nfn= , nfno= , x= , q= , tmppath= , precision=
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''customer,quantity,amount 6A,1,10 7A,2,20 8B,1,15 9B,3,10 10B,1,20 11''')
基本例
customer
を単位にして quantity
と amount
項目を基準化(z得点)し、
qttNorm
と amtNorm
という項目名で出力する。
1nm.mnormalize(c="z", k="customer", f="quantity:qttNorm,amount:amtNorm", i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# customer%0,quantity,amount,qttNorm,amtNorm 4# A,1,10,-0.7071067812,-0.7071067812 5# A,2,20,0.7071067812,0.7071067812 6# B,1,15,-0.5773502692,0 7# B,3,10,1.154700538,-1 8# B,1,20,-0.5773502692,1
偏差値
1nm.mnormalize(c="Z", k="customer", f="quantity:qttNorm,amount:amtNorm", i="dat1.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# customer%0,quantity,amount,qttNorm,amtNorm 4# A,1,10,42.92893219,42.92893219 5# A,2,20,57.07106781,57.07106781 6# B,1,15,44.22649731,50 7# B,3,10,61.54700538,40 8# B,1,20,44.22649731,60
0から1への線形変換
1nm.mnormalize(c="range", k="customer", f="quantity:qttNorm,amount:amtNorm", i="dat1.csv", o="rsl3.csv").run() 2### rsl3.csv の内容 3# customer%0,quantity,amount,qttNorm,amtNorm 4# A,1,10,0,0 5# A,2,20,1,1 6# B,1,15,0,0.5 7# B,3,10,1,0 8# B,1,20,0,1