主成分得点の平均
次のコードを実行したときの出力として、正しいものを1つ選べ。
import numpy as np
from sklearn.decomposition import PCA
X = np.array([[1.0, 2.0], [2.0, 1.0], [3.0, 5.0], [4.0, 3.0]])
Z = PCA(n_components=2).fit_transform(X)
print(bool(np.abs(Z.mean(axis=0)).max() < 1e-9))
- A
False - B
None - C
True - D
2
正解と解説を見る
正解:C
PCA は、特徴量ごとに平均を引いて(中心化)から、分散の大きい方向を求める。主成分得点の平均は 0 になる。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `import numpy as np` | — |
| 2 | `from sklearn.decomposition import PCA` | — |
| 3 | `X = np.array([[1.0, 2.0], [2.0, 1.0], [3.0, 5…` | X = [[1.0, 2.0], [2.0, 1.0], [3.0, 5.0], [4… |
| 4 | `Z = PCA(n_components=2).fit_transform(X)` | Z = [[-1.4140290483128322, -0.9016772429908…, X = [[1.0, 2.0], [2.0, … |
| 5 | `print(bool(np.abs(Z.mean(axis=0)).max() < 1e-…` | Z = [[-1.4140290483128322, -0.9016772429908… |
| 結果 | 実際の出力 | True |
- A
誤り。中心化されているので、平均は 0。
- B
誤り。真偽値が返る。
- C
正しい。PCA は、データを平均で中心化してから回転するので、主成分得点の平均は 0。
- D
誤り。真偽値が返る。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。