不均衡で不均一な負のバックグラウンドを持つ1クラスの差別的分類?


16

{protein}シーケンスを特定のクラス(ニューロペプチドホルモン前駆体)に属するかどうかに分類するために、既存の教師付き分類子の改善に取り組んでいます。

約1,300万のタンパク質配列のバックグラウンド(「不明/不十分な注釈付きのバックグラウンド」)に対して約1,150の既知の「陽性」、またはさまざまな特性で注釈付けされた約100,000のレビューされた関連タンパク質があります(ただし、 「ネガティブ」な方法)。

私の以前の実装では、これをバイナリ分類問題と見なしていました。ポジティブセット=ニューロペプチドとしてマークされたタンパク質。ネガティブセット:ほぼ同様の長さ方向の分布の残りのタンパク質の中から1,300サンプル(合計)のランダムサンプリング。

それはうまくいきましたが、マシンの識別能力を大幅に改善したいです(現在、ランダムにサンプリングされた複数のネガティブセットで、精度、AUC、F1、CVで測定すると約83〜86%です)。

私の考えは次のとおりでした:1)これをマルチクラスの問題にし、プロパティ/機能クラスによって、(おそらく)ランダムにサンプリングされた別のセットとともに、明確にネガティブになる2-3種類のタンパク質を選択します。(ここでの優先順位は、特性/特徴がポジティブセットに似ているネガティブセットですが、定義する特性があります)。2)1つのクラスの学習-素晴らしいと思いますが、私が理解するように、それは異常検出のためだけのものであり、差別的なアプローチよりもパフォーマンスが劣ります。

*)きれいに聞こえるPU学習について聞いたことがありますが、私はプログラミングN00bであり、そのための既存の実装については知りません。(Python / sci-kitで学習)。

それでは、アプローチ1は理論上のPOVで意味がありますか?複数のネガセットを作成する最良の方法はありますか?(「ネガティブ」タンパク質の大規模な[50K]ピックを使用することもできますが、それらはすべて非常に大きく異なるため、分類器がそれらを1つの大きなアンバランスミックスとしてどれだけうまく処理できるかわかりません。 )。ありがとう!


あなたはおそらく見たように、PU学習上のWikipediaの記事は、これは遺伝子同定に適用されてきた紙への参照を持っています。たぶん、どのソフトウェアを使用したかを著者に尋ねる/尋ねる価値があるでしょう。
アンドレホルツナー

ここで学ぶPU学習上のいくつかの議論がscikitである:stackoverflow.com/questions/25700724/...( '1クラスのサポートベクトルマシンを使用して)
アンドレホルズナー

PU学習は、1つの警告を伴う標準の2クラス分類問題です。分類精度ではなく、曲線下の領域を最適化します。Sofia MLソフトウェアパッケージを使用して、これを正確に行うことができます(プログラミングは不要です)。実用的な面では、ポジティブな例に+1で注釈を付け、その他すべてに-1を付けます(はい、ポジティブを含む他のすべてのラベルなしデータ)。
ヴラディスラフドブガレス

回答:


5

一般的に、問題を攻撃する方法は、主成分分析や通常最小二乗などの統計分析を活用して、これらのタンパク質配列内のどの属性がタンパク質をニューロペプチドホルモン前駆体として分類するのに最も適しているかを判断することです。

そのためには、タンパク質配列を数値データに変換する必要がありますが、アミノ酸PCAで活用された式を使用することに関して、すでにいくつかの作業が行われていると思います。

次の2つのリンクを参照してください:http : //www.ncbi.nlm.nih.gov/pubmed/24496727

http://www.ncbi.nlm.nih.gov/pubmed/16615809

その作業が完了したら、データセット全体とNaive Bayesなどの強化学習アルゴリズムを使用して分類し、PCAが重要であると特定したデータにスリム化します。

Bayesを使用しようとする理由は、同様に歪んだデータセットを持つ通常の電子メールとスパムを判断するための最良の方法の1つであることが証明されているためです。

すべてのことを言った...

否定的な分類の数またはタイプをスリム化すると、結果がいくつかの点で何らかの形で歪む可能性がありますが、最適な削除方法を決定する脚の仕事をするまで、長期的な有効性が大幅に変わるとは思わないトレーニングデータからのあいまいさ。それには、現場の専門家または統計分析が必要です。

私は完全にベースから外れている可能性があります。私は他のいくつかの答えを見ることに興味がありますが、それは私の2セントです。


1
既に機能抽出とそのツールキットを実装しています(公開はバグチェックを待っています)。
GrimSqueaker

5

ワンクラス学習

1クラスの分類方法(オプション2)を捨てるのは速すぎません-重要なのは、1クラスモデルでポジティブ(マイノリティ)クラスをモデル化することです。

タンパク質分類タスクでよく見られるような、非常に不均衡なデータのサンプリングなど、1クラス分類が他のアプローチよりも優れているケースを実証する研究があります。

私は思い出した研究を見つけることができませんでしたが、他の比較を見つけました.1セット分類器(通常は少数派クラスのモデリング)を使用して、大規模なセットからサンプリングされた「ネガ」を使用したバイナリ分類よりも優れたまたは優れたパフォーマンスを達成したことを示しました陽性であることが知られていないタンパク質の。

さらに、このアプローチには、実行時間を大幅に改善できるという利点もあります。これは、より小さな正のセットで分類器をトレーニングするだけでよいためです。カップル論文:

「1クラス分類法を使用し、多様な生物学的データを統合するタンパク質間相互作用の予測」

「タンパク質の配列と構造のワンクラス分類アプローチ」

少なくとも1クラスのメソッドをいくつか試して、検証を使用してバイナリ/マルチクラスの分類アプローチとパフォーマンスを比較します。これらの多くにはオープンソースの実装もありますので、試してみてもそれほど費用がかからないはずです。たとえば、LibSVMには1クラスのSVM実装があります。さらに、予測に不一致が生じる可能性があるため、バイナリ分類器とのアンサンブルで使用するのに価値があるかもしれません。

高レベルの表現の埋め込み/クラスタリング

あなたが考えていた(1)の行に沿って、PCAを示唆する他の投稿、クラスタリング、スパースコーディング、またはトピックモデリングなどのアプローチ-各タンパク質を文書文字列として扱い、異なるタンパク質ファミリーを異なるトピックとして扱う-表現を得ることができますタンパク質の分類が簡単になるかもしれません。

つまり、タンパク質がどのグループ/クラスターに属しているかを特定したり、クラスターメンバーシップ/埋め込み表現を分類したりできます。

たとえば、スパースコーディングなどの埋め込みアプローチにより、タンパク質が属するクラスターも明らかにする表現が得られるため、いくつかの機能セットは同じクラスター内のタンパク質に対してのみアクティブ(ゼロ以外)になり、分類がはるかに容易になります。

さらに、ほとんどのメソッドの埋め込みプロセスにクラスラベルまたは既知のクラスターメンバーシップを組み込むことができます。

アンサンブル

複数の分類子のアンサンブルは、特に分類子が非常に多様で、個別に同等のパフォーマンスを達成できる場合に、最適に機能する傾向があります。

この問題にアンサンブルを使用する方法は少なくとも2つあります。

  1. 複数の異なる同じサイズのネガティブセットをサンプリングし、それぞれで分類器をトレーニングすることにより、バイナリ分類器のアンサンブルを構築できます。
  2. 異なるネガティブサンプルを使用したバイナリ分類器、1クラス分類アプローチ、埋め込みデータでトレーニングされた分類モデルを組み合わせたものなど、さまざまなアプローチからアンサンブルを構築できます。

2

あなたが取ることができる3つのアプローチがあります:APP、OAA、AAO。APPは、考えられるすべてのクラスのペアに基づいたオブジェクト間の区別です。OAAはすべてに対して1つ(残りのクラス)を使用し、AAOは一度に複数のクラスに対してFテストを使用する(またはMVNに対してホテリングのテスト)などのすべてを同時に使用します。APPとAAOは実際には複数のバイナリ分類実行ですが、元のクラスが3つ以上あります。これらのアプローチのそれぞれは、採用されたさまざまな分類器に対して異なる結果をもたらします。

ランダムサンプリングは優れた手法です。また、k-meansを使用してすべてのオブジェクトを中心にクラスター化してから、中心を新しいオブジェクトとして使用することもできます。いずれにせよ、線形および非線形の次元削減方法は、大きなサンプルサイズからの脱却に役立つ場合があります。

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