BLOG

シンラボメンバーのあれこれ

  1. HOME
  2. ブログ
  3. 代表通信
  4. 5/21 代表勉強通信~話題のオープンソースのデータ分析用ソフトKNIME

5/21 代表勉強通信~話題のオープンソースのデータ分析用ソフトKNIME

こんばんは。代表の草場です。

KNIMEを使い始めました。ドイツのコンスタンツ大学で作られたオープンソースのデータ分析用ソフトで、グラフィカルな部品をマウス操作で組み合わせることで、データ分析の一連の流れを実行できます。しかも無料です。

まず公式サイトからダウンロードです。インストール完了して立ち上げると、以下の画面が立ち上がります。

Fileボタンの下にあるボタンをクリックすると新しいworkflowを作成する画面になるので、適当な名前を付けてfinish押すと、workflowが立ち上がります。

今回はUCIのAdultデータセットを用い、年収が5万ドル以上か、5万ドル未満か、を判定する分類器を作成します。
まず、UCIのここから、adult.dataをダウンロードします。File Readerを使って、データを読み込みます。左の検索バーで、「File Reader」で検索すると、出てきます。それをクリックして、右のマス目がある画面にドラッグアンドドロップします。

始めはアイコンに赤信号マークがついています。アイコンをダブルクリックすると、以下の画面が出ます。

Browseでadult.dataを選ぶと、、

出ました。
今回のデータファイルはCSV形式ですが、「Column delimiter」を見ると、勝手にカンマが選ばれてます。カラム行を見ると、Col0とかCol1とかになっていますね。ここは自分で変えられるそうです。今回はこのままいきます。Apply→OK。これでデータの読み込みは完了。
アイコン上で右クリック→Executeすると、緑信号に代わります。

またアイコン上で右クリック→「File Table」を選ぶと、読み込めていることが確認できます。

ここから、学習にに入ります。学習する際、過学習を防ぐために様々なテクニックを用います。今回は交差検証(Cross Validation)をします。検索バーで「Cross Validation」と検索。「X-Partitioner」と「X-Aggregator」が出てきます。公式の解説を読むと、X-Partitionerを使うっぽいので、ドラッグアンドドロップ。その後、まずFile ReaderとX-Partitionerを線で結びます。

そして、X-Partitionerをダブルクリック。すると交差検証のさまざまなオプションが出てきます。とりあえず交差検証の分割数はデフォルトの10に、Random Seed設定しないと揺れるので、128に設定しました。Apply→OKで準備完了。X-Partitionerアイコン上で右クリック→Executeで、交差検証実施。

モデルには、今回はDecision Treeを使ってみます。検索バーに「Decision」と打つと、Decision Tree関連のアイコンが出てきます。トレーニングして予測、という流れなので、「Decision Tree Learner」と「Decision Tree Predictor」を選択してドラッグアンドドロップ。
X-Partitionerには出口に二つの矢印があります。上の矢印とDecision Tree Learnerを、下の矢印とDecision Tree Predictorを線でつなぎます。交差検証の一部をトレーニングに、他をテストに使うというテクニックです。
さらに、Decision Tree LearnerとDecision Tree Predictorを繋いでトレーニング→予測というフローが完成です。

そして、Decision Tree Learnerをダブルクリック。以下の画面が出ます。

データを読み込ませる際、列の名前をそのままにしておいたので非常に分かりづらいですが、Class Columnがターゲットです。今回はすべてデフォルトで、Apply→OK。そして、Decision Tree Learnerアイコン上で右クリック→Execute。これで学習が完了です。
次に、Decision Tree Predictorアイコン上で右クリック→Executeします。これで予測が完了。Decision Tree Predictorアイコン上で右クリック→Classified Dataを見ると、以下の形で予測結果が表示されます。

Predicted列が、予測結果です。

最後にモデルの評価をします。Scorerで検索。そのScorerをドラッグアンドドロップ。Decision Tree PredictorとScorerを繋ぎます。

Scorerアイコンダブルクリックすると以下が出ます。

この例の場合はCol14とPredictionを使って評価するので、Second ColumnはPredictionにします。Apply→OK。そして、Scorerアイコン上で右クリック→Execute。これで評価完了。この際、Scorerアイコン上に!マークが出ます。エラーを見ると、欠損値があるよということらしいです。いったん無視してScorerアイコン上で右クリック。評価方法として「Confusion Matrix」と「Accuracy Statics」があります。今回はConfusion Matrix(混合行列)を選びました。

ふむふむ。

直感的で使いやすいと思われるので、他のデータ、モデルでも試してみます。

 

関連記事