機械学習ソフトウェア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

とのこと.前処理から結果の可視化まで一括してやりまっせって感じですね.

インストール

このへんを参考に.

最新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だったり,学習率の自動調整だったり,やることはまだまだある.お星様付けてくれると悦びます.