2018年12月24日月曜日

App Inventor for Android で SVM(サポートベクトルマシン)分類

以下は同じような心境とお考えください。

「なぜ山に登るのか」
「なぜスマホでSVM分類するのか」

下記の書籍は、数多くある機械学習関連のうちの非常に優れた一冊です。これに刺激を受けて、その中にあった、SVMによる分類の例題を、Android向けにデモアプリとして動かしました。下図のとおりです。

歴史上の人物の特徴量を与えて、その人を「政治家」か「非政治家」かに分類する例題です。



SVMのJavaライブラリは、LIBSVM(国立台湾大学による)を利用させていただきました。上記のAndroidアプリは、MIT App Inventorを使って作成しました。既存のApp Inventorのブロックだけでは、このようなアプリはほとんど作成できません。そこで、LIBSVMを使ったJavaアプリを作成し(下記書籍を参考に)、App InventorのActivity Starter機能(ブロック)を使って、これを呼び出す形にしています。上の実行例画面でその概要を示します。↑拡大してご覧下さい。

このアプリでは、20名のデータのうち、ランダムに1名を選んで、それを「テスト用データ」とし、残り19名のデータを「学習用データ」として学習、テストを繰り返し実行できます。

また、このアプリの学習データを入れ替えれば、類似の問題、例えば有名な「タイタニック号の乗客の生死」の分類等にも(データ加工に幾らかの工夫は必要でしょうが)適用できそうです。

●参考書籍
杉本徹+岩下志乃共著「Javaで学ぶ自然言語処理と機械学習」、オーム社

0 件のコメント:

コメントを投稿