0

キャプチャされたデータの大規模なセット(場合によっては数十万のレコード)があり、それを分類して「典型的な」データを自分で作成できるように、それを分解できる必要があります。さらに説明させてください...

次のデータ文字列がある場合:

132T339G1P112S
164T897F5A498S
144T989B9B223T
155T928X9Z554T
...

あなたは次のことを推測し始めるかもしれません:

  • おそらくすべての文字列は14文字の長さです
  • 4番目、8番目、10番目、および14番目の文字は常にアルファであり、残りは数字です。
  • 最初の文字は常に「1」である可能性があります
  • 4番目の文字は常に文字「T」である可能性があります
  • 14番目の文字は「S」または「T」のみに制限される場合があります
  • 等々...

実際のデータのサンプルをどんどん取得すると、これらの「ルール」の一部が消える可能性があります。15文字の長さの文字列が表示された場合は、最初の「ルール」が正しくないという証拠があります。ただし、正確に14文字の長さの文字列のサンプルが十分に大きい場合は、「すべての文字列は14文字の長さである」と想定し、自信の程度に数値を割り当てることができます(事実に関する適切な一連の想定を使用して)キャプチャされた可能性のあるすべてのデータの適切にランダムなセットが表示されていること)。

おそらくお分かりのように、人間はこの分類の多くを目で行うことができますが、私はコンピューターがそれを行うことを可能にするライブラリーやアルゴリズムを知りません。

キャプチャされたデータのセット(上記よりも大幅に複雑です...)を考えると、この種の分類を行うためにコードに適用できるライブラリがありますか?これにより、一定の信頼度で「ルール」が識別されますか?

次のステップとして、これらのルールを取得し、それらを使用して、これらのルールに準拠する独自のデータを作成できるようにする必要があります。これは分類よりもはるかに簡単な手順だと思いますが、これまでこのようなタスクを実行する必要がなかったので、どれほど複雑かはわかりません。

推測では、PythonまたはJava(またはPerlまたはR)は、おそらくこれらの種類のライブラリを持っている可能性が最も高い「一般的な」言語であり、おそらく一部の生物情報ライブラリはこの種のことを行います。どの言語を使用する必要があるかは本当に気にしません。私はできる限りの方法で問題を解決する必要があります。

情報へのあらゆる種類のポインタが非常に役立ちます。おそらくお分かりのように、私はこの問題を明確に説明するのに苦労しています。Googleにプラグインできる適切なキーワードのセットがあり、それが解決策を示している可能性があります。

4

2 に答える 2

0

まず第一に、コンピュータに恣意的に複雑なルールを識別させることは期待できません。人間が文字列を分析する場合も同様です。適用できるルールの例をいくつか思いつくことができると思いますが、文字列を見ただけで人間が理解できるとは期待できません。

あなたがする必要があると思うのは、コンピューターが識別できる特定の種類の規則でコンピューターをプログラムすることです。たとえば、「文字列の長さは常に X です」という形式のルールを識別するスクリプトを作成できます。または、「N 番目の文字は常に X です」でさえ、それほど難しくありません。あなたが言及したルールの例はすべてこの形式であるため、人間の分析からそれほど離れていないことに気付きました;-)実際、あなたが知っているか、または仮定できるなら、特定の位置は位置インデックスのみに基づいているため、データを使用して、特定の文字が特定の場所に表示される確率を推定できます。これは、「N 番目の文字は常に X である」のより一般的なバージョンのようになります。

ルールの信頼度を確立したい場合は、ベイジアン統計を調べることをお勧めします。これは、新しい証拠を収集するときに仮説の確率を修正したい場合 (「このルールは正しい」など) に使用されます。

于 2010-05-19T07:34:35.097 に答える
0

クラスタリング アルゴリズムを備えたWekaを試してください。クラスタリング アルゴリズムは、監視なしでデータのパターンを見つけます。Weka にはインクリメンタル クラスタラーもあります。まさにあなたが望むものだと思います。

そしてジャバです。

于 2010-05-23T19:34:19.707 に答える