2つの機能と時系列のイベントに基づいて顧客を分類する


12

私が設計しているアルゴリズムの次のステップに何をすべきかについての助けが必要です。

NDAのせいで、あまり開示することはできませんが、一般的でわかりやすいものにしようと思います。

基本的に、アルゴリズムのいくつかのステップの後、私はこれを持っています:

私が持っている各顧客と、彼らが1か月間に行うイベントについて、最初のステップでイベントをいくつかのカテゴリにクラスター化しました(各顧客は、1からxが1から25までのカテゴリに分けられたイベントを持ち、通常、最初のカテゴリは他のカテゴリよりもイベントの密度が高くなります)。

各カテゴリと顧客について、1時間あたりの月のイベントを集約する時系列を作成しました(これらのイベントがいつ行われるかのパターンを取得します)。また、私は、男が少なくとも1つのイベントを実行する1か月(30日間)の日数と、少なくとも1つのイベントの合計に対する少なくとも1つのイベントの日数に基づいて、いくつかの正規化変数を使用していますイベント(すべてのクラスターを集約)。1つ目は、その月の顧客の活動度の比率を示し、2つ目は、他のカテゴリに対してカテゴリを重み付けします。

ファイナルテーブルは次のようになります

|*Identifier*|  *firstCat* | *feature1* | *feature2*  |   {      *(TIME SERIES)*   }

CustomerID  |  ClusterID |  DaysOver30 | DaysOverTotal | Events9AM Events10AM ... 

 xx | 1 | 0,69 |  0,72 |  0,2   0,13   ...

 xx | 2 | 0,11 |  0,28 |  0,1   0,45   ...

 xy | 1 | 0,23 |  0,88 |  0,00  0,60   ...

 xy | 2 | 0,11 |  0,08 |  1,00  0,00   ...

 xy | 3 | 0,10 |  0,04 |  0,40  0,60   ...

時系列変数は、各特定カテゴリの1日あたりのイベントの合計に対する割合です(これは、すべての変数を合計する各行が1であることを意味します)。そのようにする理由は、たとえば、イベント0 0 0 1 0を含む時系列1 1 1 2 1が完全に異なり、通常に標準化すると同様の結果が得られるためです。また、異なるカテゴリ間のスキューが大きいため、時系列の値を他のカテゴリとは独立してチェックします。

ここで行う必要があるのは、これらのカテゴリ(1〜xが1〜25の任意の数)を3つのタグ(タグA、タグB、およびそれらのどれでもない)に識別することです。これらの変数を見ると、それらがどのタグに属しているかを手動で識別できます。アイデアは、できる限り手動で識別し、分類アルゴリズムを使用してそれから学習し、すべてを識別することです。

私のアイデアはテーブルで複数のロジスティック回帰を使用することでしたが、時系列のすべての変数は相関しています(それらは互いに線形結合であるため)ので、ユークリッドを使用する時系列でのみクラスタリングアルゴリズムを使用する方が良いと考えました距離を使用して、さまざまなパターンを分類し、ロジスティック回帰で結果と他の2つの正規化変数を使用します。

私が持っている他の懸念は、このアプローチは各行を他の行とは無関係に取り、理論的には各顧客に対して0または1つのタグA、0または1つのタグBのみがあり、残りはなし(別のヒントは、正規化機能に大きく依存するため、通常はタグAとBは最初のカテゴリの間にあるということです(合計日数が多い場合、時系列パターンに応じて行がAまたはBになる可能性が高くなります) 。

編集:これはもはや問題ではありません。タグAまたはその他のタグとタグBまたはその他のタグの2つの異なるロジスティック回帰を実行します。結果の確率はそれぞれ最適なもののみを選択できます。

データセットは膨大で、SQL(Teradata)を使用して最終アルゴリズムを適用する必要がありますが、ロジスティック回帰の係数またはクラスタリングの中心を取得するには、サンプルを取得してRを使用します。


ただの提案:) ...質問がそんなに長い限り、あなたが適切な答えを得るかどうかはわかりません。たとえば、あなたのタグはまさに私の研究方向ですが、それをすべて読む時間とエネルギーは本当にありません!短いバージョンを更新できる場合は、科学レポートで簡単に説明する必要があるため、Qだけでなく自分にとっても良いでしょう。
カスラマンシャエイ

質問を減らすようにします。私が自分自身を説明しないなら、それは通常、人々が私が意図したことを混乱させるだけです。とにかく、仕事に時間をとるとすぐに質問のサイズを小さくしようと思いますが、推薦をありがとう
-JusefPol

あなたの正確な質問は何ですか?私は単に時系列の機能を計算し、これらの機能を顧客の機能に追加します。その後、基本的なクラスタリングができます。時系列の機能を選択するには、ドメインの知識が必要です。
ニコラスリーブル16

回答:


2

質問が投稿されてからしばらく経ちましたが、将来の読者のために、比例データの時系列を分類する問題、つまり割合のベクトルの問題に対する別のソリューションをここで提案します。

隠れマルコフモデル(HMM)は、時系列分類に広く使用されます。元の実装は、離散データおよびガウスデータ用に開発されましたが、その後、より多くの確率分布に拡張されました。

その中で、ディリクレ、一般化されたディリクレ、および比例データを扱うのに完全に適したベータリウビル分布。

通常、モデルは、カテゴリが既知の時系列から各カテゴリ(この質問では「タグ」)に対してトレーニングされます。新しい時系列を分類する必要がある場合、各モデルに関するその尤度が計算されます。通常、新しい時系列は最も高い可能性につながるカテゴリに割り当てられます。

以下は、これらのモデルをより深く提示し、実装に必要なすべての方程式を提供するこれらのモデルのリファレンスペーパーです。

  • Dynamical Dirichlet混合モデル、IDIAPの研究レポート、L。Chen、D。Barber、J.-M。オドベス、2007年4月
  • 一般化ディリクレおよびベータ-リウビル混合に基づく隠れマルコフモデルを使用した比例データモデリング、公共エリアの異常検出に適用、E。エパイヤール、N。ブーギラ、パターン認識55、pp 125-136、2016

質問で言及された追加の2つの機能について、混合データのHMMは、次の研究論文でも開発されました:混合連続/連続および離散/連続データモデリングのためのハイブリッド隠れマルコフモデル、E。Epaillard、N。 pp。1-6、2015。

これらのモデルは、回帰モデルよりも展開が重くなりますが、識別モデルおよび生成モデルであるという利点があり、処理されたデータにある程度のばらつきがある場合に一般化できるという利点があります。

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