24,000カテゴリのクラスをエンコードする方法は?


10

私は現在、ゲノミクスのロジスティック回帰モデルに取り組んでいます。共変量として含めたい入力フィールドの1つはgenesです。既知の遺伝子は約24,000あります。計算生物学にはこのレベルの変動性を持つ多くの機能があり、数十万のサンプルが必要です。

  • もしLabelEncoder()24K遺伝子なら
  • そしてOneHotEncoder()それら...

24,000列は、2.2 GHzクアッドコアi7 CPUに対してケラスのトレーニング時間を無理にするのでしょうか?

もしそうなら、私がこれで取ることができるエンコーディングへの異なるアプローチはありますか?

どういうわけか、モデルのレイヤーをこの機能専用にする必要がありますか?

これは、24Kの入力ノードが必要であることを意味しますか?


VAEを使用して表現を学びませんか?遺伝子シーケンスの学習では、表現(NLPで行われるような)は、単純なPCAと比較して非常に理にかなっていると
思い

回答:


10

はい、24k機能でワンホットエンコーディングを使用するには、24k入力ノードが必要です。ただし、これはKeras(または他のディープラーニングライブラリ)の問題ではありません。自然言語処理では、同じ球場で語彙サイズの単語にワンホットエンコーディングを使用することがよくあります。

「ディープ」モデルを使用している場合、非表示レイヤーの1つがデータの次元数を減らすことに注意する必要があります。通常、個別の前処理ステップは必要ありません。

訓練時間は無理であってはなりません。


サニティチェックありがとうございます。
HashRocketSyntax

sklearnのPCAではなく、レイヤーについて言及していることに気付きました。次元削減の形式としてオートエンコーダーをお勧めしますか?
HashRocketSyntax

2
Kerasを使用しているとおっしゃっていましたが、何らかのニューラルネットワークを使用していますよね?ネットワークのどこかに、入力より少ないノード数のレイヤーがある場合、ネットワークは次元削減を自動的に実行しています。回帰出力は1つ(または少数)しかないと思います。したがって、1つの簡単な方法は、入力層(d = 24k)、1つ以上の中間層(d = 1kまたはそのようなもの)、および出力層(d = 1)を持つことです。
C.イドゥコリ

同様のサイズのレイヤーがNLPで一般的ですが、CPUで最新のNLPモデルをトレーニングすることは一般的に不合理です。強力なGPUは、小さな「おもちゃ」モデル以外のすべてのNLPのテーブルステークスです。一方で、物理GPUとクラウドGPUの両方を非常に簡単に利用できるため、大きな障壁にはなりません。
Peteris

6

カテゴリ変数のエンティティ埋め込み元のページャー)は、ここでの非常に適切なアプローチです。こちらこちらをお読みください。私は実際にあちこちからコードを配置し、完全に実行する実装を作成しました。このgitリポジトリを参照してください。これは、ニューラルネットワークを使用して、非常に高いカーディカルカテゴリ変数を簡単に処理します。私はOHEの長所と短所をリストしません、あなたはそれをググってください、しかし主な欠点の1つは特に。非常に高い基数カテゴリー変数がある場合、それはフィーチャースペースを不必要に劇的に増やしますが、これは私の意見では理想的ではありません。そしてさらに重要なことに、私の知る限り、OHEは、カテゴリ間の意味的な関係が存在する場合、それを考慮しません。ただし、エンティティの埋め込みは、NLPでの単語の埋め込みの概念であり、カテゴリをエンコードするために学習されている重みは、カテゴリ内の関係をキャプチャする可能性があります。


3

一般に、その遺伝子の数は、有意な特徴のはるかに小さなセットに減らす必要があります。次に、削減された機能セットをモデルで使用できます。たとえば、主成分分析(PCA)は最も一般的な削減手法の1つであり、遺伝子発現データに使用されています

生物学および医学でデータを統合するための機械学習:原則、プラクティス、および機会」 Zitnikaら。遺伝子のさまざまな特徴工学技術をカバーしています。


ありがとうございます。機能スペースを関連する遺伝子(およびwgsの規制区域)の数に減らします。
HashRocketSyntax

PCA、多様体、クラスタリング/密度、ある種のニューラルネットなど、どのような次元削減を推奨するのかを質問するのは、あまりにも大した質問ではありませんか?
HashRocketSyntax
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.