特定の出来事の発生に寄与する要因を見つけたいと思います。ただし、そのイベントは約 1% の確率でしか発生しません。したがって、event_happened というクラス属性がある場合、値が 0 になる確率は 99% で、1 になる確率はわずか 1% です。この場合、従来のデータ マイニング予測手法 (デシジョン ツリー、ナイーブ ベイズなど) は機能していないようです。このデータセットをマイニングする方法について何か提案はありますか? ありがとう。
3 に答える
これは、タスクの典型的な説明です異常検出タスク 独自のアルゴリズムのグループを定義します:
データ マイニングでは、異常検出 (または外れ値検出) とは、データセット内の予想されるパターンまたは他の項目に一致しない項目、イベント、または観測の識別です。
そして、可能なアプローチについての声明:
異常検出技術には、大きく分けて 3 つのカテゴリがあります。教師なし異常検出手法は、データ セットの残りの部分に最も適合しないと思われるインスタンスを探すことによって、データ セット内のインスタンスの大部分が正常であるという仮定の下で、ラベル付けされていないテスト データ セット内の異常を検出します。教師あり異常検出技術には、「正常」および「異常」としてラベル付けされたデータ セットが必要であり、分類子のトレーニングが含まれます (他の多くの統計的分類の問題との主な違いは、外れ値検出の固有の不均衡な性質です)。半教師付き異常検出手法は、特定の正常なトレーニング データ セットから正常な動作を表すモデルを構築し、学習したモデルによってテスト インスタンスが生成される可能性をテストします。
何を選ぶかは、個人の好みの問題です。
これらのアプローチは、外れ値のイベントを見つけることを「学習」するのに役立ちます。次に、それらを「予測」するモデルが、関心のある要因を定義します。
これは不均衡分類問題です。
不均衡なデータを適切に処理できる方法に関するいくつかの調査や概要記事を見たことがあると確信しています。この用語を調査する必要があります (「スキュー」は少し広範であり、探している結果が得られない場合があります)。
lets say my attributes are hour_of_the day, day_of_the_week, state, customer_age, customer_gender etc. And I want to find out which of these factors contribute to my event occurring.
Based on this answer, I believe you need classification, but your result will be the model itself.
So, you perform, say, logistic regression, but your features are the data attributes themselves(some literature doesn't even separate features and attributes).
You have to somehow normalize this data. This can be tricky. I would go for boolean features(say hour_of_event==00, hour_of_event==01, hour_of_event==02
,...)
Then, you apply any classification model, you end up with weights against each of the attributes. The attributes with (the highest weights will be the factors that you need).