高次元バイナリスパースデータのクラスタリングアルゴリズム


7

以下のような10,000遺伝子のデータセットがあります

person gene1 gene2 ... gene10000  ethnic
  1       0      1         1       asian
  2       1      0         1       European

各行は、人がDNAに遺伝子を持っているかどうかを意味します。上記のデータに基づいて、さまざまな民族グループを分類しようとしています。しかし、最初にいくつかのクラスタリングアルゴリズムを使用して、さまざまな民族グループのクラスターがどのように見えるかを視覚化したいと思います。このクラスタリングアルゴリズムを使用してグループを分類することはありません。適切な個別のクラスターや重複するクラスターなどがある場合、それがどのように見えるかを視覚化するためだけに使用されます。

このタイプのデータセットには、いくつかのクラスタリングアルゴリズムをお勧めします。また、次元は10000です。これはクラスタリングの問題になるのでしょうか?最初にいくつかの次元削減アルゴリズムを使用する必要がありますか?もしそうなら、あなたの推奨事項を教えてください。前もって感謝します。


1
10000次元のクラスタリングに問題がなくても(一部のアルゴリズムにはあり、他にはそれほど多くない)、クラスタリング後にそれを視覚化することはできません。一般的な手法(PCAなど)でも、一度に2〜3個の機能を選択しても、次元を削減しない方法がわかりません。
Mephy、2017年

前に回答したように、まず視覚化の問題を解決し、それが機能しているときにクラスタリングを検討します。クラスタリングにより、視覚化がやや難しくなり、簡単にはなりません。
QUITあり-Anony-Mousse 2017年

視覚化の問題に関するリソースへのリンクを教えてもらえますか?
asdlfkjlkj 2017年

回答:


1

どのくらいの民族グループを特定しましたか?

私があなたの問題を視覚化しなければならなかった場合、私はナイーブベイズのようなアプローチで各民族グループの主要なインフルエンサーを決定します。これらの遺伝子(遺伝子の組み合わせ?!)(それらの値を含む)は、一部の民族グループと強く相関している可能性がありますが、他の民族グループとは(または逆)相関しているとは限りません。

それらをピラミッドグラフの上に配置します。相関値の左右にバーを配置します。


0

「視覚化のための異なる民族グループのクラスタリング」は、この場合のターゲット変数がすでにわかっているため、監視された次元削減を試みているように見えます。

後で分類に使用することになるので、すでに民族の数は知っていると思います。これは、線形判別分析(LDA)を使用して行うことができます。この投稿を確認してください:https : //stats.stackexchange.com/questions/161362/supervised-dimensionality-reduction


0

手順-1

いくつかのジェネラを組み合わせてみることができれば、より良いと思います。特定のジェネラを組み合わせてみて、特定のジェネレータが同じ傾向に従う場合がほとんどです。

次元削減を使用すると、データをより理解することができます。現時点では、直接指定した場合でも、モデルが理解して有用な結果を得るには時間がかかる場合があります。

次元削減の結果が得られたら、SVMRFなどのマルチクラス分類アルゴリズムを直接適用できます。

手順-2

あなたが試すことができるもう1つのことは、すべての機能(Generの)を1つの機能に連結し、理解してみて、意味があるかどうかを確認してみること/良い洞察を得ることができることです(探索的分析)。

ご不明な点がありましたらお知らせください。

SVM:サポートベクターマシン

RF:ランダムフォレスト


私の答えは役に立ちましたか?
Toros91 2018年

0

私は民族グループの数が多いのではないかと思います。あなたには、異なる民族的背景を持つ無作為な人々のサンプルが十分に与えられており、一緒に働くことができます。だから私は以下を提案します:

クラスタリング(教師なしセグメンテーション)を使用する代わりに、既存の粒度の低い民族グループを使用できます。生のデータセット内の固有の民族グループがhttps://en.wikipedia.org/wiki/List_of_contemporary_ethnic_groupsのようなものであるとすると、https://www.googleのような 小さいグループで高レベルのグループ化を使用でき ます。 高レベルのグループプロファイルを理解するためのcom / search?q = ethnic + grouping + in + the + world&rlz = 1C1CHBF_enUS810US810&oq = ethnic + grouping + in + the + world&aqs = chrome..69i57.10445j0j8&sourceid = chrome&ie = UTF-8:たとえば、各グループでより一般的な遺伝子機能の頻度カウントの降順の分析によって。技術的には、元のより細かい民族グループを使用して同じことを行うことができます。

従来の主成分分析は、値0または1のカテゴリカルであるため、通常は遺伝子特徴に適用できませんが、このRパッケージで使用されている方法など、連続変数の入力を必要としないより適切な方法を適用できます:https: //cran.r-project.org/web/packages/FactoMineR/index.html

ワンショットでのクラスタリングと推奨:

次のように、アイテムごとにユーザーの形式でデータを要求する明示的な協調フィルタリングを試すこともできます。

  1. 遺伝子の特徴はすべてバイナリなので、民族グループの数値IDを評価として使用できますが、1からNまでの異なる民族グループの数値に変換する必要があります
  2. 人物をユーザーディメンションとして定義し、各遺伝子機能のIDをアイテムディメンションとして定義する
  3. データを[Person、genes、group]として再編成します。ここで、genes = [1,2、...、N_genes]とgroup = [1,2、...、N_ethnic]は、gene feature = 1のみの行を保持しますこの形式では、組み合わせが存在しない場合に想定されるゼロ値により、トレーニングデータセットと検証データセットのデータが分離されます
  4. 代替最小二乗(https://spark.apache.org/docs/2.2.0/ml-collaborative-filtering.html)をトレーニングデータに適用し、検証データを使用して、ALSが民族グループをどの程度予測しているかを検証します。 ALSプロセスの初期コンポーネント数としての、上記の小さい民族グループの要素の数
  5. すべての人の遺伝子特徴を与えられた各民族グループの正しい予測の数が正しくない予測よりもかなり多い場合は、モデルを使用して民族グループのメンバーシップを予測します。また、各民族グループに特徴的な遺伝子特徴の組み合わせを調べることもできます。この結果。

0

データの真実を知っているなら、ここの民族です。次のようにバイナリクラスターを視覚化できます。観測数と特徴数が線形に複雑な特徴ごとの多数決を使用して、各クラスターのプロトタイプを計算します。次に、各バイナリプロトタイプをサイズのバイナリグリッドとして視覚化します100×100 あなたのための 10000特徴。お好きな色を2つ選んでお楽しみください。同じピクセルで同じ色を共有しているときに、重心が他の重心と重なっているかどうかがわかります。データを迅速にクラスター化したい場合は、最初にアドバイスしますK-Modes これは、以下のバイナリと同等です K-Means、どちらも O(n)、 セットする K民族の数に応じて、クラスターを取得したら、プロトタイプを抽出するために再度多数決を適用し、プロトタイプを視覚化して、グラウンドトゥルースと類似しているかどうかを観察します。この SparkNotebook では、アルゴリズムの使いやすいバージョンと、視覚化された実用的なブートストラップの例がここにあります。


0

各人物がどのクラスターに属しているかはすでにわかっているため、この予測を行うクラスターアルゴリズムを実行する必要があります。あなたの質問はデータ探索についてです:あなたはあなたのデータを理解しようとしています。実際の問題は教師あり(マルチクラス)分類問題であり、クラスタリングアルゴリズムは教師なしなので、そのアルゴリズムには適していません。

2つのことを行うことをお勧めします。まず、視覚化できるように次元数を減らします。次に、より多くの理解を得るために、元の高次元データセットのメトリックを計算します。

データを視覚化するには、t-SNEを使用して2次元で視覚化し、民族グループで色を付けることをお勧めします。これにより、データが10k次元の空間でクラスターを形成するかどうかがわかります。

次に、データについての感覚や直感をさらに改善したい場合は、10k次元空間のクラスターの観点から考えて、シルエットスコア、クラスターのコンパクトさ(平均距離、中心)、またはヒートマップでクラスター間の距離を表示します。2つのクラスターに同じラベルを付けることでそれらをマージし、結果がどのように変化するかを確認できます。

私はあなたが得るかもしれない結果を期待することができないので、それは非常に啓発的であるかもしれません。つまり、特定のクラスターが非常にコンパクトであり、他は非常に広範囲であり、いくつかは他のものと非常に類似しているなどです。しかし、おそらく、上記の方法を使用しても、データをまったく理解できません。それが起こったら、私はあなたのデータを「遺伝子空間」の点として考えるのをやめるべきだと言います。人の間の違いは「距離」などを示します。この場合、遺伝子から民族へのマッピングがグループ化は空間クラスタリングよりも複雑(非線形)なので、この非線形性をエンコードできる分類アルゴリズムを使用する必要があります。

深層学習には多くの前提条件はありませんが、その1つは、連続関数のみをエンコードできることです。ニューラルネットワークには、数値の実数値の入力特徴も必要です。問題にはバイナリデータがあり、遺伝子から民族へのマッピングがスムーズな関数であると考える理由がないので、おそらく決定木に基づくアルゴリズムが出発点として適しています。

幸運を!:-)

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