非プログラマーのためのインフォマティクス入門。(仮)

非プログラマーがインフォマティクスについて勉強したことを記録します。主にKNIMEというソフトを使用しています。

非プログラマーのためのインフォマティクス入門。(仮)

【KNIME】ノード紹介:Missing Value 〜欠損値を処理しよう〜

 今回は欠損値の処理に使えるノードを紹介します。ざっくりといえばテーブルの空っぽの部分をどうするかということです。

 KNIME(3.3以上)のテーブル表示では、欠損値は?で表示されます(3.2以前は?です。黒色のはてななので、欠損値なのか本物の?なのかちょっとわかりにくので注意)。こういう空っぽのデータがあると、統計解析などの際に不具合です。欠損値を持つデータを除く対応もあると思いますし、何かしらの固定値等で埋めてしまうなどの対応もあると思います。

 主に、そんなときに使えるのがMissing Valueノードです。例として次のようなデータを読んで欠損値処理をしてみます。

f:id:sumtat:20170809220941p:plain

 おぅ。セルの結合が含まれてますね…。解析するときに、これ邪魔です。Missing Valueノードを使って、これもうまく処理しちゃいましょう!

 

 

Missing Value

 先ほど述べた通り、欠損値の処理をどうするか?という指令を出すことができるノードです。まずは、例のエクセルファイルを読み込んだ結果を見てみます。

f:id:sumtat:20170809221841p:plain

 赤いはてなが欠損値です。セルの結合されてたところは結合前の状態として扱われます。今回は【month】に対して、"1,1,1,2,2,2,3,3,3"になるようにします。また【check】の欠損値は"Not_yet"とでもしてみましょうか。

 ではフローと、Missing Valueノードの設定を見てみます。

f:id:sumtat:20170809222644p:plain

 Defaultの画面では「Number属性のカラムはどうする?」「String属性のカラムはどうする?」と聞かれます。初期設定はDo nothing(なにもしねー)になっていますので、プルダウンから適当なものを選択します(結構いろいろあるよ)。

 今回はそれぞれ、Previous Value(上のrowに入ってる値)、Fix Value(固定値。今回はNot_yet)と設定しました。それでは実行してみます。

f:id:sumtat:20170809223358p:plain

いい感じに埋まりました。もう少し、Missing Valueの設定を見てみます。

f:id:sumtat:20170809223653p:plain

 今度はDefaultではなくて、Column Settingsで設定してみます。Defaultで設定した時とは違って、こっちはカラムそれぞれに対し設定が可能です。

今回は"Minimum"と"aeiou"という設定にしてみます。

f:id:sumtat:20170809224007p:plain

monthの欠損値は"1(最小値)"で、checkの欠損値は"aeiou"で埋められましたね!

 

ちなみにaeiouは私の大好きなチートバイオリン使いです。鬼畜です。


AEIOU(アエイオウ)

 私も雇われなので、たまには笑顔でaeiouぶちかましたくなる時もあるんですよー

 

 私は統計についてあまり深い知識は持っていませんので、あまり偉そうなことはいえませんが、欠損値処理はとても重要であると思います。統計に特化したアプリケーションでも除外するなり、平均値・中央値・単位値置換するなり、いろいろオプションがあると思います。KNIMEではMissing Valueノードをうまく活用して、種々データの解析につなげてみてください。