コースリンク: https://www.coursera.org/learn/competitive-data-science/
提供: National Research University, Higher School of Economics
はじめに
Kaggle初心者(@ntszw)です。Kaggle Expertを目指して勉強しています。この講座をKaggle初心者ガイドで見つけ、面白そうだったので受けてみました。
読み返す価値のありそうな内容を集約しました。
主なアルゴリズムの種類(復習)
- Linear Models 線形モデル
- Decision Trees 決定木
- K Nearest Neighbors (kNN) k近傍法
- Neural Networks ニューラルネットワーク
ポイント: それぞれのアルゴリズム固有の性質を理解する。図を見ると直感的に理解できる。
特微量全処理・生成
- データが数字だからNumerical Featureだとは限らない。
- Ordinal FeatureはCategorical Featureの中でも意味のある順序で並んでいる場合。
例えば、1等2等の差と2等3等の差は一定でないため、等級はCategorical Feature。また、順序があるためOrdinal Feature。
Numerical
Decision Trees系以外のモデルでは重要。ほとんどの場合、全ての特微量を同等に扱いたいので用いる。
- MinMax Scaling
(x - min) / (max - min)
: (0,1)内に変換、データ分布は保たれる - Standard Scaling
(x - mean) / stddev
: 平均0, 標準偏差1に変換 - Rank: データの中で何番目に小さいか。外れ値の修正に役立つ。Pythonではscipy.stats.rankdata
-
np.log(1+x)
、np.sqrt(1+x)
: 外れ値の修正に役立つ変換
別々の全処理を行ったデータを混ぜることも可能。
Categorical・Ordinal
Decision Trees系の場合:
- label encoding: 一番シンプル。ラベル(文字列)から数字へのマッピング。
- frequency encoding: ラベルの頻度に基づいたマッピング。
その他の場合:
- One-hot label encoding: sparse arrayへのマッピング
- 複数の特微量を合わせたone-hot encoding
時間
- 周期性に基づいたデータ(曜日、月など)
- ある出来事から何時間経ったか
- 2つの日付・時間同士の差
座標
- 重要な地点からの距離
- 地域に関する統計情報
データが欠けている場合
平均・中央値・定義域外の値で埋めるか、元の値を予測する。ただ、特微量生成を行う場合に悪影響が出ないように細心の注意を払う。(生成の後にやったほうが良い)
テキストデータ
- 前処理: lowercase, lemmatization/stemming, stopwords
- bag of words (ngrams, TFIDF)またはword embedding
イメージデータ
CNNをfine tuneする。Image Augmentationを行う。