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

データ分析の再現性を高くするためのExploratoryの活用法

 データ分析の再現性を高くするためのExploratoryの活用法

2021/06/11(金) に開催したExploratory データサイエンス勉強会#19の株式会社フォーバルテレコム様のご登壇資料です。

Ikuya Murasato

June 11, 2021
Tweet

More Decks by Ikuya Murasato

Other Decks in Business

Transcript

  1. 自己紹介と業務概要 • 名前 矢通 康弘@株式会社フォーバルテレコム • 事業概要 おもに小・中規模事業者向けの通信・通話サービス提供や 販売店等が提供する保守サービス等の一括請求サービス、 最近は電力小売事業やサブスク型サービスの受注管理システム提供など

    • やってきたこと 警備員、工事現場監督(補助)、 DTP、LAN構築、PCヘルプデスク ↑前職 ↓現職 通信サービス企画、データ集計、 業界団体の委員会メンバー、 最近は主にBI関係、Python、BigQueryとかを使って事業状況を詳細に把握するための データ分析基盤などの仕組みづくりに注力
  2. 可視化 蓄積 加工 データ処理業務の概要 社内LAN ファイル サーバ BigQuery DataPortal 情シス管轄データ

    1回で数百万~ 数千万レコード規模 電力の使用量データ(30分値)や、 通信サービスの請求明細から契約数・利用動向などを集計、可視化 Web-API FTP 1回で 数十万万レコード規模 定型レポートの 社内共有 インサイトを得るための アドホックな分析
  3. 定型レポートの運用においては 再現性の確保が重要 • いつでも、誰でも同じ結果が出せる • それぞれに再現可能性があればその中で細かく改善していける • その時に「手をいれやすい」作り方にしておくのがよい このへんを参考にしました→https://www.igaku-shoin.co.jp/paper/archive/y2020/PA03357_03 方法の再現可能性

    同じデータから同じ方法を用いて同じ結果が得られること 結果の再現可能性 異なるデータ群に同じ方法を用いて同じ結果が得られること 推論の再現可能性 異なるデータ群や、異なる手法から同じ結論が導き出せること
  4. 再現性確保のために心がけていること 1. 確実に同じ入力を作る • データタイプの自動認識は基本OFF • 入力データはできるだけExcel形式を避ける 2. 徹底的な工数整理 •

    最初にやることの順番を決める • ステップをできるだけ減らす • 効率のよい処理の仕方を考える 3. 可読性 • フォルダを活用してデータフレームを整理 • 適宜ブランチを作成 • 似たような処理はまとめる • コメントをつける 4. アップデートへのキャッチアップ
  5. ステップを減らす、処理効率を考える • 必ず最初にやること • 型定義 • 列名の変更 • 列の削除 あとからステップを差し込むのは勇気がいるので、このあたりはほぼ

    必ず入れておく • 処理効率を考える • グループ化した場合は計算が終わったら必ず解除する • 複数ステップの処理が、スクリプトやカスタムRコマンドで1ステッ プにできる場合はそちらも検討 • データフレームをエクスポートして使う場合のTips
  6. 最初にやること3…列名の変更 • 読み込み時のデータにおけるヘッダ 名が一文字でも変わると、後続のス テップが回らないので、あらかじめ 変更できるようにしておく →抽出担当者のSQLの書き方でヘッ ダの名前が変わるとかよくあるんで す。。。 •

    できるだけ最初の方でやる • データベースから抽出したデータは ヘッダがアルファベットだったりす るので日本語に変えておくなどする とプロジェクト内で理解しやすい まとめて変更できるのは(・∀・)イイ!!
  7. 処理の効率化 • グループ化した場合、その計算が終わったら必ずグループを解除す る • グループ化はわりと重い処理だと思う • 複数ステップで実現できることがスクリプトやカスタムRコマンド により1ステップにできるならそちらも検討 •

    最近のお気に入りは複数の「値」列を一気にピボットできる、 tidyr::pivot_wider https://speakerdeck.com/yutannihilation/tidy • データフレームをエクスポートして別のところで使う場合、最後に もう一度型定義や列名を調整しアウトプットの一貫性を保つ • 小数の桁数調整 • 利用するシステムに合わせて列名をアルファベット表記に変えるなど
  8. ステップの整理(類似処理をまとめる) カ ラ ム の 定 義 に 関 す

    る 処 理 カ ラ ム の 値 に 関 す る 処 理 属 性 情 報 を 結 合 す る 処 理