1

私はシーケンシャル ラーニング (および機械学習) が初めてで、条件付きランダム フィールドを使用して問題を解決する方法を理解しようとしています。

アプリケーションのエンド ユーザーがいつ、どこで作業したかの連続ログであるデータセットがあります。たとえば、次のデータセットには User1 の値のみが含まれます。

User   Facility   Weekday
User1  FacilityA  Monday
User1  FacilityB  Tuesday
User1  FacilityC  Wednesday
 ...     ...         ...

私は次の問題を解決しようとしています: ユーザーが勤務した曜日と施設が与えられた場合、次にどの施設と平日に勤務しますか?

この問題を解決するために、Conditional Random Fields を調べ始めましたが、どのライブラリでもそれを使用するには苦労しています..

次のライブラリで作業しようとしました: 1. PyStruct ( https://pystruct.github.io/ ) しかし、これはこの問題のために機能しませんでした: 範囲外のインデックス: Pystruct を使用した SSVM のフィッティング

  1. CRFSuite ( http://www.chokkan.org/software/crfsuite/ ) (これは libBFGS に依存しています。エラーなしで ubuntu ボックスに libbfgs をインストールすると、CRFSuite の「make install」を実行しても失敗し、 libBFGS を認識できません)

だから私は別のライブラリに目を向けました.. 3. CRF++ ( https://taku910.github.io/crfpp/ )

私は CRF++ をインストールすることができました & また、彼らのディストリビューションで与えられた例を実行することもできます. しかし、ユースケースに合わせてテンプレート ファイルを変更する方法を理解するための助けが必要です...

また、ラベルは上記のデータセットからの施設 + 平日の連結文字列になると考えていました。

私はシーケンス学習が初めてで、現在、この問題を解決する方法を一生懸命研究しています...

私はここで少し立ち往生しているように見えるので、どんなアドバイスも非常に役に立ちます..

ありがとう!

4

1 に答える 1

1
  1. はい、2 つのラベル (施設と日) を予測しようとしているため、ラベルの連結が必要になります。それ以外の場合は、各ラベルを予測するための 2 つの異なるモデルを学習することもできます (ポイント 3 を参照)。

  2. この問題については、CRF ではなく回帰モデルを検討する必要があると思います。

  3. データの配置は、ユーザーのログ履歴が簡単にわかるように配置する必要があると思います。「任意の」ユーザーの「最小」履歴を教えていただけますか (最後の 3 回のログイン? 5 回のログイン? 7 回のログイン?) ?

すべてのユーザーの最後の 3 回のログインがあると仮定します。次に、あなたの代わりに、データを別の方法で整理し、2 つの異なるモデルを学習します。1 つは日を予測し、もう 1 つは施設を予測します。日を予測するためのデータとテンプレートファイルの配置例はこちら. 同様に、曜日名を施設名に変更し、施設予測モデルを学習します。また、私が提案した機能を考えて追加することもできます。より多くのユーザー データ (職業や年齢など) がある場合は、トレーニング データにさらに列を追加して、これらの列をテンプレート ファイルの機能として追加してみてください。テスト ファイルは、トレーニング ファイルと同じように配置する必要があることに注意してください (ただし、最後の列は、テスト中にモデルによって予測されるラベルであるため、空または欠落する可能性があります)。

先に進み、1 つのモデルで両方のラベルを予測したい場合は、連結を試すことができます (上記の例では、day が day_facility になります)。

于 2016-03-27T01:00:06.317 に答える