Python

集めたデータをもとに、Pythonで分析を行いデータの視覚化を行います。

Pythonを使用してのデータ分析の主な流れは、以下の通りです。

タスクと評価指標の理解
特徴量の作成
モデルの作成
モデルの評価
モデルのチューニング
アンサンブル


データを分析するに当たり、まず問題(タスクの概要、データの内容、目的、予測対象は何なのか)を理解することが重要です。

次に重要なのが、与えられたデータ理解です。
例えば、
どういった内容のデータがあるのか?
各データの型や値の分布?
欠損値の有無?
外れ値の有無?
目的変数と説明変数の相関関係?

などです。


統計量としてデータを分析するならば、

変数の平均
標準偏差
データの最大最小
分位点
カテゴリ変数の値の種類の数
変数の欠損値の数
変数間の相関関数

などです。

 

可視化の方法としては、

棒グラフ
箱ひげ図
散布図
折れ線グラフ
ヒートマップ
ヒストグラム
Q-Qプロット
t-SNE、UMAP

などをデータに応じて、使い分ける必要があります。

 

特徴量の作成

特徴量の作成は、学習データに最低限の前処理を行い、モデルが学習できる形に変換することです。

より良い予測を行うためには、値を変換、集計したり、特徴量を作成します。

テーブルデータの分析においては、いかに良い特徴量を作成できるかが非常に重要です。


特徴量の作成方法の詳細については、別途以下を参照して下さい。

データ分析で特徴量を作成する3つのポイント
データ分析は、特徴量の作成が最も重要。データ分析のコンペティションで上位の入賞実績のあるデータサインエンティスは、データの分析手法のポイントについて、以下のように述べています。データ分析の作業の手順と配分は、 モデルの種類→ハイパーパラメー...

 

モデルの作成


学習データをモデルに与えて学習させて、次にテストデータを与えて、
最終的に予測値を出力させます。
テーブルデータの分析では、様々な分析結果からGBDTが最も有効なモデルと評価サれているので、
まず初めにGBDT系のモデルを使用して分析することが有効です。

GBDTとは、Gradient Boosting Decision Tree、代表的な機械学習モデルであり、
冒頭のGradient Boostingとは、様々な実用的なタスク(データ)に対して、
高水準の結果を示すことが可能な強力な機械学習技術、また勾配降下によりアンサンブルを行う。

具体的に、データ分析で使用するライブラリの主なモデルは、XGBoost, LightGBM, CatBoostの3種類である。

XGBoost
データ分析によく使用される

LightGBM
学習速度を最大で20倍までスピードアップできるらしい?

CatBoost
特にサンプル数が中から小のデータセットでかつカテゴリカルデータに対して優れているらしい?

 

モデルの評価

モデルを作成する目的は、将来の未知データに対する予測を行うためであるが、
このモデル自体の精度・性能を評価する必要があります。

従って、一般的には、学習データを一旦、学習用データと評価用データ(バリデーションデータ)に分けて、評価用データへの予測の精度を評価指標に使用します。
これをバリデーションと言います。

主なバリデーションの手法としては、クロスバリデーションがあります。
クロスバリデーションは、データを複数のブロックに分け、その内の1つを
評価用のデータとして、残りを学習用データとして、ブロックに分けた回数
繰り返して評価を行い、全体の評価合計より精度を導きます。

但し、タスクやデータによては、クロスバリデーションが不適切な場合があるため、
バリデーションの選択にも注意が必要です。


クロスバリデーション詳細については別途参照

 

モデルのチューニング

学習の前に設定し、学習の方法や速度、複雑性を決めるパラメーターは、
ハイパーパラメーターと呼ばれます。この値が適正でないと、
モデルの性能が十分に発揮サれないため、ハイパーパラメーターの
チューニングが必要です。チューニングの一つとして、
全てのパラメータの組み合わせを試してみる方法、グリッドサーチという手法があります。

 

グリッドサーチ詳細につては別途参照

アンサンブル

複数のモデルを組み合わせることをアンサンブルと言います。
アンサンブルは、それぞれのモデルの精度が高いだけでなく、
モデルが多様な場合に精度が更に向上する。



 

タイトルとURLをコピーしました