Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

はじめに

誰向けの記事か

本記事は、コーディングなんてしたことないけど、Random ForestとかSVMとか使ってみたい!という方向けの記事です。精度より結果を出すことに意義がある、経営企画、ビジネスコンサルの方など向けです。

実施事項

スロベニア出身の機械学習OSS、OrangeをWindows7にインストールし、UCIのAdultデータセットを用い、様々な人の属性から、年収が5万ドル以上か?5万ドル未満か?を判定する分類器を作成し、評価を行います。
Orangeでなにができるか、というのだけ知りたければ、ここにOrangeを使った分析と可視化のスクリーンショットがまとまっていますので、そちらへGo。

手順

インストール

OrangeのサイトからDLし、インストールします。簡単。

起動

アイコンをクリックするだけ。簡単。

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

1 ワークフロー作成

起動すると、以下の画面が出ます。
開始.PNG

Newをクリックし、新規ワークフローを作成します。

WFname.PNG

ワークフローの名前を求められるので、適当に入力してください。
すると、ワークフロー作成のためのキャンバスができます。
canvas.PNG

2 データ入力

左側のタブの、Dataをクリックします。
data.PNG

Fileからデータ入力ができるので、Fileをクリック。
file.PNG

キャンバスにFileノードが置けたので、キャンバスのFileノードをダブルクリックしてみましょう。
selectfile.PNG

Adultデータセットはすでに目的変数が指定された形で読み込まれました。
このデータセットは元々Orangeの中に収納されていたものなので、他のデータセットで教師あり学習を行う場合は、目的変数を指定する必要があります。
その場合は、Dataタブの中の、Select Columnsノードで指定してください。

3 グラフ化

visualize.PNG

とりあえずデータの全体像を把握しましょう。DistributionノードをクリックしてFileノードとつなげ、
wire.PNG

Distributionノードをダブルクリックすると、以下の様な分布図が出ます。

graph.PNG

データにおかしな点がないか、グラフィカルに確認できます。

4 クラスタリング

classfy.PNG

今回はチューニングに慣れているRandom Forestを選択。

wire2.PNG

Random Forest Classificationをダブルクリック
RF.PNG
こちらの画面でチューニングが可能です。初期状態はチェックボックスが空なものもあります。
分析の再現性を担保するため、Fixed seed for random generatorは必ずチェックを入れて入力しておいてください。

5 評価

evaluate.PNG

Test&Scoreを選びます。

testandscore.PNG

Fileノードからはデータが、Random Forest ClassificationノードからはLearnerというモデルの設定が流れ、Test&Scoreノードに入ります。

Test&Scoreノードをダブルクリックすると、
T&S.PNG

モデルの評価方法を左側で選ぶことができ、右にTrainされたモデルのスコアが出ます。この中の例えばAUCを上げたいのか、Precisionを上げたいのかを判断しつつ(用途によって違うと思いますので)Random Forest Classificationの画面でチューニングを繰り返します。

6 評価結果のグラフ化

では、モデルの評価を可視化してみましょう。Evaluateタブから、ROC AnalysisとConfusion Matrixを選びます。
ROC.PNG

ROCノードをダブルクリックしてでたROCカーブがこちら。
ROCgraph.PNG

Confusion Matrixがこちら。
CFM.PNG

7 予測結果と実際の値の比較

EvaluateタブからPredictionsノードを置き、Fileノードからデータを、Random Forest Classificationノードからモデルを流し込みます。
prediction2.PNG

すると、Predictionノードで、予測値(何%の確率で分類したのか)と実際の値を並べて見ることができます。ここで不正解のデータに対して、何が理由で不正解になっているかなどを考えることもできます。
Predictions.PNG

8 寄与度

Dataタブにある、Rankノードを置き、Test&Scoreノードとつなぎます。
RANK2.PNG

Rankノードをダブルクリックすると、以下の様な各説明変数の予測に対する寄与度が表示されます。

RANK.PNG

ここでも様々な指標が用意されていますので、用途にあったもので評価してください。

9 保存

モデルは.pkclsという拡張子で、フローは.owsという拡張子でしか保存できません。他の汎用的なプログラミング言語への変換はできないようです。(できる方は教えて下さい)

save.PNG

しかし、先ほどの予測結果と実際の値を並べたものなど、データセット系はSave Dataノードで.csvや.tsvなど各種形式で保存できます。

最後に

機械学習や分析というとエクセルの次はRかPythonだという風潮があります。
もちろんRもPythonも素晴らしいし使いこなせれば無敵なのかもしれませんが、使いこなすまでに学習しなければならないことがとても多い上に、理論をわからずに使って間違った答えが出る、などの手戻りが発生する確率がとても高いです。
そういった言語はゆっくり習得するとして、当座の分析結果はこれくらいでいいよ、という方も多いのではないかと思いこの記事を書きました。
機械学習をしてみたいけど勉強する時間がないという方は、Orangeや次にご紹介予定のKNIMEあたりからスタートするのも選択肢としてアリなのではないでしょうか。

junkonakajima
生きやすくしたい
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした