「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>ビジネス インテリジェンス(BI)]] -[[戻る>BI / AI]] --[[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