ディスクリート変数処理
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)
4、iv (information value)
IVi=(Pyi−Pni)×WOEi
IV=∑i=1nIVi
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