多変量解析及び演習 2022年度 おまけ課題

はじめに

ここにはおまけ課題があります.おまけですので,やらなくても減点はありません.やると棒茄子? それぞれの課題について,やったひとは授業時間中に takataka に見せてね.

omake02

omake03

omake04

A と B は独立です

omake04A

ex03notebookA.ipynb の式(3) の1行目

\[ \sum_{n=1}^{N} x_{n,0}\mathbf{w}\cdot\mathbf{x}_n = \sum_{n=1}^{N} x_{n,0}y_n \]

が成り立つとき,次のことが言えます:

\( \mathbf{w} \) で決まる回帰式が表す平面は,説明変数と被説明変数の平均の点 \( (\bar{x}_{1}, \bar{x}_{2}, \ldots, \bar{x}_D, \bar{y}) \) を通る.

これを証明しなさい.

omake04B

omake05

主成分分析では,データの分散共分散行列の固有値・固有ベクトルを計算に使いますが,実は,「特異値分解」を利用すると,分散共分散行列を計算しなくても,その固有値・固有ベクトルを求めることができます. その理屈を理解して実際に計算してみましょう.

Step1

任意の \( m \times n \) 行列 \( X \)

\[ X = USV^{\rm T} \]

と分解できます.ただし,\( \textrm{rank}(X) = r \leq \textrm{min}(m, n) \) として,

です.\( \sigma_1, \sigma_2, \ldots, \sigma_r \)\( X \) の特異値といい,この行列分解を特異値分解といいます.

このとき,\( X^{\rm T}X \)\( V \)\( S \) を用いて表しなさい.

Step1 ができたらいったん takataka に見せてください.Step2 につながるお話をします.

Step2

Step1 が(高橋の説明も含めて)分かると,データを表す \( N\times D \) 行列 \( X \) が与えられたとき(平均は \( \mathbf{0} \) とします), \( X \) の分散共分散行列 \( \frac{1}{N}X^{\rm T}X \) を計算してからその固有値固有ベクトルを求める必要はなく,\( X \) を特異値分解した結果からそれらが求まることが分かります. ex05notebookB の適当な箇所にセルを追加して,Vの固有値固有ベクトルをXの特異値分解(np.linalg.svd 使いましょう)を用いて計算して表示するコードを書きなさい.

omake06

画像処理してみよー

omake07

自分で適当なデータを探して,Colab notebook を使って重回帰分析または主成分分析をやってみましょう. 期限は特に設けませんので,できた時点で takataka に見せてください.データの入手の仕方や前処理のやり方などなど,随時相談にのります.

omake08

もっと手書き数字認識してみよー

ex11 課題C の続きとして,次のことをやってみましょう

(1) 主成分分析 + 二次判別分析による識別の実験で,削減後の次元数をいろいろ変えて学習データとテストデータに対する正解率を算出し,横軸に次元数,縦軸に正解率をとったグラフを描きましょう.一つのグラフに学習・テスト両方の値を描くとよいです.次元数を減らさないときの値も含めるとよいです.

(2) scikit-learn で実装されている他の手法でも実験してみましょう.おすすめは次の二つ(やってみるのはどちらか一方だけでもよいです).

次元削減しないでデータをそのまま使ったらよいです.主成分分析 + 二次判別分析の場合には次元数を変えると結果が変わりました.この次元数のように,自動的には推定されず人間が設定する必要のあるパラメータを「ハイパーパラメータ」といいます.上記の二つの手法にもハイパーパラメータがあります.前者では `n_neighbors` がそれです.後者にはいろいろありますが,`n_estimators` が代表的です.これらの値を変えて結果を観察しましょう.


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-11-27 (日) 10:01:37