変更可能
6497 ワード
変更可能
可変説明
pd.get_dummies()
を用いて可変パラメータ化を行うことができる.
可変量子化には、熱符号化と冷符号化が含まれる.
一般に、変数化はOne-Hot-Encoding
を意味する.
One-Hot-Encodingとは、以下の画像と同じ動作を指します.
画像ソース:https://www.kaggle.com/code/alexisbcook/categorical-variables/tutorial
上の図のようにOne-Hot-Encodeを行う場合、値は列形式で生成され、해당되는 컬럼에 1
、나머지 컬럼에는 0
と表示されます.
cf)One-Cold-EncodeはOne-Hot-Encodeで0と1を反転すればよい.
pd.get dummies()がdrop_first=True
のプロパティを提供する場合、作成時に最初のカラムは含まれません.
画像ソース:上記の画像を加工して画像を作成します.
上記の画像では、YellowとGreenがともに0の場合、Red値として解釈することができます.
可変パラメータ化はいつ行われますか?
モデリングの前に、범주형 데이터 들 중 숫자로 되어 있지 않은 변수들
に対して가변수화를 진행
が行われる.0과 1로만 구성된 숫자가 아닌
の数字の범주형
についても가변수화를 진행
があります.
중요도가 동일한 수준으로 증가하는 의미를 갖는다고 판단
には가변수화를 할 필요
はありません.가변수화 할 때와 안 할 때에는 성능 차이
があるはずです.変数化を行う場合や変数化を行わない場合は、性能をチェックする必要があります.
変数化すると、既存のカラムが削除され、その意味が理解しにくい変数がたくさん発生します.
これにより,後で変数の重要度を説明することが困難になる可能性がある.
★ということで、
설명을 위한 것인지 성능을 위한 것인지
を考えることにしました.可変トラップ(?)
x1에 해당하는 모든 범주의 종류가 train 셋에 존재
のはずです.しかし、列車データが
train과 validation 셋으로 분할
である場合、3つの列車にはx1에 해당하는 모든 범주의 종류가 포함되지 않을 수도
がある.모델의 학습이 제대로 이루어지지 않는다.
したがって、これを防止するために、変数の데이터 타입을 category로 변경
が行われる.コードによる可変要因の表示
x,y分離とtrain,val,test三分離を仮定する.
category로 데이터타입을 변경
데이터 분석(이해) 단계에서 진행
cat = {'Sex':['female', 'male'],
'Embarked':['S', 'Q', 'C'],
'Pclass':[1, 2, 3]}
for k, v in cat.items():
x_train[k] = pd.Categorical(x_train[k], categories=v, ordered=False)
x_train.info()
cat = {'Sex':['female', 'male'],
'Embarked':['S', 'Q', 'C'],
'Pclass':[1, 2, 3]}
x_train = pd.get_dummies(x_train, columns=cat.keys(), drop_first=True)
x_train.tail(2)
データソース:https://www.kaggle.com/c/titanic
Reference
この問題について(変更可能), 我々は、より多くの情報をここで見つけました https://velog.io/@songjeongwoo/가변수화テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol