質問編集履歴
1
一部読みやすく修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
KaggleのTitanicにおいて、RandomForest、XGBoosting、LightGBMで特徴量の重要度を算出し比較を行ってみたのですが、結果の解釈をどのようにすればいいか悩んでいます。
|
3
3
|
|
4
4
|
### 発生している問題・エラーメッセージ
|
5
|
+
下記のように精度的にはXGBoostingとLightGBMのBoostingを用いた手法が若干勝り、Boosting両手法における重要度も近しい値となっているのですが、一方でTitanicでは重要な項目とされる性別の重要度が異常に低く、重要度に関してはRandomForestのほうが納得がいく結果になっているのですが、RandomForestとBoostingにおける特徴量の重要度はそこまで異なるものなのでしょうか?
|
6
|
+
|
5
7
|
RandomForest
|
6
8
|
f1 core:0.833
|
7
9
|
|
@@ -38,8 +40,6 @@
|
|
38
40
|
Cabin 2.3
|
39
41
|
Embarked 2.6
|
40
42
|
|
41
|
-
上記のように精度的にはXGBoostingとLightGBMのBoostingを用いた手法が若干勝り、Boosting両手法における重要度も近しい値となっているのですが、一方でTitanicでは重要な項目とされる性別の重要度が異常に低く、重要度に関してはRandomForestのほうが納得がいく結果になっているのですが、RandomForestとBoostingにおける特徴量の重要度はそこまで異なるものなのでしょうか?
|
42
|
-
|
43
43
|
```ここに言語を入力
|
44
44
|
### 該当のソースコード
|
45
45
|
|
@@ -53,9 +53,8 @@
|
|
53
53
|
import xgboost as xgb
|
54
54
|
import lightgbm as lgb
|
55
55
|
|
56
|
+
# トレーニングデータ作成
|
56
57
|
df = pd.read_csv("train.csv")
|
57
|
-
|
58
|
-
# パラメーターの変動値を取ってくる
|
59
58
|
X_train = df.drop(["y"],axis=1)
|
60
59
|
y_train = df.y
|
61
60
|
|
@@ -100,7 +99,7 @@
|
|
100
99
|
'scale_pos_weight':[1],
|
101
100
|
'seed':[0]
|
102
101
|
}
|
103
|
-
|
102
|
+
# グリッドサーチで学習
|
104
103
|
xgb = GridSearchCV(xgb.XGBClassifier(
|
105
104
|
silent=True, booster='gbtree', reg_alpha=0, reg_lambda=1, base_score=0.5, random_state=0, missing=None),
|
106
105
|
xgb_param, scoring=f1_scoring, cv=4)
|
@@ -126,7 +125,7 @@
|
|
126
125
|
'verbose':[-1],
|
127
126
|
'num_leaves':[80]
|
128
127
|
}
|
129
|
-
|
128
|
+
# グリッドサーチで学習
|
130
129
|
gbm = GridSearchCV(lgb.LGBMClassifier(),gbm_param, scoring=f1_scoring, cv=5)
|
131
130
|
gbm.fit(X_train, y_train)
|
132
131
|
print('Best parameters: {}'.format(gbm.best_params_))
|
@@ -148,4 +147,5 @@
|
|
148
147
|
lightgbm==2.1.0
|
149
148
|
xgboost==0.7
|
150
149
|
返信は月曜まで遅れるかもしれません、ご容赦お願いします。
|
151
|
-
コードも修正点などあれば指摘しても
|
150
|
+
コードについても修正点などあれば指摘してもらえれば幸いです。
|
151
|
+
よろしくお願いいたします。
|