備忘録的な

プログラミングや機械学習に関する備忘録

機械学習の知識習得とデータ分析を同時に支援するMALSS interactive

この記事は,機械学習工学 / MLSE Advent Calendar 2018 - Qiitaの2日目の記事です.

tl;dr

機械学習を利用したデータ分析をインタラクティブにサポートしながら,同時にユーザのデータ分析に関する知識習得を支援するPythonライブラリ「MALSS interactive」を作りました.
評価実験に協力してくれる方を絶賛募集中です.

背景と動機

機械学習ブームのおかげで書籍やブログ,オンライン学習コンテンツが充実し,機械学習の勉強・情報収集はとてもやりやすくなりました.
さらに,機械学習の社会実装が進むにつれ,機械学習を用いたデータ分析のプロセスを自動化するツール・サービスも充実してきています.
しかし,忙しいエンジニアは,実務で機械学習を利用するまえに十分に勉強する時間を確保することが困難です.
また,分析の自動化に頼ってしまうと,分析の中身がブラックボックスになり知識が身につかず,より発展的な分析を行うことが難しくなります.

私は機械学習の初学者が勉強をしながら分析を半自動で行うことができるPythonライブラリ,MALSS(MAchine Learning Support System)を開発しています.
Pythonでの機械学習を支援するツール MALSS(導入) - Qiita
MALSSはデータの前処理,アルゴリズム選択,ハイパーパラメータチューニングといった一連の分析手順を自動化します.さらに分析結果をレポートとして出力することで,利用者の知識習得を支援します.
しかし,MALSSはデータの性質や分析結果に応じて動的に分析方法を変えることはできませんでした(そのような作業はMALSS利用の前後で行うことを想定していました).

提案

MALSSを改良し,GUIを備え,ユーザとインタラクティブに分析を進めていくことができる,MALSS interactiveを開発しました.
GitHub - canard0328/malss: MAchine Learning Support System

使い方

MALSSはpipでインストールできます.MALSS interactiveのGUIはPyQt5で作っていますが,MALSSと同時にはインストールされないため,別途PyQt5をインストールする必要があります.

pip install malss
pip install pyqt5

インストールが完了したらPythonインタープリタを起動し,以下のようにMALSSをインタラクティブモードで起動します(lang='jp'を忘れると下手くそな英語が出てきますのでご注意ください...).

from malss import MALSS
MALSS(interactive=True, lang='jp')

MALSS interactiveが起動すると,あとは画面の指示に従いながら分析を行うことができます.その際,例えば下図のように,変数の種類(量的変数,質的変数)の説明,ダミー変数の説明などを行い,データ読み込み結果に応じて,変数の種類をユーザが変更することができたりします.

f:id:canard0328:20181201221227p:plain
f:id:canard0328:20181201221657p:plain

グリッドサーチによるハイパーパラメータチューニングもサポートしています.

f:id:canard0328:20181201222249p:plain

さいごに

MALSS interactiveはできたばかりなので,いろいろご意見いただけると嬉しいです.
また,ただいま評価実験に協力していただける方を絶賛募集中ですので,機械学習の勉強をはじめたばかりの方で,協力してやってもよいという方はぜひご連絡ください*1

*1:このブログへのコメント,Twitter,MLSEのSlackなどでご連絡ください