課題2 [2016/01/08, 18:00締切]
「SVMによる高次元ベクトルの2クラス分類の実施」
高次元ベクトル集合の2クラス分類を実施せよ。
解答に「認識率」とある場合は、各クラスについてPrecision(適合率)とRecall(再現率)を求めて表示せよ。
(参考:天気予報が「晴」とした日のうち実際に晴れた日の比率がPrecision、実際晴れだった日のうちで天気予報が「晴」と言っていた日の比率がRecall)
★記述に関しては、PDFファイルで行い、先頭に授業名、課題名、氏名、学籍番号、作成日を表示すること。その際、以下の下線部に相当する記述がすべて含まれていること。
★PDFファイルとは別に、xxxxxxx-SmallSet-L.txt, xxxxxxx-SmallSet-T.txt, xxxxxxx-LargeSet-L.txt, xxxxxxx-LargeSet-T.txtの4つのデータファイルを提出すること。
- (1) データ
- (SmallSet) 2クラス、2次元ベクトル
- 全て教師信号つきのデータを用意すること。
- 教師信号は-1と1とする。
- データ数は各クラス200以上。うち、100データを試験用、残りの100データ以上を学習用とする。
- シミュレーションによる合成可。
- 2クラスは線形識別不能であることこと。
- フォーマットはlibsvm入力データフォーマット準拠。
- ★学籍番号の数字部分 xxxxxxx を用いて、学習用(Learning)を xxxxxxx-SmallSet-L.txt、試験用(Testing)を xxxxxxx-SmallSet-T.txt として提出すること。
- ★特徴量ベクトルの次元数dを示すこと。
- ★実データの場合、データのクラスの意味と各特徴量の意味を説明すること。シミュレーションの場合は式と乱数の扱いについて説明すること。
- ★データの線形識別不能性について調査し説明すること。
- (LargeSet) Nクラス(N>=2)、d次元ベクトル(d>=6)
- 学習データとして、教師信号つきを用意すること。試験データについても教師信号付きが望ましい(がなくともよい)。
- 教師信号は-1と1とする。
- データ数は各クラス200以上。うち、100データを試験用、残りの100データ以上を学習用とする。
- シミュレーションによるデータ生成不可。、実データに基づくデータであること(手動による加工過程が含まれていてもよい)。今後公開しても問題の無い情報に基づくこと。
- 2クラスは線形識別不能であることことが望ましいが、次元数に対してデータ数が少ない場合はこの限りではない。
- フォーマットはlibsvm入力データフォーマット準拠。
- ★学籍番号の数字部分 xxxxxxx を用いて、学習用(Learning)を xxxxxxx-LargeSet-L.txt、試験用(Testing)を xxxxxxx-LargeSet-T.txt として提出すること。
- ★特徴量ベクトルの次元数dを示すこと。
- ★データのクラスの意味と各特徴量次元の意味を説明すること。各特徴量の取得方法を説明すること。(引用からデータを作成した場合、出典を明らかにすること)
- ★データの線形識別不能性について調査し説明すること。
- 参考:
libre calcで生成した)csvファイルをlibsvmフォーマットに準拠させるフィルタ.(PRML2013-kameda.zip内に同梱)
$ awk -f csv2libsvm.awk < fromlibre.csv > forlibsvm.txt
- (2) SVM(識別器の作成)
libsvmを用いて、クラス分類器を製作し、試験を行うこと。
それぞれ、SmallSet, LargeSetの両方について行うこと。
- libsvm同梱のeasy.pyを用いてよい。
- スケーリング範囲は(-1, 1)とする。
- カーネルにはRBFを用いること。
- パラメータチューニングにおいて、5-fold cross validationを用いること。
- パラメータチューニングにおいて、Soft MarginのCのグリッドサーチ範囲は 2-5 〜 215、RBFのγのグリッドサーチ範囲は 2-15 〜 23 とする。
- ★作業手順を示すこと。(bashのhistory相当でよい)
- ★チューニング結果であるソフトマージン、RBFのC、γをそれぞれ 2xの形で示すこと。
- ★チューニングの様子を示すグリッドサーチに対する認識率分布グラフを示すこと。
- ★学習用データに対する認識率を示すこと。
- ★試験用データに対する認識率を示すこと。
- ★学習用データ、試験用データの認識率の差に対する考察を、データ分布状況やSVMの特性に言及して行うこと。
- (3) PCAによる2D表示
R等を用いて、SmallSet, LargeSetの両方について主成分分析を行い、2次元平面内へプロットして示すこと。
- 入力データはスケーリングすること。スケーリングは上記(2)と同一にすること。
- ★求めた第1、第2主成分について、寄与率を示すこと。
- ★求めた第1、第2主成分について、偏差と主成分ベクトルを示すこと。
- ★求めた第1、第2主成分の軸に沿って入力データをプロットした散布図を示すこと。各クラスについて異なる印で示すこと。
- Rと合わせたlinux上での作業例については講義アーカイブ参照。
- 課題3 [2016/01/08,18:00締切]
「PCAによる2D表示」
R等を用いて,課題2のSmallSet, LargeSetの両方について主成分分析を行い,2次元空間で解析を行いなさい.
- 入力データはスケーリングすること。スケーリングは上記(2)と同一にすること。
- ★求めた第1、第2主成分について、寄与率を示すこと。
- ★求めた第1、第2主成分について、偏差と主成分ベクトルを示すこと。
- ★求めた第1、第2主成分の軸に沿って入力データをプロットした散布図を示すこと。各クラスについて異なる印で示すこと。
- Rと合わせたlinux上での作業例については講義アーカイブ参照。
★提出はPDFファイルで行い、先頭に授業名、課題名、氏名、学籍番号、作成日を表示すること。解答は1枚以上とする。
授業で解説した内容とほぼ同等のことは、全て、
Casper CartridgeのVer.5xx.で実行可能です。日本語込みであれば Ver.521, Ver.540辺りがよいでしょう。
上記の説明に出てくるスクリプトやデータについては、下記アーカイブを展開して参照してください。
アーカイブ内のデータは復習用に自由に使ってもらって構いません。
ただし、レポート提出時には(シミュレーションでもその他でも)このデータないしこのデータから派生したと思われるデータは使わないこと。
kameda[at]iit.tsukuba.ac.jp