2017-10-26 6 views
2

郵便サービスを所有しており、ビジネスプロセスを最適化したいとします。負の例がない場合の顧客行動予測

# date user_id from  to    weight-in-grams 
Jan-2014 "Alice" "London" "New York"  50 
Jan-2014 "Bob"  "Madrid" "Beijing"   100 
... 
Oct-2017 "Zoya" "Moscow" "St.Petersburg" 30 

記録(約95%)のほとんどは、「体重・イン・グラム」フィールドに正の数を含んでいますが、あります:あなたは(日付でソート)次の形式で注文の歴史を持っています重量がゼロのものはほとんどありません(おそらく、これらのメッセージはキャンセルされたか失われたでしょう)。

履歴ファイル(アリス、ボブなど)のユーザーが2017年11月にサービスを利用するかどうか予測できますか?どんな機械学習方法を使うべきですか?

私は単純なロジスティック回帰と意思決定ツリーを使用しようとしましたが、のユーザーの場合は、のユーザーにとって明らかに肯定的な結果が得られます。パレート/ NBDモデル(RのBTYDライブラリ)も適用しようとしましたが、大きなデータセットでは非常に遅く、データセットには500,000を超えるレコードが含まれています。

私は別の問題を抱えています。特定の月に手紙を送信しなかったユーザーが今月のネガティブな例であると考えて、負の例を付けると、データセットは30Mbから10Gbに増加します。

+0

ありがとうございます。私はこの問題に関する私の考えをいくつか追加します。 –

答えて

1

答えははいです。あなたは予測しようとすることができます。

時系列としてこれに近づき、RNNを実行することができます。 各ユーザーが1つのサンプルになるように、セット上のRNNをピボット回転します。

また、あなたのセットを旋回することができるので、各ユーザは、各ユーザのデータを集約することにより、行(観察)です。次に、多変量ロジスティック回帰を実行します。あなたはこの方法で情報を失いますが、それはより簡単かもしれません。 '注文間平均遅延'、 '年間平均受注'などの時間関連の列を追加できます。

ベイズ法を使用して、ユーザーが返す確率を見積もることができます。

+0

どのようなベイジアンメソッドを意味しますか? http://scikit-learn.org/stable/modules/gaussian_process.htmlあなたがモデルに意味のある方法でデータをピボットする必要があります :たとえばガウス回帰の –

+0

。 – AChervony

+0

マイナスのサンプルでピボットするときに、小さなポジティブサンプルと急上昇しているデータセットでノートを読み取るだけです。 リサンプリングして1匹の鳥2頭を殺すことができると思います。また、ユーザーごとに集計するようにデータをピボットすることを選択した場合、データのサイズが小さくなるべきではありませんか? – AChervony

関連する問題