【KNIME】ノード紹介:Missing Value 〜欠損値を処理しよう〜
今回は欠損値の処理に使えるノードを紹介します。ざっくりといえばテーブルの空っぽの部分をどうするかということです。
KNIME(3.3以上)のテーブル表示では、欠損値は?で表示されます(3.2以前は?です。黒色のはてななので、欠損値なのか本物の?なのかちょっとわかりにくので注意)。こういう空っぽのデータがあると、統計解析などの際に不具合です。欠損値を持つデータを除く対応もあると思いますし、何かしらの固定値等で埋めてしまうなどの対応もあると思います。
主に、そんなときに使えるのがMissing Valueノードです。例として次のようなデータを読んで欠損値処理をしてみます。
おぅ。セルの結合が含まれてますね…。解析するときに、これ邪魔です。Missing Valueノードを使って、これもうまく処理しちゃいましょう!
Missing Value
先ほど述べた通り、欠損値の処理をどうするか?という指令を出すことができるノードです。まずは、例のエクセルファイルを読み込んだ結果を見てみます。
赤いはてなが欠損値です。セルの結合されてたところは結合前の状態として扱われます。今回は【month】に対して、"1,1,1,2,2,2,3,3,3"になるようにします。また【check】の欠損値は"Not_yet"とでもしてみましょうか。
ではフローと、Missing Valueノードの設定を見てみます。
Defaultの画面では「Number属性のカラムはどうする?」「String属性のカラムはどうする?」と聞かれます。初期設定はDo nothing(なにもしねー)になっていますので、プルダウンから適当なものを選択します(結構いろいろあるよ)。
今回はそれぞれ、Previous Value(上のrowに入ってる値)、Fix Value(固定値。今回はNot_yet)と設定しました。それでは実行してみます。
いい感じに埋まりました。もう少し、Missing Valueの設定を見てみます。
今度はDefaultではなくて、Column Settingsで設定してみます。Defaultで設定した時とは違って、こっちはカラムそれぞれに対し設定が可能です。
今回は"Minimum"と"aeiou"という設定にしてみます。
monthの欠損値は"1(最小値)"で、checkの欠損値は"aeiou"で埋められましたね!
ちなみにaeiouは私の大好きなチートバイオリン使いです。鬼畜です。
私も雇われなので、たまには笑顔でaeiouぶちかましたくなる時もあるんですよー
私は統計についてあまり深い知識は持っていませんので、あまり偉そうなことはいえませんが、欠損値処理はとても重要であると思います。統計に特化したアプリケーションでも除外するなり、平均値・中央値・単位値置換するなり、いろいろオプションがあると思います。KNIMEではMissing Valueノードをうまく活用して、種々データの解析につなげてみてください。