集めたデータをもとに、Pythonで分析を行いデータの視覚化を行います。
Pythonを使用してのデータ分析の主な流れは、以下の通りです。
タスクと評価指標の理解
特徴量の作成
モデルの作成
モデルの評価
モデルのチューニング
アンサンブル
データを分析するに当たり、まず問題(タスクの概要、データの内容、目的、予測対象は何なのか)を理解することが重要です。
次に重要なのが、与えられたデータ理解です。
例えば、
どういった内容のデータがあるのか?
各データの型や値の分布?
欠損値の有無?
外れ値の有無?
目的変数と説明変数の相関関係?
などです。
統計量としてデータを分析するならば、
変数の平均
標準偏差
データの最大最小
分位点
カテゴリ変数の値の種類の数
変数の欠損値の数
変数間の相関関数
などです。
可視化の方法としては、
棒グラフ
箱ひげ図
散布図
折れ線グラフ
ヒートマップ
ヒストグラム
Q-Qプロット
t-SNE、UMAP
などをデータに応じて、使い分ける必要があります。
特徴量の作成
特徴量の作成は、学習データに最低限の前処理を行い、モデルが学習できる形に変換することです。
より良い予測を行うためには、値を変換、集計したり、特徴量を作成します。
テーブルデータの分析においては、いかに良い特徴量を作成できるかが非常に重要です。
特徴量の作成方法の詳細については、別途以下を参照して下さい。

モデルの作成
学習データをモデルに与えて学習させて、次にテストデータを与えて、
最終的に予測値を出力させます。
テーブルデータの分析では、様々な分析結果からGBDTが最も有効なモデルと評価サれているので、
まず初めにGBDT系のモデルを使用して分析することが有効です。
GBDTとは、Gradient Boosting Decision Tree、代表的な機械学習モデルであり、
冒頭のGradient Boostingとは、様々な実用的なタスク(データ)に対して、
高水準の結果を示すことが可能な強力な機械学習技術、また勾配降下によりアンサンブルを行う。
具体的に、データ分析で使用するライブラリの主なモデルは、XGBoost, LightGBM, CatBoostの3種類である。
XGBoost
データ分析によく使用される
LightGBM
学習速度を最大で20倍までスピードアップできるらしい?
CatBoost
特にサンプル数が中から小のデータセットでかつカテゴリカルデータに対して優れているらしい?
モデルの評価
モデルを作成する目的は、将来の未知データに対する予測を行うためであるが、
このモデル自体の精度・性能を評価する必要があります。
従って、一般的には、学習データを一旦、学習用データと評価用データ(バリデーションデータ)に分けて、評価用データへの予測の精度を評価指標に使用します。
これをバリデーションと言います。
主なバリデーションの手法としては、クロスバリデーションがあります。
クロスバリデーションは、データを複数のブロックに分け、その内の1つを
評価用のデータとして、残りを学習用データとして、ブロックに分けた回数
繰り返して評価を行い、全体の評価合計より精度を導きます。
但し、タスクやデータによては、クロスバリデーションが不適切な場合があるため、
バリデーションの選択にも注意が必要です。
クロスバリデーション詳細については別途参照
モデルのチューニング
学習の前に設定し、学習の方法や速度、複雑性を決めるパラメーターは、
ハイパーパラメーターと呼ばれます。この値が適正でないと、
モデルの性能が十分に発揮サれないため、ハイパーパラメーターの
チューニングが必要です。チューニングの一つとして、
全てのパラメータの組み合わせを試してみる方法、グリッドサーチという手法があります。
グリッドサーチ詳細につては別途参照
アンサンブル
複数のモデルを組み合わせることをアンサンブルと言います。
アンサンブルは、それぞれのモデルの精度が高いだけでなく、
モデルが多様な場合に精度が更に向上する。
