teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

一部読みやすく修正

2018/02/02 10:18

投稿

A.Kobayashi
A.Kobayashi

スコア13

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
+ よろしくお願いいたします。