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=)

バッファのサイズ数を指定する。

利用例

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 を単位にして quantityamount 項目を基準化(z得点)し、 qttNormamtNorm という項目名で出力する。

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

関連メソッド