ディスクリート変数処理

3563 ワード

1、one-hot encoding


複数の特徴がユニヒートコード符号化を必要とする場合、各特徴のユニヒートコードは、上記の方法に従って順次接合される.
    {sex:{male, female,other}}
{grade:{一年生、二年生、三年生、四年生}}
このとき{sex:male;grade:4年生}と入力して独熱符号化を行うには、まずsexを上記のように符号化して{100}を得ることができ、gradeに従って{0001}を符号化すると、両者が接続されて最後の独熱符号{1000001}を得ることができる.
from sklearn import preprocessing
enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
enc.transform([[0, 1, 3]]).toarray()
one_hot encoding

2、 dummy coding


dummy encodingは、h個のlevelを持つ変数をh−1個の変数に変え、例えば3個のlevelの変数を10,01,または00と表す.one-hot encodingはh個の変数でこのh個のlevelを表し、例えば3個のlevelの変数は10000010001と表す.
download.file("http://archive.ics.uci.edu/ml/machine-learning-databases/statlog/german/german.data", 
    "./german.data")
data "./german.data")
str(data)

library("neuralnet")
NNModelAllNum ## Error:  / / 

dummyV1 ##   (Intercept) V1A12 V1A13 V1A14  
## 1           1     0     0     0 1
## 2           1     1     0     0 2
## 3           1     0     0     1 4
## 4           1     0     0     0 1
## 5           1     0     0     0 1
## 6           1     0     0     1 4

modelData ##   (Intercept) V1A12 V1A13 V1A14 V2   V5 V8 V21
## 1           1     0     0     0  6 1169  4   1
## 2           1     1     0     0 48 5951  2   2
## 3           1     0     0     1 12 2096  2   1
## 4           1     0     0     0 42 7882  2   1
## 5           1     0     0     0 24 4870  3   2
## 6           1     0     0     1 36 9055  2   1

NNModel 

3、 woe(weight of evidence)


WOEi=ln(PyiPni)=ln(#yi/#yT#ni/#nT)=ln(#yi/#ni#yT/#nT)
  • Pyiは、このグループにおける応答クライアント(リスクモデルでは、違約クライアントに対応する、要するに、モデルにおける予測変数の値が「Yes」または1の個体を指す)が、すべてのサンプルにおけるすべての応答クライアントに占める割合であり、
  • である.
  • Pniは、このグループの未応答顧客がサンプル内のすべての未応答顧客に占める割合であり、
  • である.
  • #yiはこのグループの応答クライアントの数であり、#niはこのグループの応答クライアントの数であり、
  • .
  • #yTは、サンプル内のすべての応答クライアントの数であり、nTは、サンプル内のすべての応答クライアントの数である
  • 現在のパケットでは、応答の割合が大きいほどWOE値が大きくなる.
  • 現在のパケットWOEの正負は、現在のパケット応答と未応答の割合、サンプル全体応答と未応答の割合の大きさの関係によって決定され、現在のパケットの割合がサンプル全体の割合より小さい場合、WOEは負、現在のパケットの割合が全体の割合より大きい場合、WOEは正、現在のパケットの割合と全体の割合が等しい場合、WOEは0である.
  • WOEの取値範囲は実数全体である.


  • 4、iv (information value)


    IVi=(Pyi−Pni)×WOEi
    IV=∑i=1nIVi
  • 変数のパケットについて、このパケットの応答および未応答の割合は、サンプル全体の応答および未応答の割合と大きく異なるほど、IV値が大きくなり、そうでなければIV値が小さくなる.
  • 極端の場合、現在のパケットの応答と未応答の割合とサンプル全体の応答と未応答の割合が等しい場合、IV値は0である.
  • IV値の取値範囲は[0,+∞)であり、現在のパケットに応答クライアントのみが含まれている場合、または応答していないクライアントのみが含まれている場合、IV=+∞.
  • nは、特徴として含む水平数
  • である.
    http://www.cnblogs.com/daguankele/p/6595470.html
    http://iccm.cc/generate-dummy-variable-in-r-language/
    https://www.zhihu.com/question/48674426?sort=created
    http://blog.csdn.net/kevin7658/article/details/50780391