私はたくさんの (何百万もの) 小さな実験からのログを持っています。
各ログには、エントリのリスト (数十から数百) が含まれています。各エントリは、タイムスタンプとイベント ID です (数千のイベント ID があり、それぞれがログで何度も発生する可能性があります)。
1403973044 アルファ 1403973045 ベータ版 1403973070 ガンマ 1403973070 アルファ 1403973098 デルタ
あるイベントが後で別のイベントを引き起こす可能性があることを知っています。
私はこのデータセットを研究しています。実験で十分頻繁に発生する「安定した」一連のイベントを探しています。
あまり多くのコードを記述せず、独自のソフトウェアを使用せずにこれを行う方法はありますか? ソリューションは十分にスケーラブルで、大規模なデータセットで機能する必要があります。
この作業は、バイオインフォマティクスが行うこと、つまり DNA の配列を見つけることなどに似ていると思います。私のタスクだけがアルファベットに4文字以上含まれています...(@JayInNycのおかげで更新:プロテオミクスは私のものよりも大きなアルファベットを扱っています。)
(ところで、シーケンスがどれだけ安定して類似しているか、シーケンスの最小長などは事前にわからないことに注意してください。データセットを調査しているため、外出先でこれを把握する必要があります。)
とにかく、使用できるアプローチ/ツール/ライブラリに関する提案はありますか?
更新: コメントの質問に対するいくつかの回答:
安定したシーケンス:実験全体で十分な頻度で見つかりました。(どれくらいの頻度で十分ですか?まだわかりません。チェーンのトップを計算し、最もレアなものを捨てる必要があるようです。)
類似シーケンス: 似ているシーケンス。「シーケンス 'ABCD E' と 'ABCE D' (シーケンスのわずかな違い) は似ていますか?あなたへ?" — どちらの質問にもはい。より抜本的な変異もおそらく問題ありません。繰り返しますが、トップを計算して、最も似ていないものを破棄できるようにしたいと思います...
タイミング:現時点ではタイミング情報を破棄できます (ただし、注文はできません)。しかし、それを類似性指数の公式に入れたらクールだろう。
更新 2: 期待される出力。
最後に、最も人気のある最長の安定したチェーンの評価をしたいと思います。3 つの要素すべての組み合わせが、評価スコアの計算に影響を与えるはずです。
そのような評価のチェーンは、明らかに、かなり類似したチェーンのクラスターです。
チェーンクラスターの合成例:
アルファ ベータ ガンマ [ごみ] [ごみ] デルタ
別:
アルファ ベータ ガンマ|ゼータ|イプシロン デルタ
(または、今のところ思い浮かばなかったバリアントは何でも。)
したがって、最終的な出力は次のようになります (この例では数字は完全にランダムです)。
チェーン クラスター ID | 見つかった時間 | 時間刺し。因子 | チェーン刺し。因子 | 長さ | スコア あ | 12345 | 123 | 3 | 5 | 100000 ビ | 54321 | 12 | 30 | 3 | 700000