1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Santander Value Prediction Challengeのカーネル解説

Posted at

今回はkaggleの以下のkernelの日本語訳を行います。

日本語訳

概要

このnotebookでは、データを前処理して 「gradient boosting tree models」に投入して。 public leaderboardで1.39のスコアを獲得。

ワークフローは以下

1.データ前処理 データ前処理の目的はより高いtime/space効率を得るためである。 「定数(?)特徴量の除去」、「重複した特徴量の除去」、「重要でない特徴量」の除去等 ここでのキーは、前処理が精度に影響を与えないことである。

2.特徴量変換 特徴量変換の目的は、データをよく把握する助けになること、そして過学習を防ぐことである。 やったことは ・トレーニングデータとテストデータで分布が異なる特徴量を落とすこと。 ・統計量を特徴量に追加したこと。 ・低次元表現(low-dimensional representation)を特徴量に追加。

3.モデリング Xgboostとlightgbmの2つのモデルを使用した。 最終的な予測のため2つのモデルを平均した。

ステップ1

トレーニングデータとテストデータをロードします。重複カラムを除去します。
・最初に重複したカラムを削除
・次に32桁までに落とした上で重複カラムを削除(ループしながら比較)

ステップ2

特徴量を重要度で選択する。ランダムフォレスト(回帰?弱識別機?)を使って特徴量の重要度を得る。トップからNUM_OF_FEATURES(=1000)の重要度の特徴量を選択する。
NUM_OF_FEATURES(=1000)はここではチューニング可能なハイパーパラメータである。

ステップ3

トレーニングデータとテストデータをKolmogorov–Smirnov検定(コルモゴロフ-スミルノフ検定)で評価します。これは両側検定の帰無仮説で2つの独立したサンプルが同じ分布から抽出されたものかを検定する。異なる分布だった場合はこの特徴量は除去する。(汎用的なモデルにならないため)

THRESHOLD_P_VALUE(P値) と THRESHOLD_STATISTIC(KS統計量) はハイパーパラメータである。

ステップ4

統計的な特徴量を追加する。さらに低次元表現の特徴量を追加する。

※SparseRandomProjectionは次元削減のアルゴリズム

ステップ5

クロスバリデーションのメソッドとモデルを定義する。 xgboostとlightgbmを使用する。 ハイパーパラメータはグリッドサーチによって既にチューニングされている。

※注意 AveragingModels(BaseEstimator, RegressorMixin, TransformerMixin)は多重承継している。 2つのモデルを格納しておいて学習させる。 2つのモデルの予測結果の平均を返す。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?