純粋に予測的なモデリングを行う場合、探索的データ分析は重要ですか?


23

機械学習手法を使用して予測モデルを構築する場合、探索的データ分析(EDA)を行うポイントは何ですか?フィーチャの生成とモデルの構築に直接ジャンプしても大丈夫ですか?EDAで使用される記述統計はどのように重要ですか?


6
「探索的データ分析」について尋ねますが、[descriptive-statistics]タグも含めます。最後の質問は、記述統計が重要かどうかです。この文脈では、EDAについて言及するときに、さまざまな記述統計を計算するだけですか、それとも記述統計とEDAの両方について質問していますか?多くの人々(私を含む)がEDAを単なる説明的な統計以上のものと考えているので、私は尋ねます。
GUNG -復活モニカ

「機能生成」とは正確には何ですか?それは探索的なプロセスではありませんか?
einar

5
最近、私は37人の個人による224の観察を与えられました。記述分析が私に言ったとき、私は性別/性別の影響を調査することを計画していましたが、36人の女性と1人の男性がいました。この記述統計のため、性別/性別に関連するすべての分析をスキップしました。説明が私のモデル構築プロセスに影響を与えたため、それは私にとって重要でした。もっとここでそのデータのstats.stackexchange.com/questions/352015/...
ベルンハルト

回答:


47

少し前まで、私はデータサイエンスの職に就くための面接の仕事をしていました。データセットが与えられ、数時間の制限時間で、他の変数が与えられた特定のバイナリ変数を予測する予測モデルを構築するように依頼されました。

各変数を順に調べ、グラフ化し、要約統計量を計算しました。数値変数間の相関も計算しました。

私が見つけたものの中には:

  • 1つのカテゴリ変数がターゲットにほぼ完全に一致しました。
  • 2つまたは3つの変数の値の半分以上が欠落していました。
  • いくつかの変数には極端な異常値がありました。
  • 2つの数値変数は完全に相関していました。

私のポイントは、これらがモデルを構築しようとする前に人々がそれらに気付くかどうかを見るために意図的入れられたものだったということです。会社はそれらを実際の生活の中で起こりうる種類のものであり、モデルのパフォーマンスに大きく影響するので、それらを入れました。

そのため、機械学習を行う際にはEDAが重要です!


8
学生に課題を与えるとき、私もしばしばそれをします;-)。
グン-モニカの復職

14

明らかに、はい。

データ分析は、予測モデルを傷つける多くのポイントにつながる可能性があります。

不完全なデータ

量的データについて話していると仮定すると、列を無視するか(データが多すぎる場合)、「デフォルト」値(平均、モードなど)を把握するかを決定する必要があります。最初にデータを調査せずにこれを行うことはできません。

異常なデータ

あなたはかなり強く相関しているデータを持っていると言うが、あるデータの2%がある方法で、この相関オフは。このデータを完全に削除して、予測モデルに役立てることができます。

相関が多すぎる列を削除する

OK、これは私の以前のポイントと少し矛盾していますが、英語は私のメイン言語ではないので、理解していただければ幸いです。

馬鹿げた例を取り上げWidth, Length, Areaます。サッカーのスタジアムデータセットを分析し、パラメーターとして持っているとします。さて、これら3つのパラメーターが強く相関していることは容易に想像できます。列間の相関が多すぎると、予測モデルが間違った方向に導かれます。1つ以上のパラメーターをフラッシュすることもできます。

新機能を見つける

小さなタイタニックカッグルの「コンペティション」の例を取り上げます。人の名前を見ると、その人の特徴を抽出できることがわかりますTitle。この機能は、モデリングに関して非常に重要であることが判明しましたが、最初にデータを分析しなかった場合は見逃していたでしょう。

連続データがより適切だと感じたり、連続フィーチャをカテゴリカルフィーチャに変更したりするため、連続データをビン化することができます。

使用するアルゴリズムの種類を見つける

今はプロットを描くことができませんが、これを簡単な例にしましょう。

1つの機能列と1つのバイナリ(0または1のみ)「結果」列を持つ小さなモデルがあるとします。このデータセットの予測分類モデルを作成します。

もう一度例として、それをプロットする場合(soo、データを分析する)、プロットが1の値の周りに完全な円を形成することに気付くかもしれません。このようなシナリオでは、DNNに直接ジャンプする代わりに、多項式分類子を使用して優れたモデルを作成できることは明らかです。(明らかに、私の例には2つの列しかないことを考えると、優れた例にはなりませんが、ポイントを得ることができます)

全体的に、最初にデータを確認しないと、予測モデルのパフォーマンスが期待できない。


8

EDAが行う重要なことの1つは、データ入力エラーやその他の異常ポイントを見つけることです。

もう1つは、変数の分布が近似しようとするモデルに影響を与える可能性があることです。


8

以前は化学のフレーズがありました。

ラボで2週間過ごすと、Scifinderで2時間節約できます」。

同じことが機械学習にも当てはまると思います。

ニューラルネットのトレーニングに2週間を費やすことで、入力データを見るのに2時間節約できます。」

これらは、MLプロセスを開始する前に経験することです。

  • すべての(連続的な)変数の密度をプロットします。数字はどのように歪んでいますか?データを意味のあるものにするためにログ変換が必要ですか?外れ値はどれくらい離れていますか?物理的または論理的に意味をなさない値はありますか?
  • NAに注目してください。通常、それらは単に破棄できますが、それらが多数ある場合、またはシステムの動作にとって重要な側面を表す場合は、データを再作成する方法を見つける必要があります。これは、それ自体がプロジェクトになる可能性があります。
  • すべての変数を応答変数に対してプロットします。それをただ見つめるだけで、どれだけの意味を理解できますか?関数に適合できる明らかな曲線はありますか?
  • そもそも複雑なMLモデルが必要かどうかを評価してください。時々、本当に必要なのは線形回帰だけです。そうでない場合でも、MLモデルを改善するための適切なベースライン適合を提供します。

これらの基本的な手順を超えて、MLプロセスを適用する前にデータを確認するのに余計な時間を費やすことはありません。既に多数の変数がある場合、それらの複雑な非線形の組み合わせは、見つけるだけでなく、プロットして理解することがますます難しくなります。これは、コンピューターが最もよく処理するものです。


6

統計的観点:

モデリング段階でのエラーは別として、最初にEDAを実行せずに予測を試みた結果として考えられる結果は3つあります。

  1. 入力データが予測方法の前提に違反しているため、予測は明らかなナンセンスな結果をもたらします。ここで戻って入力を確認し、問題のある場所を見つけ、問題を修正して分析をやり直す必要があります。問題の性質によっては、予測方法の変更が必要になる場合があります。(どういう意味ですか、これはカテゴリ変数です?)
  2. 予測は、悪いが明らかに悪いわけではない結果をもたらします。これは、データがわずかに明白ではない方法で仮定に違反しているためです。とにかく戻ってこれらの仮定を確認するか(この場合、上記の#1を参照)、悪い結果を受け入れます。
  3. 幸運なことに、あなたの入力データはあなたが期待したとおりであり(これは時折起こると私は理解しています)、予測は良い結果を与えます...これと#の違いがわからないことを除いては素晴らしいでしょう上記2。

プロジェクト管理の観点:

データの問題を解決するには、かなりの時間と労力がかかります。例えば:

  • データは汚れているため、データをクリーンにするためのプロセスの開発に時間を費やす必要があります。(たとえば、1月に間違った年を書き続けるすべての人々、フィールドに日付を入力する人々、および日付をMM / DD / YYYYとして解析するシステムに対して自動修正をコーディングする必要があった時間DD / MM / YYYYの代わりに。)
  • データの意味について質問する必要があり、Joanだけがそれらに答えることができます。Joanは、プロジェクト開始後2週間で始まる6か月の休暇を取ります。
  • データの制限により、配信しようとしたすべてのものを配信できません(データセットに女性が1人しかいないため、性別/性別による分析ができないというベルンハルトの例を参照)。 。

このような問題を早期に特定できれば、プロジェクトを軌道に乗せ、期限内に完了し、クライアントを満足させる可能性が高くなります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.