【JKI】027_Rare_Blood_Types
【JKI_027】課題を確認
Just KNIME It! (JKI)
今回の挑戦はこちら
問題文をGoogle翻訳し少し加筆して以下に
【サンプルデータセットの入手】
に置いてあるファイルをダウンロードしましたが、拡張子が未定義でしたので、「data.txt」とテキストファイル扱いにして今回のWorkflow(WF)のdataフォルダに入れました
File Readerで読み込むと、確かに住所の列は1行で表示されていますので前処理が必要になりますね。
設定:
結果:
【州名データの抽出】
確かに住所の列は1行で表示されているので、州名の文字列のみを抽出します。
カラムaddressは幸い記載ルールが揃っています。
「州名以外の住所明細(群や市など)」+「, (カンマ+半角スペース)」+州名+「 (半角スペース)」+「郵便番号の数字5桁」
そこで、
① 「, (カンマ+半角スペース)」の前後で分ける
② 後ろの文字列の「 (半角スペース)」+「郵便番号の数字5桁」を除く
ことで州名を抽出できます。
Cell Splitterで①を、String Manipulationで②を実装しました。
設定:
デリミタは「, (カンマ+半角スペース)」を設定
正規表現を利用して数字を除去したのち、
regexReplace($address_Arr[1]$,"[0-9]" ,"" )
残った文字列の末尾の空白すなわちスペースをstripEndで除去しました。
結果:
州名が切出されていく様子が見て取れるかと思います。
【血液型指定の集計】
米国の州ごとにO型の市民の数といっても献血された方のみでの集計です。おなじみの二つのノードでのデータ処理なのでいきなり設定を以下に。
設定:
結果:
50州+ワシントンD.C.それぞれで集計されました。
【コロプレスマップ】
JKI_022でも利用しましたコロプレスマップ、今回はアメリカの州別で使います。
結果:
これまでJKIへの解答など続けてきたので、過去に使った技術の転用だけで課題を達成できたかなと思います。後でも述べますが修業の成果かなと思っています。
KNIME Hubに解答は上げています。
おまけ:
【JKI_026 感想戦】
機械学習四部作の最終回の公式解答は下記の通り。
今回は可視化の問題ではあるので本筋ではないですが、このKNIME workflow (WF)ではAutoMLで用いる特徴量をあらかじめ絞り込んであって興味を持ちました。
上記でもコメントした通り寄与度が低い特徴量などはあらかじめ除去すると予測性能が改善される可能性はあります。
結果として私の解答でも使ったScorer(JavaScript)を加えて混同行列など見てみましょう。
このモデルの用途が、解約してしまう人を予測して対策を講じるためだと仮定すると今回の特徴量の絞り込み方は不適切そうだなと私は考えます。
このように、AutoMLコンポーネントさえあれば良い予測モデルができるわけではないのはむしろ当然のことでしょう。一方で、より多くの人に得られた結果の調査と次の対策の検討に参画する機会を広げると言う意味で、KNIMEのコンポーネント群でのノーコードでの可視化は役に立つと期待します。
おまけ②:
【KNinjaの修業】
今回の一連の課題、挑戦者にしっかり考えるよう求める内容で、とてもよく練られていたと思うのです。
忍者にまつわるこんな物語があります。
まさにJust KNIME It!はKNinja達の修業であるなと感じています。出題者すなわち師匠の皆さんの工夫や配慮に感謝です。
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。