Skip to content

DNET_DataMiningKNIME

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

データマイニング(DM)- KNIME

概要

  • ドイツのコンスタンツ大学で作られたOSS
  • 分析、レポート、および統合プラットフォーム。
  • GUI、データ分析の一連の流れを実行できる。
  • 日本語版は無いため表記は英語。

詳細

インストレーション

ダウンロード

インストール

インストーラを起動して、
既定値でインストール

基本操作

起動

インストール後、スタート・メニューから起動。

ワークスペース設定

「Select a directory as workspace」ダイアログの「Workspace:」欄に、
任意の作業用フォルダを指定して「Launch」ボタンを押下する。

ワークフロー作成

  • 「KNIME Explorer」の「Local (Local Workspace)」を右クリックし「New KNIME Workflow」を選択

  • 「New KNIME Workflow Wizard」ダイアログの「Name of the workflow to create:」欄に、
    任意のプロジェクト名を入力して「Finish」ボタンを押下する。

  • 最も基本的な操作として、ファイルの読み込みを行う。

    • [Node Repository]の検索窓に[File]と入力し[File Reader]を検索する。
    • [File Reader]を[Workflow Editor]に [D & D] する。
    • [Workflow Editor]上の[File Reader]をダブルクリックする。
    • [File]欄にファイル・パスを指定して[OK]ボタンを押下する。
    • [Workflow Editor]上の[File Reader]を右クリックし、
      • 実行ボタンを押下することで、読み込みが完了する。
      • [File Table]ボタンを押下することで、読み込みを確認する。

※ Sample DataSet

CRISP-DM上で利用

CRISP-DM

データの理解

  • ワークフロー作成で説明した手順で、
    [Workflow Editor]上にNumericとNormalの列を持つ
    データを読み込んだ[File Reader]が存在すること。

  • 基本統計量の計算と確認

    • [Node Repository]の検索窓に[Stat...]と入力し[Statistics]を検索する。

    • [Statistics]を[Workflow Editor]に [D & D] する。

    • [Workflow Editor]上の

      • [File Reader]と[Statistics]を結線する。
      • [Statistics]をダブルクリックする。
    • (NumericとNormalの)設定を確認して[OK]ボタンを押下する。

    • メニューの実行ボタンを押下して統計量を計算する。

    • [Workflow Editor]上の[Statistics]を右クリックし、
      [View: Statistics View]ボタンを押下することで、
      計算したさまざまな統計量(データ分析の該当節を参照)や ヒストグラム(統計解析の該当節を参照)を確認する。

  • 欠損率の計算と確認

    • [Node Repository]の検索窓に[Math]と入力し[Math Formula]を検索する。

    • [Math Formula]を[Workflow Editor]に [D & D] する。

    • [Workflow Editor]上の

      • [Statistics]の一番上の出力[▶]
        (Statistics Table)と[Math Formula]を結線する。

      • [Math Formula]をダブルクリックして設定を行う。

    • 以下の設定を行い、

      • [Expression]に以下を設定して、

        ($No. missings$ / $$ROWCOUNT$$) * 100
        
      • [Add column]欄にカラム名として「欠損率」を入力する。

    • [OK]ボタンを押下する。

    • メニューの実行ボタンを押下して欠損率を計算する。

    • [Workflow Editor]上の[Math Formula]を右クリックし、
      [Output data]ボタンを押下することで、計算した欠損率を確認できる。

  • 可視化(データ分析の該当節を参照)

    • [Node Repository]の検索窓に

      • [Color]と入力し[Color Manager]を検索する。
      • [Scatter]と入力し[Scatter Plot]を検索する。
      • [Pie]と入力し[Pie Chart]を検索する。
      • [Conditional]と入力し[Conditional Box Plot]を検索する。
      • [Histo]と入力し[Histogram]を検索する。
      • [Line]と入力し[Line Plot]を検索する。
    • 上記のノードを其々、[Workflow Editor]に [D & D] する。

    • [Workflow Editor]上の

      • ノードを以下のように結線する。
        ・NumericとNormalの列を持つデータを読み込んだ[File Reader]

        [File Reader] ┬> [Color Manager] ┬> [Scatter Plot]
                      │                  └> [Pie Chart]
                      ├> [Conditional Box Plot]
                      └> [Histogram]
        

        ・時系列の列を持つデータを読み込んだ[File Reader]
         (読み込み前に[Has row ID]をチェックしておく)

        [File Reader] ─> [Line Plot]
        
      • 各ノードをダブルクリック、若しくは右クリックし、
        [View: ノード名]ボタンを押下して設定を行う。

    • 其々、以下のように設定を行う。

      • [Color Manager]:カテゴリ列の値毎の色を設定
      • [Scatter Plot]:[Column Selection]で列を選択
      • [Pie Chart]:Pie と Aggregation の Columnを設定
      • [Conditional Box Plot]:Numeric と Normal の Columnを設定
      • [Histogram]:Binning と Aggregation の Columnを設定
      • [Line Plot]:[Column Selection]で列を選択
    • ...し[OK]ボタンを押下し、各ノードの設定画面を閉じ、
      メニューの実行ボタンを押下して計算する。

    • [Workflow Editor]上の各ノードを右クリックし、
      [View: ノード名]ボタンを押下することで、可視化の結果を確認できる。

データの準備

  • データのクリーニング

    • ワークフロー作成で説明した手順で、
      [Workflow Editor]上にNumericとNormalの列を持つ
      欠損値を持つデータを読み込んだ[File Reader]が存在すること。

    • [Node Repository]の検索窓に

      • [Filter]と入力し
        ・[Row Filter]を検索する。
        ・[Rule-based Row Filter]を検索する。
        ・[Column Filter]を検索する。

      • [Parti...]と入力し[Partitioning]を検索する。

    • 上記のノードを其々、[Workflow Editor]に [D & D] する。

    • [Workflow Editor]上の

      • ノードを以下のように結線する。

        [File Reader] ┬> [Row Filter] ─> [Rule-based Row Filter]
                      └> [Partitioning] ─> [Column Filter]
        
      • 各ノードをダブルクリックして設定を行う。

    • 其々、以下のように設定を行う。

      • [Row Filter]:行のフィルタ方法を指定
      • [Rule-based Row Filter]:行のフィルタ方法を[Expression]で指定
      • [Partitioning]:パーティショニング方法を指定
      • [Column Filter]:列のフィルタ(射影)を指定
    • ...し[OK]ボタンを押下し、各ノードの設定画面を閉じ、
      メニューの実行ボタンを押下してフィルタリング・パーティショニングする。

    • [Workflow Editor]上の各ノードを右クリックし、
      [Filtered ...]や[... partition]ボタンを押下することで、
      フィルタリング・パーティショニングの結果を確認できる。

  • データの構築

    • 前述の手順で、[Workflow Editor]上にNumericとNormalの列を持つ
      欠損値を持たないデータを読み込んだ[File Reader]が存在すること。

    • [Node Repository]の検索窓に

      • [Binner]と入力し
        ・[Auto-Binner]を検索する。
        ・[Numeric Binner]を検索する。

      • [Norm...]と入力し[Normalizer]を検索する。

      • [Denorm...]と入力し[Denormalizer]を検索する。

    • 上記のノードを其々、[Workflow Editor]に [D & D] する。

    • [Workflow Editor]上の

      • ノードを以下のように結線する。

        [File Reader] ┬> [Auto-Binner]
                      ├> [Numeric Binner]
                      └> [Normalizer] -> [Denormalizer]
        ※ [Normalizer] ─> [Denormalizer]は、交差するように結線
        
      • 各ノードをダブルクリックして設定を行う。

    • 其々、以下のように設定を行う。

      • [Auto-Binner]:対象列と分割方法を設定
      • [Numeric Binner]:対象列と分割の数値範囲を設定
      • [Normalizer] :対象列と値の範囲を設定(0-1)
      • [Denormalizer]:特にナニも指定せず。
    • ...し[OK]ボタンを押下し、各ノードの設定画面を閉じ、
      メニューの実行ボタンを押下してデータを構築する。

    • [Workflow Editor]上の各ノードを右クリックし、
      [Binned ...]や[Normalized table] / [Denormalized output]
      ボタンを押下することでデータ構築の結果を確認できる。

  • データの統合

    • 前述の手順で、[Workflow Editor]上にNormalの列を持つ、
      結合可能なデータを読み込んだ2つの[File Reader]が存在すること。

    • [Node Repository]の検索窓に

      • [Join...]と入力し[Joiner]を検索する。
      • [One...]と入力し[One to Many]を検索する。
    • 上記のノードを其々、[Workflow Editor]に [D & D] する。

    • [Workflow Editor]上の

      • ノードを以下のように結線する。

        [File Reader] ┬> [Joiner] ─> [One to Many]
        [File Reader] ┘
        
      • 各ノードをダブルクリックして設定を行う。

    • 其々、以下のように設定を行う。

      • [Joiner]:結合のキーを設定
      • [One to Many]:フォーマット変換列を設定
    • ...し[OK]ボタンを押下し、各ノードの設定画面を閉じ、
      メニューの実行ボタンを押下してデータを統合する。

    • [Workflow Editor]上の各ノードを右クリックし、
      該当ボタンを押下することでデータ統合の結果を確認できる。

モデリング

評価

モデル毎に確認する項目の確認を行う。

展開

作成したワークフローを保存して展開。

手順(モデリング)

回帰分析

回帰分析については統計解析の該当節を参照。

  • ノードを以下のように結線する(1)

    [File Reader] ─> [Column Filter] ─> [Linear Regression Learner] ─> [Regression Predictor] ─> [Numeric Scorer]
                                 └──────────────────────┘
    
  • 其々、以下のように設定を行う(1)

    • [File Reader]:データの読み込み。
    • [Column Filter]:列のフィルタリング
    • [Linear Regression Learner]:目的変数と説明変数を設定。
    • [Regression Predictor]:設定不要
    • [Numeric Scorer]:実測値列と予測値列を設定
  • Workflowを実行して、結果を確認する(1)

    • [Linear Regression Learner]:
      [View: Linear Regression Result View]で係数、t、P値などを確認する。
    • [Regression Predictor]:[Predicted data]から予測結果を確認する。
    • [Numeric Scorer]:[Statistics]から決定係数(R2)を確認する。
  • ノードを以下のように結線する(2)

    [File Reader] ─> [Column Filter] ─> [Normalizer] ─> [Linear Regression Learner] ─> [Regression Predictor] ─> [Numeric Scorer]
                                                  └──────────────────────┘
    
  • [Normalizer]に全列の値をZ標準化に設定する(2)

  • Workflowを実行して、結果を確認する(2)

    • [Linear Regression Learner]:
      [View: Linear Regression Result View]で係数、t、P値などを確認する。
      Z標準化によって、最も、影響の強い説明変数が明らかになる。
    • [Regression Predictor]:[Predicted data]から予測結果を確認する。
    • [Numeric Scorer]:[Statistics]から決定係数(R2)を確認する。

決定木分析

決定木分析については統計解析の該当節を参照。

  • ノードを以下のように結線する。

    [File Reader] ─> [Decision Tree Learner] ─> [Decision Tree Predictor] ─> [Scorer]
             └────────────────────┘
    
  • 其々、以下のように設定を行う。

    • [File Reader]:データの読み込み。
    • [Decision Tree Learner]:
      目的変数を選択し[min number records per node]=10を設定。
    • [Decision Tree Predictor]:設定不要
    • [Scorer]:実測値列と予測値列を設定
  • Workflowを実行して、結果を確認する。

    • [Decision Tree Learner]:[View: Decision Tree View]から予測モデルを確認する。
    • [Decision Tree Predictor]:[View: Decision Tree View]から予測結果を確認する。
    • [Scorer]:[View: Confusion matrix]から混同行列や[Accuracy]を確認する。

主成分分析

主成分分析については統計解析の該当節を参照。

  • ノードを以下のように結線する。

    [File Reader] ─> [Normalizer] ─> [PCA] ┬> [PCA Compute]
                                             └> [Linear Correlation]
    
  • 其々、以下のように設定を行う。

    • [File Reader]:データの読み込み。
    • [Normalizer]:全列の値をZ標準化に設定する。
    • [PCA]:次元数を4(Numeric列数と同じ)に設定する。
    • [PCA Compute]:追加された列を削除する。
    • [Linear Correlation]:設定不要
  • Workflowを実行して、結果を確認し、再設定・実行・確認する。

    • [PCA Compute]:[Spectral decomposition]から、最適な次元を確認、
    • [PCA]:次元数を再設定してWorkflowを再実行する。
    • [Linear Correlation]:[Correlation matrix]で結果を確認する。

ニューラルネットワーク

ニューラルネットワーク

  • ノードを以下のように結線する。

    [File Reader] ─> [Normalizer] ─> [RProp MLP Learner] ─> [MultiLayerPerceptron Predictor] ─> [Scorer]
                             └────────────────────┘
    
  • 其々、以下のように設定を行う。

    • [File Reader]:データの読み込み。
    • [Normalizer]:全列の値の範囲(0-1)
    • [RProp MLP Learner]:
      目的変数を選択し[Number of hidden layers]=2を設定。
    • [MultiLayerPerceptron Predictor]:設定不要
    • [Scorer]:実測値列と予測値列を設定
  • Workflowを実行して、結果を確認する。
    [Scorer]:

    • [View: Confusion matrix]から混同行列や[Accuracy]を確認する。
    • [Accuracy]は高いが、ブラックボックスなので確認ポイントは少ない。

ロジスティック回帰

ロジスティック回帰については統計解析の該当節を参照。

  • ノードを以下のように結線する。

    [File Reader] ─> [One to Many] ─> [Column Filter] ─> [Number To String]
        ┌──────────────────┬───────────┘
    [Logistic Regression Learner] ┬> [Logistic Regression Predictor] ─> [Scorer]
                                  └> [Math Formula]
    
  • 其々、以下のように設定を行う。

    • [File Reader]:データの読み込み。

    • [One to Many]:Normal列を指定しフォーマット変換(展開)

    • [Column Filter]:説明変数のフィルタリング、展開したNormal列を1つにフィルタリング

    • [Number To String]:展開したNormal列の値を文字列型に変換

    • [Logistic Regression Learner]:目的変数と説明変数を設定。

      • [Reference category]に「0」を設定する。
      • また[Advanced]タブで学習の試行サイクルを20,000に設定する。
    • [Logistic Regression Predictor]:設定不要

    • [Scorer]:実測値列と予測値列を設定

    • [Math Formula]:[Expression]に以下を設定して、
      [Add column]欄にカラム名として「オッズ比」を入力する。

      exp($Coeff.$)
      
  • Workflowを実行して、結果を確認する。

    • [Logistic Regression Learner]:[Coefficients and Statistics]で係数、t、P値などを確認する。
    • [Logistic Regression Predictor]:[Predicted data]から予測結果を確認する。
    • [Scorer]:[View: Confusion matrix]から混同行列や[Accuracy]を確認する。
    • [Math Formula]:[Output data]から「オッズ比」を確認する。

クラスタ分析

クラスタ分析については統計解析の該当節を参照。

  • ノードを以下のように結線する。

    [File Reader] ─> [Normalizer] ─> [k-Means] ─> [Color Manager] ─> [Parallel Coordinates]
    
  • 其々、以下のように設定を行う。

    • [File Reader]:データの読み込み。
    • [Normalizer]:対象列(全列)と値の範囲を設定(0-1)
    • [k-Means]:クラスタ数(初期値:3)と対象列(全列)を設定。
    • [Color Manager]:クラスタの色分けを設定
    • [Parallel Coordinates]:特にナニも指定せず。
  • Workflowを実行して、結果を確認する。

    • [Parallel Coordinates]:[View: Parallel Coordinates]で可視化。
      (他の分析で)影響度の低かった説明変数から影響度の高かった説明変数
      の順に分類される流れが可視化されていることを確認できる。

アソシエーション分析

アソシエーション分析についてはデータ解析の該当節を参照。

  • ノードを以下のように結線する。

    [File Reader] ─> [Create Collection Column] ─> [Association Rule Learner] ─> [Rule-based Row Filter]
    
  • 其々、以下のように設定を行う。

    • [File Reader]:データの読み込み。

    • [Create Collection Column]:特にナニも指定せず(全列を集約したカラムが追加)。

    • [Association Rule Learner]:

      • 支持度の最小値:0.1(Minimum support (0-1))
      • 確信度の最小値:0.1(Minimum confidence)
    • [Rule-based Row Filter]:
      以下の[Expression]で[Consequent]行をフィルタ

      $Consequent$ = "Yes" => TRUE
      $Consequent$ = "No" => TRUE
      
  • Workflowを実行して、結果を確認する。
    [Rule-based Row Filter]:[Filtered]から結果を確認

    • Liftでソート
    • Lift値が2以上のモノが共起性が高いと言える。

Extension

(元 Wiki では未記載)

参考

日立産業制御ソリューションズ

日経クロステック(xTECH)

KNIME(インフォコム)

【導入ガイド】

日本語化

【Ver4.4対応版】
KNIMEのノード名(Node Repository)および、
ノード説明書き(Description)を日本語化する
https://knime-infocom.jp/blog/knime-japanese44/

KNIME

YouTube

KNIMETV

https://www.youtube.com/user/KNIMETV

KNIME-infocom

https://www.youtube.com/channel/UCHfsNqOaJ9NYf7zNqxV_b0A

移行メモ

  • 決定木分析のノード名「Decision Tree Learner Predictor」は、 同節の結果確認の記述および KNIME の実際のノード名と整合しないため 「Decision Tree Predictor」に修正した。
  • 参考の「日経クロステック(xTECH) - 無料ツールで始めるデータ分析入門」に 日立産業制御ソリューションズの URL が記載されていた(コピー&ペーストの 誤りと思われる)ため、URL を除去して各回のリンクのみを残した。
  • 本文の無い見出し「Extension」には未記載である旨を明示した。
  • PukiWiki のページ内アンカ(#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名 の該当節を参照)」の形に置き換えた。

Tags: 移行, データマイニング, KNIME, GUI, ワークフロー, CRISP-DM, 回帰分析, 決定木, クラスタ分析

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally