LoginSignup
56
76

More than 5 years have passed since last update.

非プログラマのための機械学習ツールKNIMEのご紹介

Posted at

はじめに

誰向けの記事か

本記事は 前回のOrange紹介記事と同じく、非プログラマだけど機械学習してみたい、しなきゃいけない!という方のための記事です。Orangeより今回ご紹介するKNIMEの方が機能がリッチ、かつマシンパワーが必要なので、マシンスペックに自信のある方は是非こちらをお試しください。

実施事項

ドイツ出身の機械学習OSS、KNIMEをWindows7にインストールし、UCIのAdultデータセットを用い、様々な人の属性から、年収が5万ドル以上か?5万ドル未満か?を判定する分類器を作成し、評価を行います。

手順

ダウンロード

KNIMEのダウンロードサイトに行き、各入力項目に入力し、Submit & Downloadしてください。今回は、KNIME Analytics Platform + all free extensions for Windows (installer)を使ってインストールします。1.48 GBあるので、(64bit版)ダウンロードに少々時間がかかる場合があります。

インストール

.exeファイルを実行するといろいろ聞いてきますが、デフォルト設定でとりあえずはインストールしてください。

起動

インストール後に起動するか聞いてきますので、起動。Workspaceをどこに置くか聞かれますが、デフォルトでOK。(社員番号だけ塗りつぶしています)
キャプチャ.PNG

すると、こんな画面が現れます。
開始画面.PNG

クラスタリングフロー作成

1 新規ワークフローキャンバス作成

Ctrl+Nで新規ワークフローのためのキャンバスが作成できます。名前は今回はTESTとしておきます。

2 データの読み込み

File_reader.PNG

左下のNode RepositoryからIO>Readを選び、File Readerを選択します。キャンバスにドラッグ・アンド・ドロップで、

キャンバス1.PNG

このように置けますので、ダブルクリック。

Adult読み込み.PNG

UCIのAdultデータセットのURLを入れ、Column delimiterをコンマに設定すると、データが読み込まれます。URLから読み込むとColumn Nameが入らないので今回は手動で変更。OKを押します。

3 データの可視化

VIEW.PNG

Node RepositoryからViewsを選び、データの全体感を見るため、Histogram(interactive)を選択、キャンバスにドラッグ・アンド・ドロップします。

キャンバス2.PNG

Histogramノードをダブルクリックすると、
VIEW2.PNG

このような画面が。ここで、Display all rowsにチェックを入れ、OKをクリック。
キャンバスに戻ってHistogramノードを右クリックし、Execute and Open Viewsボタンをクリックします。
VIEW3.PNG

下のタブでセッティングを色々変えられるので、データに異常がないかチェックできます。

4 モデル作成

Node RepositoryのAnalytics>Miningグループを見ると、様々なモデリング手法が用意されていることがわかります。その中で、今回はシンプルなDecision Treeを選択してみます。

DT1.PNG

その前に、Cross Validationの準備をしなければいけないので、

CV1.PNG

ScoringのなかにあるCross ValidationからX-Partitionerノードを選択し、キャンバスに置きます。ダブルクリックすると、以下のダイアログが現れます。
CV2.PNG
ランダムシードを適当に入力します。

そして、先程のDecition Tree LeanerとDecition Tree Predictorをキャンバスに置き、
キャンバス5.PNG

ダブルクリックすると、以下のダイアログが現れます。
DT2.PNG

ここで、Target ColumnがしっかりTargetになっていることを確認。Tuningもここでできます。
OKをクリックし、Decision Tree Learnerノードを右クリックしExecuteします。終わったら、Decision Tree Predictorノードを同じようにExecute。

Predictionまで終了後、Predictorノードを右クリックすると、Classified Dataが見られます。
結果1.PNG

5 モデル評価

モデルの評価をしましょう。Node Repositoryから、Scorerを選びます。
scorer.PNG
これをキャンバスに置き、Predictorノードとつなぎます。
キャンバス6.PNG
Scorerノードをダブルクリックすると、
scorer2.PNG
Second Columnの入力を求められるので、Prediction(target)を選択。OKをクリックして、Execute。

終了後、右クリックをすると、Confusion MatrixとAccuracy statisticsが見られますので、見てみます。
まずConfusion Matrix。
CM.PNG

Accuracy statisticsがこちら。
ACR.PNG

こちらを見ながらTuningするなり、モデリング手法を変えるなりして、良い分析結果まで導きましょう。

最後に

Orangeとの比較

前回の記事で使ったOrangeよりも、機能がリッチで本格的な印象です。かつ、モデリング手法が豊富です。NNまであります。ループ処理などもできますし、ワークフローをまとめて一つのノードにしてしまうことも可能です。javaもRもPythonも書けるので、いざという時にも安心です。
しかし、最初この記事もXGboostを使って書く予定だったのですが、うまくClassificationしてくれず、途中で手法をDecision Treeに変えました。KNIMEの方が、見えない難しさが潜んでいるのは間違いないです。
ワークフローの汎用言語への変換は今回も見つからず。できる方は教えてください。

結論

お手軽感を求めるならOrangeの方がおすすめで、色々弄り倒したい方にはKNIMEがおすすめ。他にこんなOSS知ってるよ!という方は是非ご連絡ください。

56
76
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
76