![見出し画像](https://assets.st-note.com/production/uploads/images/88074807/rectangle_large_type_2_1f57f83a35eabd569a4d2715ba916730.png?width=1200)
【JKI】036_Implementing_Custom_Time_Alignment
【JKI_036】課題を確認
Just KNIME It! (JKI)
今回の挑戦はこちら
![](https://assets.st-note.com/img/1664628619665-BA4wfCCiRR.png?width=1200)
問題文のところだけをGoogle翻訳し少し加筆して以下に
課題36: カスタムタイムアライメントの実装
レベル: 中程度
説明:
KNIME は時系列に関する新しい教科書をリリースしました。これを記念して、この課題で少し時系列分析を行います。
ここで本をチェックしてください(割引もあります!).
この課題では、データの性質による通常の欠損値と不規則な欠損値の2種類の欠損値を含むデータに対してタイムアライメントを実行します。
たとえば、毎日の株式市場のデータは定期的に土曜日と日曜日をスキップし、祝日のために他の平日を不定期にスキップします。
この課題の具体的なタスクは、欠落している平日に対応するタイムスタンプを指定されたデータに導入し、週末のタイムスタンプを省略することです。
データには、1980年から1998年までの米ドルとスイス フランの毎日の為替レートが含まれています。
ヒント: 時系列分析の検証済みコンポーネントを確認してください。
ヒント 2: 参考までに、書籍にアクセスできる場合は、この課題の基になっている第3章 (時系列分析用のデータの準備) を確認してください。
【カスタムタイムアライメントってなんだ】
GoogleでもDeepLでもCustom Time Alignmentはカスタムタイムアライメントで、日本語に変換しにくいようです。要するに自分たちで好きなように時間軸の調整ができると言うことなのかなぁと推測します。
今回の場合は与えられたデータに日時データの欠損があるのでそれを自分たちが思う通り、平日だけは全て解析対象にしたいのでデータ前処理をすると言う体験をするようです。
サンプルデータをいつも通りWF内のdataフォルダに格納し相対パスで読み込みました。
![](https://assets.st-note.com/img/1664628904896-5HMQePbYLK.png)
設定:
![](https://assets.st-note.com/img/1664628927839-lKhWptxlWB.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664628951222-E7ZBBSd3Su.png)
なるほど元旦と土日が欠損しているなってわかります。これを祝日だけは埋めると言うことですね。それにしても新年は元旦しか休まないのか。
【String to Date&Time】
![](https://assets.st-note.com/img/1664629001343-1fNmXHXJUP.png)
時間に関するデータを処理したいとき、KNIMEではDate&Time型にしてから扱うのが便利です。
設定:
![](https://assets.st-note.com/img/1664629037735-KwKORGCg6w.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664629065111-iISqhdJp9k.png)
プログラムがOBSカラムは日時データであると認識するように変わりました。
【Timestamp Alignmentコンポーネント】
ヒントにある通り、下記サイトにいけばこれが答えだろうと名前で分かると思います。
逆に他のコンプ―ネントが多数ありますが、私には何をするものかわかりませんでした。興味があれば宣伝されていた本を買うしかないな。JKIもとうとう宣伝が入るようになったなと面白く思っています。
「番宣かよ!」
さて、本題に戻ります。
![](https://assets.st-note.com/img/1664629209157-Au2YXJtC9G.png)
設定:
![](https://assets.st-note.com/img/1664629233250-8YdZnpyq3r.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664629257029-e3iKb3XNs0.png)
確かに日付の欠損していた部分に新たに行が追加されています。よくできているなぁ。
コンポーネントの中が気になり見てみました。
![](https://assets.st-note.com/img/1664629284212-A6PHi0Hxgc.png?width=1200)
これ、さらにメタノードの中も丁寧に分岐処理など作りこまれていまして、よく考えられているなぁと感心します。
入力データの最大と最小の時点を元に連続した日時データを作成するのですが、日時データは複数の種類があるため分岐処理していたりします。
![](https://assets.st-note.com/img/1664629333065-RNTVzyu27W.png?width=1200)
KNIMEでの時系列データ処理技術はきっと多くの方の努力によって充実したライブラリが作られているのだろうと思われました。宣伝ぐらいしたっていいですよね!
【土日のデータを削除】
![](https://assets.st-note.com/img/1664629378524-GG4sAPr10k.png)
Timestamp Alignmentコンポーネントで連続した日付データが作成されましたので、あとは上記2つのノードで曜日データを付与したのちに土日の行を削除すればよいでしょう。
設定:
![](https://assets.st-note.com/img/1664629416592-vXnVmn3zM9.png?width=1200)
![](https://assets.st-note.com/img/1664629433551-SXHr5Anrgt.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664629453827-1AZM59V6VO.png?width=1200)
時系列データを処理する際に、Day of week (number)で数値データとして曜日を扱えるようにしてくれているのも便利なんですよね。KNIME社の皆さんの心配りが嬉しいです。
これで解答は終わりだと思うのですが、興味のおもむくままに追加で可視化もしてみました。
【USドルとスイスフランの為替レート可視化】
折角整形したので、データをプロットしてみました。
![](https://assets.st-note.com/img/1664629576894-a2to3B3feB.png)
設定:
![](https://assets.st-note.com/img/1664629600528-S8iztOhSiS.png?width=1200)
結果:
![](https://assets.st-note.com/img/1664629621864-kzEbHcp9Qz.png?width=1200)
最近円安がそれなりに話題になりますが、為替って本当に動きますよね。
![](https://assets.st-note.com/img/1664629675571-FdNINe0G5s.png?width=1200)
KNIME Hubに解答は上げています。
おまけ:
【JKI_035 感想戦】
先週のJust KNIME It! 第35回はグラフでのネットワーク可視化を体験しました。
公式解答はこちらです。
![](https://assets.st-note.com/img/1664629936655-wHoj1sspD3.png)
コンポーネントあるんだ、やられたーって思いましたが、これは今回の課題用の新作のようです。LinkedInのconnections.csv専用というマニアックな仕様と言えるでしょう。
![](https://assets.st-note.com/img/1664629971770-kDId0vHVz4.png?width=1200)
公式解答は今回も遊び心があって、皆さんの多様なデータを入力したとしてもKNIMEで働いている人だけは必ず黄色に色分けされるらしいです。
![](https://assets.st-note.com/img/1664629995729-unY7s26gFI.png?width=1200)
さらに
![](https://assets.st-note.com/img/1664630019325-TXbpodXPF4.png)
Peter 👋 さん、絵文字がミドルネームになってる。
って私もコメントしましたが、そこも対応するという芸の細かさ。
これはなかなか見ごたえのある公式解答です。課題には書かれてなかったことばかりで感心してしまいました。
解答者がドヤ顔でほくそ笑む表情を想像しました。
解答者のAlineさん、なかなか変わり者だなぁ。ファンです。
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。