4.2 ビニング
(60m)08:30~09:30
4.2 ビニング(決定木、線形モデル)
ビニング(離散化):データを分割する。
bins=np.linspace(-3,3,11)
bins:[-3. -2.4 -1.8 -1.2 -0.6 0. 0.6 1.2 1.8 2.4 3. ]
#10個のビン(離散化)ができた
#これをワンホットエンコダー(ダミー)する。
from sklearn.preprocessing import OneHotEncoder
encoder=OneHotEncoder(sparse=False)
encoder.fit(which_bin)
X_binned=encoder.transform(which_bin)
[ 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]]…
ビニングされた特徴量を学習させると
決定木:柔軟性が低下する。(必要がない)
線形モデル:柔軟性が上がる。(それぞれのビンで線形化するので)
→線形モデルにビニングは有効である。決定木に対しては必要ない。
第4章 開始
(90m)15:30~17:30
第4章 データの表現と特徴量エンジニアリング
連続値特徴量の他に、離散型特徴量がある。
スケール変換のように特徴量を正確に把握することは分析の第一歩である。これを特徴量エンジニアリングと呼ぶ。
カテゴリ変数:離散型特徴量である。例えば職業や学歴など・・・
ワンホットエンコーディング(ダミー変数):カテゴリ変数に1or0を当てはめる。しかもそれはそれぞれの回答に。
(例:【職業】「公務員であるかどうか」1or0 「民間かどうか」1or0 「無職かどうか」1or0・・・)
pd.get_dummies()
カテゴリデータチェック:スペルミスや表記の違いなどのためにどのようなカテゴリ分けされているかすべて確認するべき
.value_counts()
数字か言葉か:仮に(質問:「職業」回答「1:公務員 2:民間 3:無職」)があったとすると回答は1~3に収束され、連続値特徴量と誤解する。ワンホットエンコーディングは数字の特徴量は即ち連続量と捉える為、ダミー作成のため変換が必要である。
x.astype(str)
get_dummies(X_data,columns=[x(指定)])
#忘れた
LogisticRegression:すぐ忘れるので困る。