「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>ビジネス インテリジェンス(BI)]]
--[[CRISP-DM>データマイニング(DM)- CRISP-DM]]
--[[Excel>データマイニング(DM)- Excel]]
--KNIME
--[[Python>データマイニング(DM)- Python]]
--[[Python - DL>データマイニング(DM)- Python - DL]]
--[[DataSet>データマイニング(DM)- DataSet]]

*目次 [#u1d0537d]
#contents

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

*詳細 [#n538fd5d]

**インストレーション [#l904fcf3]

***ダウンロード [#h1ab3581]
-Downloads | KNIME~
https://www.knime.com/downloads

***インストール [#a459e131]
インストーラを起動して、~
既定値でインストール

**基本操作 [#ea01d599]

***起動 [#v0399668]
インストール後、スタート・メニューから起動。

***ワークスペース設定 [#q7fb93a9]
「Select a directory as workspace」ダイアログの「Workspace:」欄に、~
任意の作業用フォルダを指定して「Launch」ボタンを押下する。

***ワークフロー作成 [#nb5088ae]
-「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>データマイニング(DM)- DataSet]]
 
**[[CRISP-DM>データマイニング(DM)- CRISP-DM]]上で利用 [#m4f20a9c]

***データの理解 [#q67fd46c]
-[[ワークフロー作成>#nb5088ae]]で説明した手順で、~
[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]ボタンを押下することで、~
計算した[[さまざまな統計量>データ分析#m39119c4]]や[[ヒストグラム>統計解析#pa9def8e]]を確認する。

-欠損率の計算と確認

--[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]ボタンを押下することで、計算した欠損率を確認できる。

-[[可視化>データ分析#v5084e84]]

--[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: ノード名]ボタンを押下することで、可視化の結果を確認できる。

***データの準備 [#gd2c048a]

-データのクリーニング

--[[ワークフロー作成>#nb5088ae]]で説明した手順で、~
[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]上の各ノードを右クリックし、~
該当ボタンを押下することでデータ統合の結果を確認できる。

***モデリング [#d2529d5a]
-[[回帰分析>#zaaa118d]]
-[[決定木分析>#y04dd96f]]
-[[主成分分析>#pec69f67]]
-[[ニューラルネットワーク>#i0d32be1]]
-[[ロジスティック回帰>#eda5bdce]]
-[[クラスタ分析>#b22dfd62]]
-[[アソシエーション分析>#p7740437]]

***評価 [#dca8175f]
モデル毎に確認する項目の確認を行う。

***展開 [#g9f945be]
作成したワークフローを保存して展開。

**手順(モデリング) [#w9c5c2c1]

***[[回帰分析>統計解析#xc0279dd]] [#zaaa118d]
-ノードを以下のように結線する(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)を確認する。

***[[決定木分析>統計解析#lcaf7a28]] [#y04dd96f]

-ノードを以下のように結線する。
 [File Reader] ─> [Decision Tree Learner] ─> [Decision Tree Learner Predictor] ─> [Scorer]
          └────────────────────┘

-其々、以下のように設定を行う。
--[File Reader]:データの読み込み。
--[Decision Tree Learner]:~
目的変数を選択し[min number records per node]=10を設定。
--[Decision Tree Learner Predictor]:設定不要
--[Scorer]:実測値列と予測値列を設定

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

***[[主成分分析>統計解析#f800acad]] [#pec69f67]

-ノードを以下のように結線する。
 [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]で結果を確認する。

***[[ニューラルネットワーク]] [#i0d32be1]

-ノードを以下のように結線する。
 [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]は高いが、ブラックボックスなので確認ポイントは少ない。

***[[ロジスティック回帰>統計解析#ge055200]] [#eda5bdce]

-ノードを以下のように結線する。
 [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]から「オッズ比」を確認する。

***[[クラスタ分析>統計解析#df844c06]] [#b22dfd62]

-ノードを以下のように結線する。
 [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]で可視化。~
(他の分析で)影響度の低かった説明変数から影響度の高かった説明変数~
の順に分類される流れが可視化されていることを確認できる。

***[[アソシエーション分析>データ解析#wec1e143]] [#p7740437]

-ノードを以下のように結線する。
 [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 [#x3bdbb94]

*参考 [#w8d42b2b]

**日立産業制御ソリューションズ [#vd9e60b8]
-[AI&ビッグデータ]分析モデリングツール「KNIME」~
https://info.hitachi-ics.co.jp/product/d_value/knime.html
-KNIMEワークフローの作り方 ビギナー向けチートシート~
https://info.hitachi-ics.co.jp/product/d_value/images/KNIME_CheatSheet_Beginner_A3_Web_Jap_v3.pdf

**日経クロステック(xTECH) [#i173ff54]
-無料ツールで始めるデータ分析入門~
https://info.hitachi-ics.co.jp/product/d_value/knime.html
--第1回 「業務のプロ」がデータ分析をすべき理由~
https://xtech.nikkei.com/atcl/learning/lecture/19/00077/00001/
--第2回 KNIMEで分析を始めよう~
https://xtech.nikkei.com/atcl/learning/lecture/19/00077/00002/
--第3回 データの傾向を理解する~
https://xtech.nikkei.com/atcl/learning/lecture/19/00077/00003/
--第4回 分析のためにデータを加工する~
https://xtech.nikkei.com/atcl/learning/lecture/19/00077/00004/
--第5回 モデルを作成し、評価する~
https://xtech.nikkei.com/atcl/learning/lecture/19/00077/00005/

**KNIME(インフォコム) [#sbe5ec9b]

***【導入ガイド】 [#b6c3381f]
-ダウンロードする~
https://knime-infocom.jp/service/knime-analytics-platform/guide/download/
-インストールする~
https://knime-infocom.jp/service/knime-analytics-platform/guide/install/
-ワークフローをつくる~
https://knime-infocom.jp/service/knime-analytics-platform/guide/work-flow/
-エクステンションの追加~
https://knime-infocom.jp/service/knime-analytics-platform/guide/extension/

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

**KNIME [#m1c468d1]
-Downloads~
https://www.knime.com/downloads
-KNIME Getting Started Guide~
https://www.knime.com/getting-started-guide
-KNIME Learning~
https://www.knime.com/learning
-KNIME Hub~
https://hub.knime.com/

**YouTube [#s54aa4b5]

***KNIMETV [#p03a5b9d]
https://www.youtube.com/user/KNIMETV

***KNIME-infocom [#y2d2b601]
https://www.youtube.com/channel/UCHfsNqOaJ9NYf7zNqxV_b0A

-KNIME Analytics Platformのインストール手順~
https://www.youtube.com/watch?v=GJSVWzHePxo

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS