質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

523閲覧

PCAによる遺伝子発現データの次元圧縮

iziz

総合スコア8

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/01 15:11

TCGAのデータベースから遺伝子発現データ(RNA seq)をダウンロードし、解析の練習をしてます。
データは60000行(遺伝子名)×1300列(サンプル)です。
下記のコードでPCAによる次元圧縮しています。

Python

1import math 2import numpy as np 3import pandas as pd 4import matplotlib.pyplot as plt 5from sklearn.decomposition import PCA 6from sklearn.preprocessing import scale 7 8df = pd.read_table('all_FPKMs_remove_zero_null.txt',index_col=0) 9df = np.log2(df+1) 10df_scale = scale(df) 11 12pca = PCA() 13pca.fit(df_scale) 14 15print('主成分',pca.components_.round(4)) 16print('平均',pca.mean_) 17print('共分散',pca.get_covariance()) 18print('各次元の寄与率',pca.explained_variance_ratio_) 19print('累積寄与率',sum(pca.explained_variance_ratio_)) 20print('標準偏差',[math.sqrt(u) for u in pca.explained_variance_]) 21 22fuka = (pca.components_*np.c_[np.sqrt(pca.explained_variance_)]).T 23print('負荷\n',fuka.round(4)) 24transformed = pca.fit_transform(df_scale) 25fig = plt.figure(facecolor="white") 26plt.scatter( [u[0] for u in transformed], [u[1] for u in transformed] ) 27plt.title('PCA of RNA seq') 28plt.xlabel('pc1') 29plt.ylabel('pc2') 30plt.show() 31 32結果は 33 34主成分 [[ 0.0228 0.0268 0.0256 ... 0.0272 0.0274 0.0275] 35 ... 36 [ 0.0006 -0.0015 -0.0076 ... -0.0046 0.0067 -0.0024]] 37平均 [-1.33671522e-16 4.41713098e-17 -5.06903859e-17 ... -7.60355788e-17 38 1.38911154e-17 -7.06740957e-17] 39共分散 [[1.00001715 0.75640312 0.70998553 ... 0.77829088 0.76754083 0.75688155] 40 ... 41 [0.75688155 0.88736555 0.86062501 ... 0.90094471 0.93685879 1.00001715]] 42各次元の寄与率 [9.05905630e-01 9.47107815e-03 8.75448288e-03 ... 3.08427690e-06 43 2.97844248e-06 2.96784872e-06] 44累積寄与率 1.0000000000000002 45標準偏差 [35.04895292427957, 3.583713466882291, 3.445472734196254, 46 ... 47 [ 9.640e-01 6.410e-02 1.720e-02 ... -2.300e-03 -2.800e-03 -2.000e-04]] 48 49![散布図](756670b1fa86bf6d0c213fc41b07c7a9.png) 50

質問ですが、
①この散布で全体から少し離れたプロット(第一成分の250以降のプロットなど)の特徴というか、どういう遺伝子がそれを特徴づけているのかを調べるにはどの様なコードを書けばできますか?
②もともとは60000行×1300行のデータでしたが、散布図の各プロットは何を意味しているのでしょうか?
初心者なので初歩的な質問で恐れ入りますが、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/04/02 01:15

散布図が見えませんが?
iziz

2020/04/02 08:40

失礼いたしました、修正致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問