はじめに
超重要Nodeです!紹介するのをすっかり忘れていました。今回は欠損値を処理するNode、"Missing Value"を扱いたいと思います。
今回のテーマ ~Missing Value~
workflowは下記からダウンロードできます
覚えてほしいこと
Default は一括設定、Column settingは個別設定
やりたいこと
KNIMEで欠損値は「?」で表示されます。この欠損値をどう埋めていくかを指定することによって、様々な処理ができるようになります。
今回は代表的な要素として、文字列は直前の値を、数値は0で補間するという処理を行っていきたいと思います。
Missing Valueの使い方
欠損値を埋めるときに使用します。固定値を入れるだけでなく、直前の行を参照することなどができるので、Sorterと組み合わせれば週単位の値をコピーするなど、様々な応用が利きます。
Workflow
例外付き実行完了状態になっていますが、Outputが予期していたものであれば特に意識しなくて大丈夫です。ちなみにこの注意メッセージは、Previous Valueという直前の値を参照するオプションが青いOutputの方に対応していないというものです。選択肢で、*がついているものを選択すると、このメッセージが出てきます。
Confirm - Before After
文字列は直前の値を、数値は0を入力するという処理を行っていきたいと思います。
例としてTable Creatorで数値と文字列のコラムを一つずつと、欠損値のないコラムを1つ作成しています。
Configure
Step1 - Default データ型ごとに処理を指定
まずはデフォルト設定をデータ型ごとに決めます。もしここでNumber(double)に固定値の "0.0" を指定した場合、欠損値のあるDouble型のコラムすべてに対して欠損値を "0.0"で置き換える処理を適用することになります。
今回は個別のコラムで指定しようと思うので、ともに "Do nothing"を指定しています。
Step2 - Column Settings コラムごとに処理を指定
次にコラムごとに処理を指定するオプションです。もしデータ型ごとの指定で十分であれば、特に設定の必要はありません。こちらで指定されたコラムはStep1の設定は無視され、ここでの設定が優先されます。
左のコラムリストから欠損値を行いたいコラムをダブルクリックして、右の設定画面に表示します。その後プルダウンメニューからそのコラムに行いたい欠損値処理の種類を選択します。
各処理方法とその意味は下記の通りです。
欠損値 処理方法 | 意味 |
Average Interpolation* | 前後の値の平均を取る。値がない場合は次に値があるものを探して平均を取る |
Fix Value | 固定値 |
Linear Interpolation* | 前後の値で線形補間を行う。 |
Maximum | コラム内の最大値を取る |
Mean | コラム内の平均値を取る |
Median | コラム内の中央値を取る |
Minimum | コラム内の最小値を取る |
Most Frequent Value | コラム内の最頻値を取る |
Moving Average* | 移動平均を取る。移動平均を取る範囲は、前後で調整ができる。 |
Next* | 次に出てくる値を取る。 |
Previous* | 直前に出てきた値を取る |
Remove Row* | その行を削除する |
Rounded Mean | コラム内の平均値を四捨五入した値を取る |
今回は
Integerというコラムの欠損値は、固定値の "0.0" で埋めたいので、Fix Value
Stringというコラムの欠損値は、直前の行の値で埋めたいので、Previous Value
で設定します。
おわりに
使いどころ満載のMisssing Value Nodeでした。様々な場面で使うと思います。Column Settingは個別のコラムで処理を指定しているので、コラムが増えたりコラム名が変わったりする際には使用できないことに注意してください。
コロナ状況下ではありますが、適度にリラックスできるように連休楽しみましょう!ではまた!
余談
今回紹介するのは、ご存知「おくりびと」です。葬儀業という普段関わらない職業をユーモアを踏まえて表現していて、非常にきれいな作品だなと思いました。
参考リンク
-
すさんのBlog:
【KNIME】ノード紹介:Missing Value 〜欠損値を処理しよう〜 - 非プログラマーのためのインフォマティクス入門。(仮)
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):
Missing Value Handling – KNIME Hub