機械学習ソフトウェアWekaの使い方のメモ
なんだかんだ初投稿からかなり時間が経っていた()
Motivation
- 特徴選択の話をかじり始め,とりあえず従来手法をサクッと試したかった
- そこでJavaで作られたフリーのソフトウェアwekaを使うことを思いつく
- インストール込みで使い方をメモる
Wekaとは
Wikipediaでの記述では
Weka (Waikato Environment for Knowledge Analysis) は、ニュージーランドのワイカト大学で開発した機械学習ソフトウェアで、Javaで書かれている。GNU General Public License でライセンスされているフリーソフトウェアである。 – Weka - Wikipedia
とのこと.公式のWebページを覗いてみると
Weka is a collection of machine learning algorithms for data mining tasks. The algorithms can either be applied directly to a dataset or called from your own Java code. Weka contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization. It is also well-suited for developing new machine learning schemes. – Weka 3 - Data Mining with Open Source Machine Learning Software in Java
とのこと.前処理から結果の可視化まで一括してやりまっせって感じですね.
インストール
このへんを参考に.
- Wekaのダウンロード – Wekaの日本語情報
- Weka 3 - Data Mining with Open Source Machine Learning Software in Java
- 最新の安定版やdeveloper版が欲しい場合は公式Webページから取るのが安牌
最新ver.は3.8系.ただし,日本語化に対応しているのは3.6系の模様. とりあえず3.6系を入れました.
使い方
このへんを参考に
クイックスタート – Wekaの日本語情報 d.hatena.ne.jp d.hatena.ne.jp
特徴選択
このへんを参考に. http://www.weka-jp.info/archives/Weka_FeatureSelection-1.pdf
フィルタ法だと
- Infomation Gain
- ReliefF
という鉄板はもちろんありそう.
ラッパー法でも
- Genetic Algorithm
- Greedy Search(貪欲法)
- 全探索
がありそう.まず取っ掛かりとして試すのは十分.
最後に
- 鉄板のirisデータセットをはじめ,データセットもまあまああるのでサクッとはじめられそう
- 自作アルゴリズムをインポートできるかな?
- (実際,提案手法の実装はPythonでやりたいので,wekaは従来手法のチェックで終わりなんだけど…)
- 次は本番で使うscikit-learnも漁る
そういえば
最近,CMA-ESのpure rank-μ updateだけ組んだ.main.pyでらくらくお試しできます. github.com
こっちの技術的背景というかInformation Geometric Optimizationの話も後でまとめたい. IGOフレームワークは今後,Bernoill分布にも対応させたいし,Gauss分布のほうでもCommulative Step-size Adaptationだったり,rank-1 updateだったり,学習率の自動調整だったり,やることはまだまだある.お星様付けてくれると悦びます.