Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ノーコードデータ分析ツールで体験する時系列データ分析超入門

negi111111
November 15, 2024

 ノーコードデータ分析ツールで体験する時系列データ分析超入門

PyCon mini 東海2024で登壇した内容に関する資料です。
URL:https://tokai.pycon.jp/2024/#
内容:
ビジュアルプログラミングとデータ分析を題材にして、Pythonを用いた時系列データ分析を体験して頂きます。 データ分析は、多くのビジネス現場で重要になっており、効果的な意思決定を支援します。

しかし、「データ分析って難しそう」「プログラミングはちょっと…」 そう感じている方は少なくありません。一方で、ノーコードツールの登場により、データ分析はもはや専門家だけの領域ではなくなりました。

本ワークショップでは、データ分析の実シナリオを題材にして、AIモデルの構築から評価までを体験します。ハンズオンにはNode-AI ( https://app.nodeai.io/ ) の無料枠を利用し、ブラウザでアクセスできる個人端末をご用意ください。 ※ワークショップでアカウント作成から行うので、事前準備はしなくても大丈夫です! 本ワークショップを通じて、データ分析を体験してみませんか?

negi111111

November 15, 2024
Tweet

More Decks by negi111111

Other Decks in Technology

Transcript

  1. © NTT Communications Corporation All Rights Reserved. ローコード(対エンジニア向け) ノーコードデータ分析ツールで体験する 時系列データ分析超入門

    丹野 良介
 NTTコミュニケーションズ株式会社
 イノベーションセンター 
 2024/11/16(土)
 中日ホール&カンファレンス@名古屋 発表スライド 

  2. © NTT Communications Corporation All Rights Reserved. 2 本日の資料は SpeakerDeckで公開しています

    • 手元で閲覧できる前提で進めるので、今の內にググって下さい • URL:https://speakerdeck.com/negi111111 ◦ PyCon mini東海2024のアイコンが載ってあるスライドです ◦ Connpassにも記載してあります 発表スライドです 

  3. © NTT Communications Corporation All Rights Reserved. 3 おすすめ書籍(更に学習を進めるために) •

    今回の内容を受けてデータ分析に興味が出てきたら、以下の7つの書籍を超おすすめします。 ◦ 初学者向けの入門に絞って記載されているので理解しやすく非常に網羅的(右5冊はフルカラー) ◦ 時系列データ分析(左2冊) ◦ 一般的なデータ分析や統計(右5冊)
  4. © NTT Communications Corporation All Rights Reserved. 4 本日のゴール •

    ノーコード(ローコード)分析ツールを用いたデータ分析体験をする! • データ分析の全体像を知る!(以外に簡単かも!?) • ノーコード(ローコード)、プログラミングによる各分析スタイルの良し悪しを体験してみる • Kaggle(世界的な分析コンペ)にあるコードをノーコード(ローコード)で表現しています ◦ https://www.kaggle.com/code/rajmehra03/bike-sharing-demand-rmsle-0-3194 ◦ エンジニアな方々はこっちの方が慣れていると思いますので、見比べて見て下さい。※1対1対応ではない ◦
  5. © NTT Communications Corporation All Rights Reserved. 5 まずは事前準備:アカウント作成編と本日のコード共有 •

    分析ツールURL:https://app.nodeai.io/ ◦ ここから新規作成して下さい ◦ ブラウザは Chrome/Edge推奨(Safari、スマホは未対応) ◦ メールが届くのでURLを踏んでアクセスして下さい • Github:https://github.com/negi111111/pycon-mini-tokai2024 ◦ 本日利用するレシピ(分析コード)→ 「***.recipe」
  6. © NTT Communications Corporation All Rights Reserved. 6 時系列の成分 •

    時系列データは以下の成分を持つ ◦ トレンド( Trend)、季節性(Seasonal)、残差(Residuals) ◦ トレンド:時系列のゆっくりとした変化を表現。      時系列が経時的に増加または減少することを表す ◦ 季節性:時系列の周期手なパターン。 ◦ 残差:上記の成分では説明できない変動。ランダムな誤差。    ホワイトノイズとも呼ばれる。 • 時系列の成分を可視化することを分解と呼ぶ ◦ 時系列をさまざまな成分に分割する統計学的なタスク ◦ 個々の成分を可視化すると、データの傾向や周期的な パターンを直感的に理解できる • トレンドや季節性がある場合、今後も同じ影響を受ける 可能性が高く、それを予測に反映する必要がある
  7. © NTT Communications Corporation All Rights Reserved. 7 普段は丁寧()に説明しますが・・・ 皆さんエンジニア関連の方ということもあって、

    こういったツールには慣れていると思うので、 かなりかなーりかなりはしょって説明しますので、 ご了承下さい・・・ 🙇 自由に触って頂いて大丈夫です! ぜひ、ツールを Hackしてみてください (FBになります)
  8. © NTT Communications Corporation All Rights Reserved. 9 今回扱うAIの話 •

    生成AIではありません!(最近お客様と話しているとAIといえばこちらが出てきますが…) • どちらかというと「データ分析」をイメージしてもらう方がわかりやすいです。 • Node-AIはその中でも「時系列データ 」の分析に特化しています。 生成系AI データ分析(予測、分類、異常検知 etc…) 画像 自然 言語 表 時系列 センサー、売上履歴、価 格変動などの 時間+数値のデータ
  9. © NTT Communications Corporation All Rights Reserved. 10 時系列とは •

    時系列とは、時間順に並べられたデータ点の集まりのこと ◦ 多くの場合、時間的に等間隔なデータ(≒サンプリングレート) ◦ 1時間、1分、四半期ごと、、、 • 典型的な例としては、気象データとか
  10. © NTT Communications Corporation All Rights Reserved. 12 Node-AIで解ける課題の事例:センサー予測 ごみ焼却所において出た熱を活用して蒸気を生

    成し、発電を行うシステムが存在
 
 ごみの燃焼は熱が安定しないため、送風機や給 塵装置を用いて火力を安定させる操作が必要
 
 蒸気の未来の値を予測することにより、予測的 な制御を可能にする
 
 理論上で蒸気の無駄を1%改善し、発電効率を3% 向上する試算ができた

  11. © NTT Communications Corporation All Rights Reserved. 15 やること •

    全てのカードの削除 • GithubからレシピをDL ◦ https://github.com/negi111111/pycon-mini-tokai2024 • レシピをNode-AIにアップロード • レシピを展開 • データを接続→実行 まず全部 のカード を削除 今回利用する 分析コード
  12. © NTT Communications Corporation All Rights Reserved. 16 全てのカードの削除 •

    ドラッグすることで複数のカードを選択できます • 削除ボタンをクリック
  13. © NTT Communications Corporation All Rights Reserved. 18 • 以下の流れに従ってデータを追加

    ◦ データパネルから「追加」から「公開データ」をクリック ◦ 「シェアサイクル利用の総台数予測(モデル精度向上チュートリアル用)」を選択して「このデータをインポート」をク リック ◦ 「日付」を選択して「確定」をクリック • 最終的に、データパネルに選択したデータが表示されればOK 分析するデータの変更と実行
  14. © NTT Communications Corporation All Rights Reserved. 19 分析するデータの変更と実行 結線も

    しておく ドラッグ・アンド・ド ロップでデータを配 置
  15. © NTT Communications Corporation All Rights Reserved. 20 分析するデータの変更と実行 目的変数は「利用台数」が既に設定されている。説明変数は下記の様に設定。(インデックスと利用台数、以外を選択

    しておく) カードの実行ボタンの下矢印をクリック すると出現する「これ以降を実行」をク リックすることで、そのカードに繋がれて いる全てのカードが実行される ここは実行され ないので注意 ここを押すと 実行される
  16. © NTT Communications Corporation All Rights Reserved. 22 データ分析の課題設定 背景設定:「あなたは今日からデータサイエンティストです。今回、シェアサイクル事業におけるデータ分析プロ

    ジェクトの分析担当者を任されました。クライアントからの下記のお題に1時間以内に答える必要が出てきまし た。」
 
 お題概要:
 • 近年、環境意識の高まりや近距離移動の利便性、情報通信環境の向上から
 レンタサイクルの注目が高まっている
 • 今回、ワシントンD.Cの2012年 (1)における1週間後レンタル数予測モデル開発 を行いたい。
 • 予測結果の活用先として以下の物が想定される ✔ 最適な自転車数の設置 ✔ サービス提供に支障のないメンテナンス計画 (1): Fanaee-T, Hadi, and Gama, Joao, "Event labeling combining ensemble detectors and background knowledge", Progress in Artificial Intelligence (2013): pp. 1-15, Springer Berlin Heidelberg, doi:10.1007/s13748-013-0040-3. 予測値と実測値の比較 現状の評価指標(精度) 決定係数R^2 0.248 MAE 38.14 ※決定係数:1に近いほど予測値が実測値に当てはまる  MAE:予測値と実測値の差の絶対値の平均 →予測値±38台自転車を準備しておけばおおよそ 不足することは避けられるAIモデルが出来ている →可能な限り誤差を小さくしたい 

  17. © NTT Communications Corporation All Rights Reserved. 23 今回のデータ 各カラムの説明

    カラム 内容 利用台数 シェアサイクルの利用台数(目的変数:これを予測する) インデックス 行番号の通番(不要なカラム) 季節 1=1〜3月、2=4〜6月、3=7〜9月、4=10〜12月 年、月、時間 日時情報 祝日かどうか 0=祝日ではない、1=祝日 曜日 0=日、1=月、・・・6=土 平日かどうか 0=平日ではない、1=平日 天気 1=晴れ、曇が少ない、時々曇り、 2=ミスト+曇り、ミスト+割れた雲、ミスト+少ない雲、ミスト 3=小雪、小雨+雷雨+雲、小雨+雲 4=大雨+雹+雷雨+霧、雪+霧 気温 温度 体感気温 体感的に感じる温度 湿度 相対湿度 風速 風速(そのまま) 説 明 変 数

  18. © NTT Communications Corporation All Rights Reserved. 24 自転車シェアリングとは •

    乗りたいときに借りて、行きたい場所で 返せる自転車のシェアサービス • 例えば、東京の皇居周辺(東京駅)だとレンタサイクルがうじゃうじゃ置いてある バイクシェアサービス|自転車シェアリング :https://docomo-cycle.jp/
  19. © NTT Communications Corporation All Rights Reserved. 25 自転車シェアリングシステム 人と街が近づくバイクシェアを目指して

    ―ドコモ・バイクシェア 堀社長インタビュー | LIGARE(リガーレ)人・まち・モビリティ :https://ligare.news/story/docomo-bikeshare-interview/
  20. © NTT Communications Corporation All Rights Reserved. 26 シェアサイクル事業者の主な運営業務 ①

    ② ③ ④ 再配置業務 充電交換ポート整備業務 修理・メンテナンス業務 コールセンター業務 自転車の偏りをなくす 為、車両の再配置を 実施 再配置業務に伴いバッテ リーの交換やポート整備 を実施 年1回のメンテナンスに 加え、故障した自転車を 回収して随時の修理を 実施 24時間お客様受付 対応を実施 人と街が近づくバイクシェアを目指して ―ドコモ・バイクシェア 堀社長インタビュー | LIGARE(リガーレ)人・まち・モビリティ :https://ligare.news/story/docomo-bikeshare-interview/
  21. © NTT Communications Corporation All Rights Reserved. 28 データ分析の全体像 産業間共通データマイニング標準プロセス

    (CRISM-DM: Cross-Industry Standard Process for DataMining)→ データマイニングのための方法論 1. ビジネスの理解(分析目的と目標の設定) 
 2. データの理解(各項目の意味理解) 
 3. データの準備(データクレンジング&基礎集計) 
 4. モデル作成(アルゴリズム選定&モデル作成) 
 5. 評価(モデル評価&目的に対する結果評価) 
 6. 展開(施策設計/提案) 

  22. © NTT Communications Corporation All Rights Reserved. 29 データ分析の流れ データの前処理


    モデル定義・学習
 モデルの評価
 考察
 データの可視化
 • データを可視化してデータを理解し、前処理の検討を行う
 • 入力と予測する変数を設定する
 • 数値データの変換や欠損値の補間で最低限入力可能なデータにする
 • データ分割、正規化や時間窓切り出しなどの学習に必須な変換を行う
 • 学習させるAIモデルの定義を行う
 • 定義したモデルに対して前処理したデータを学習させる
 • 評価用データで学習済みのAIモデルの精度を計測する
 • 因果分析で因果関係を確認したり、要因分析でAIモデルの説明を見る
 評価後にまた前処理などを変更して、モデル改善のための
 試行錯誤を行うのが、データ分析の一般的なサイクルです。

  23. © NTT Communications Corporation All Rights Reserved. 30 30 データの前処理

    モデル定義・学習 モデルの評価 考察 データの可視化 必要なモジュールの 読み込み 使用する データセットの 読み込み データセットの 仕様確認 統計量の確認 (平均・分散) データの可視化 # 必要なモジュールを準備 
 %pip install pandas %pip install matplotlib import pandas as pd
 import matplotlib.pyplot as plt # 2011年~2012年のワシントンD.Cで使われた自転車シェアサイクルのデータを利用 
 
 # データを読み込んで df の変数に格納する 
 df = pd.read_csv("07_share_cycle_tutorial.csv", index_col=0, parse_dates=True) 
 df = df.drop(columns=[ "インデックス"]) 
 # 読み込んだデータを確認 
 df.head(10) # レコード数とカラム数を確認します 
 row_num, col_num = df.shape print("レコード数:", row_num, ", カラム数:", col_num) # include='all' はデータ型によらず全てのカラムを表示することを表す。 
 df.describe(include= "all")
 # 時系列データを可視化 
 df["利用台数"].plot() Pythonによるデータ分析の例 # 時系列データを可視化 
 df["気温"].plot() # 時系列データを可視化 
 df["風速"].plot() # 気温と利用台数の関係 
 plt.figure(figsize=(10, 6)) plt.scatter(df["気温"], df["利用台数"], alpha=0.5) plt.title("Temperature vs Cycle Usage" ) plt.xlabel("Temperature (°C) " ) plt.ylabel("Usage Count") plt.grid(True) plt.show()
  24. © NTT Communications Corporation All Rights Reserved. 31 お題 •

    データ可視化の結果を基に、いろんな説明変数を追加・削除したりすることで、精度がどれぐらい 変化するか観察してみる ◦ 例えば、以下の様に説明変数を増やした場合は精度が改善するでしょうか? ▪ 元々は、「気温、体感気温、湿度、風速」の4つだけだった • 補足 ◦ 目的変数と相関の高い変数を説明変数として入れるべき ◦ 逆に、相関の高すぎる複数の変数を説明変数として用いると、多重共線性という現象が起こり回 帰の性能が下がってしまう。こういった変数ペアには注意が必要です。 ▪ 直感的には、ほぼ同じ説明要素が二つあった時、どちらからの寄与か判断できないので不安 定になる ◦ 多重共線性についてはここでは深くは触れません。
  25. © NTT Communications Corporation All Rights Reserved. 32 実行手順①:説明変数の追加と一括実行 目的変数は「利用台数」が既に設定されている。説明変数は

    「利用台数、インデックス」以外を設定。 カードの実行ボタンの下矢印をクリック すると出現する「これ以降を実行」をク リックすることで、そのカードに繋がれて いる全てのカードが実行される ここは実行され ないので注意 ここを押すと 表示される 次のスライドで ここの結果を見 る
  26. © NTT Communications Corporation All Rights Reserved. 33 実行手順②:「評価カード」の MAEを確認

    MAEは38.1→24.26まで誤差を改善できた。予測がより「実際のデータに近い」ものになった。また、 決定係数が0.24→0.68となり、モデルがデータの全体的な傾向や変動をよりよく捉えられるようになった。 改善前
 改善後
 データの変動の うち、モデルが どれだけ説明し ているか
  27. © NTT Communications Corporation All Rights Reserved. 34 (参考)AIモデルの評価 評価指標

    RMSE
 CORR
 MAE
 MAPE
 R^2
 一般的な名称 二乗平均平方根誤差 相関係数 平均絶対誤差 平均絶対パーセント誤差 決定係数 見方 低い方が良い 高い方が良い 低い方が良い 低い方が良い 高い方が良い 値の取る範囲 0 ~ ∞
 -1 ~ 1
 0 ~ ∞
 0 ~ ∞
 -∞ ~ 1
 説明 大きく予測をはずしている点 があるとRMSEは大きくなる。
 逆にRMSEが小さければ大き く外す事が少ないモデルであ る事がわかる。 予測値と実測値の比例関係 を表す。 誤差の平均。
 仮にMAEが 5 なら平均的に 予測値が 5 ずれている事が わかる。 誤差のパーセンテージの平 均。
 仮にMAPEが 5 なら平均的 に予測値が 5 パーセントず れている事がわかる。 定数(実測値の平均)を予測 値として返すモデルと比較し て優れているかを表す。
 値が正なら定数を返すモデ ルよりも優れている。
  28. © NTT Communications Corporation All Rights Reserved. 35 本日のゴール •

    ノーコード(ローコード)分析ツールを用いたデータ分析体験をする! • データ分析の全体像を知る!(以外に簡単かも!?) • ノーコード(ローコード)、プログラミングによる各分析スタイルの良し悪しを体験してみる • Kaggle(世界的な分析コンペ)にあるコードをノーコード(ローコード)で表現しています ◦ https://www.kaggle.com/code/rajmehra03/bike-sharing-demand-rmsle-0-3194 ◦ エンジニアな方々はこっちの方が慣れていると思いますので、見比べて見て下さい。※1対1対応ではない ◦
  29. © NTT Communications Corporation All Rights Reserved. 37 キャンバス Node-AIでは分析するメインのスペースをキャンバス

    と呼びます。
 カード
 分析フロー(分析ツリー) 
 テキストガイド 

  30. © NTT Communications Corporation All Rights Reserved. 38 キャンバスのメニュー 前の画面に戻る


    データ(データをアップロード、配置) 
 モジュール(分析カードを取り出す) 
 レシピ(テンプレートを取り出す)
 テキスト
 実験管理(今までの学習履歴を見る)

  31. © NTT Communications Corporation All Rights Reserved. 40 カードの結線 Node-AIではカード同士を繋げることでデータの受け渡しを行うことができます。


    データの流れ(縦線)
 カード設定値の同期(横線)
 横と縦でリンク線 の意味が違います 

  32. © NTT Communications Corporation All Rights Reserved. 41 カード実行 ①


    分析カードを開く 
 クリック(開く) or ダブルクリック 
 ②
 分析カードの 
 パラメータを設定 ③
 分析カードの実行 カードをクリックしてツールバーの開くをクリッ ク、またはカードをダブルクリックすることで 詳細画面を表示することができます
 カード毎に必要なパラメータを選択、または 入力を行うことで実行ボタンが押せるように なります。
 正常に動作が完了すると設定値に基づいて 処理された結果が表示されます。また、左下 に処理結果のメッセージが表示されます。