はじめに
- SMBCコンペに参加しましたので、その備忘録を残します
- 順位自体は300位台なので、参考にならないかもしれませんがご容赦ください
やったことまとめ
- モデル : lightgbm
- 作成した特徴量 :
- tree_dbhに対して変数変換した特徴量
- log, 2乗から4乗, arctan
- tree_dbhに関する集約特徴量(max, min, median, mean)
- stewardを数値に直し、平均値と最小値に置き換えたもの
- created_atとspc_commonを基準に日付を並び替え、その種類の木が最初に記録されたときからの対象レコードの木の仮想的な経過時間
- 数値系変数のターゲットエンコーディング
- カテゴリカル変数のカウントエンコーディング
- problemsなどの文字列に対する単語数特徴量
- 単語数特徴量に対するICAの基底行列
- tree_dbhに関する集約特徴量に対するPCAの主成分得点行列 - 交差検証 : GroupKfold
- Group単位はspc_commonとntaでまとめた変数にナンバリングし、グループIDを作成しました
変数重要度からtree_dbhが予測に効くことがわかったため、tree_dbh関係の変数を作成するようにしました。ターゲットエンコーディングして作成した特徴量とtree_dbh関係の変数のほとんどが変数重要度の上位になっていたため、局所的な予測を行うモデルとなっていました。その結果shake downしたような気がします。
できなかったこと
- スタッキング、アンサンブル
- lightgbm以外にもcatboostやNNなどのモデルとの組み合わせにより汎化性能を上げられたかもしれません - 地理情報を活用した分析
- 経度、緯度を追加する方法についてはディスカッションにありました。大変参考になりました! - 天候や気温などを活用した分析
おわりに
何はともあれ非常に学びの多いコンペでした。樹木の健康状態を予測することで、どの樹木が都市の景観維持や山林の保全などに活用できるのではないかと思います。データを提供、作成してくださったSMBCグループ、SIGNATEに厚くお礼申し上げます。