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

2022年度データアナリティクスII-第1回-20220411

 2022年度データアナリティクスII-第1回-20220411

2022年前期に静岡大学情報学部で開講される講義「データアナリティクスII」(山本担当パート)の講義資料.

Y. Yamamoto

April 11, 2022
Tweet

More Decks by Y. Yamamoto

Other Decks in Education

Transcript

  1. ⼭本 祐輔
    静岡⼤学 情報学部
    [email protected]
    2022年度前期 データアナリティクスII – 山本担当モジュール
    2022年4月11日
    ⼭本祐輔
    クリエイティブコモンズライセンス (CC BY-NC-SA 4.0)
    BadData, not BigData:
    Excelで体感するデータ分析現場の悲劇

    View full-size slide

  2. 21世紀に最も注⽬される職業であるデータサイエンス⼈材
    https://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century/

    View full-size slide

  3. よくあるデータサイエンス教育・教材の狙い
    3
    画像出典:amazon.co.jp
    分析技術・理論の理解 ツールの使い⽅・お作法

    View full-size slide

  4. よくあるデータサイエンス教育・教材の狙い
    4
    画像出典:amazon.co.jp
    分析技術・理論の理解 ツールの使い方・お作法
    シナリオ(目的)が
    あらかじめ決まっている
    分析に適したデータが
    あらかじめ用意されている

    View full-size slide

  5. UCI ML Repository: 機械学習でよく利⽤されるデータセット集のサイト

    View full-size slide

  6. UCI ML Repository: 機械学習でよく利⽤されるデータセット集のサイト
    Iris(アヤメ)のデータセット
    Analysis-readyなデータセットだけで
    データサイエンスを学習できるのか?

    View full-size slide

  7. データ
    構築
    前処理
    アルゴリズム
    適用
    評価・分析
    データ解析・活⽤のプロセス
    種々のアルゴリズムの
    適用・開発
    構築したモデルの評価,
    データマイニングした知見の分析

    View full-size slide

  8. データ分析に必要な
    データを収集・構築する
    データ
    構築
    前処理
    アルゴリズム
    適用
    評価・分析
    データ解析・活⽤のプロセス
    アルゴリズムを走らせるために
    データをクリーニング,統合,変形
    データ分析・活用
    作業の8割
    有意義なデータ分析・活用を行うには、
    目的に応じたデータの準備・加工・手法選択が必要

    View full-size slide

  9. データアナリティクスII の⽬的
    さまざまな種類のデータを
    目的に応じて収集・加工・分析する手法を学ぶ
    9

    View full-size slide

  10. ⼭本担当モジュールで学ぶこと
    画像出典:https://www.oreilly.co.jp/books/9784873116402/
    関係データベース
    (50MB, 最⼤10万⾏)
    SQL
    前処理・データ分析のための
    関係データベースの操作
    ビッグデータからの情報抽出
    バッドデータの現実
    データ分析の前処理の
    重要性の理解

    View full-size slide

  11. 授業の進め⽅
    課題の
    開示
    初回
    必要知識
    の解説
    ノック
    演習
    ノック
    の解説
    課題の
    開示
    2回⽬〜5回⽬
    必要知識
    の解説
    ノック
    演習
    ノック
    の解説
    前回課題
    の解説
    3名1組のグループになって演習を行う

    View full-size slide

  12. 授業の進め⽅
    課題の
    開示
    2回⽬〜5回⽬
    必要知識
    の解説
    ノック
    演習
    ノック
    の解説
    前回課題
    の解説
    3名1組のグループになって演習を行う
    初回
    必要知識
    の解説
    ノック
    の解説
    課題の
    開示
    ノック
    演習
    「課題」とか「ノック」って何?

    View full-size slide

  13. 課題
    ・次回授業までに取り組む演習課題で
    その⽇の授業の冒頭に発表される
    ・「課題」は最終レポートの問題の⼀部

    View full-size slide

  14. ノック
    ・課題を解くのに必要なスキルを学ぶための
    ⼩さなクイズ集(60〜70問)
    ・ノックの解説は授業内に⾏う
    課題が解けるのであればノックはやらなくてよい

    View full-size slide

  15. 授業で使うもの
    PC/Mac
    Google Colaboratory
    (2回⽬以降)
    Googleアカウントを持っていない⼈は取得しておくこと
    Excel
    (初回のみ)

    View full-size slide

  16. ⼭本担当モジュールの成績評価
    レポート
    課題
    16
    +
    授業中
    の活動
    最終レポート1回
    (毎回の演習課題を繋いだもの)
    授業中に出題する
    ノックの回答発表
    (加点要素)

    View full-size slide

  17. バッドデータ(1/2)
    ҮѴҚӃҠ̔ѻ̔ҙр઄ࣂඬ೾࿾ঈྩၷజ๕нжЖи̢ᆋᇊ3໇4द1ຶ॓਱̣
    䠐 ⏨ዪ䞉ᖺ㱋ู
    ᖺ㱋
    ேཱྀ䠄R2.1.1᫬Ⅼ䠅 ஺௜ᯛᩘ䠄R3.4.1᫬Ⅼ䠅
    ேཱྀ䛻ᑐ䛩䜛
    ஺௜ᯛᩘ⋡
    ඲య䛻ᑐ䛩䜛
    ஺௜ᯛᩘ๭ྜ
    ⏨ ዪ ィ ⏨ ዪ ィ ⏨ ዪ ィ ⏨ ዪ ィ
    ඲య 62,036,028 65,102,005 127,138,033 18,146,192 17,823,371 35,969,563 29.3% 27.4% 28.3% 100.0% 100.0% 100.0%
    0䡚4ṓ 2,451,534 2,331,996 4,783,530 413,155 397,028 810,183 16.9% 17.0% 16.9% 2.3% 2.2% 2.3%
    5䡚9 2,703,139 2,567,979 5,271,118 523,961 508,686 1,032,647 19.4% 19.8% 19.6% 2.9% 2.9% 2.9%
    10䡚14 2,805,669 2,667,945 5,473,614 494,090 487,797 981,887 17.6% 18.3% 17.9% 2.7% 2.7% 2.7%
    15䡚19 3,012,009 2,865,038 5,877,047 586,884 578,133 1,165,017 19.5% 20.2% 19.8% 3.2% 3.2% 3.2%
    20䡚24 3,294,145 3,116,004 6,410,149 811,149 850,766 1,661,915 24.6% 27.3% 25.9% 4.5% 4.8% 4.6%
    25䡚29 3,332,499 3,133,721 6,466,220 915,349 946,339 1,861,688 27.5% 30.2% 28.8% 5.0% 5.3% 5.2%
    30䡚34 3,562,668 3,387,856 6,950,524 1,051,511 1,040,528 2,092,039 29.5% 30.7% 30.1% 5.8% 5.8% 5.8%
    35䡚39 3,938,861 3,791,620 7,730,481 1,135,626 1,090,662 2,226,288 28.8% 28.8% 28.8% 6.3% 6.1% 6.2%
    40䡚44 4,476,747 4,321,668 8,798,415 1,231,316 1,141,612 2,372,928 27.5% 26.4% 27.0% 6.8% 6.4% 6.6%
    45䡚49 5,052,054 4,908,004 9,960,058 1,395,037 1,297,418 2,692,455 27.6% 26.4% 27.0% 7.7% 7.3% 7.5%
    50䡚54 4,370,727 4,295,647 8,666,374 1,289,006 1,233,930 2,522,936 29.5% 28.7% 29.1% 7.1% 6.9% 7.0%
    55䡚59 3,893,633 3,885,044 7,778,677 1,302,965 1,260,233 2,563,198 33.5% 32.4% 33.0% 7.2% 7.1% 7.1%
    60䡚64 3,705,990 3,778,959 7,484,949 1,329,803 1,271,875 2,601,678 35.9% 33.7% 34.8% 7.3% 7.1% 7.2%
    65䡚69 4,136,887 4,375,393 8,512,280 1,445,363 1,378,442 2,823,805 34.9% 31.5% 33.2% 8.0% 7.7% 7.9%
    70䡚74 4,135,964 4,624,192 8,760,156 1,593,712 1,574,026 3,167,738 38.5% 34.0% 36.2% 8.8% 8.8% 8.8%
    75䡚79 3,190,582 3,961,097 7,151,679 1,107,851 1,189,419 2,297,270 34.7% 30.0% 32.1% 6.1% 6.7% 6.4%
    80䡚84 2,169,304 3,092,116 5,261,420 816,458 857,729 1,674,187 37.6% 27.7% 31.8% 4.5% 4.8% 4.7%
    85䡚89 1,246,148 2,296,585 3,542,733 482,691 495,063 977,754 38.7% 21.6% 27.6% 2.7% 2.8% 2.7%
    90䡚94 462,823 1,243,823 1,706,646 180,748 178,387 359,135 39.1% 14.3% 21.0% 1.0% 1.0% 1.0%
    95䡚99 86,004 393,936 479,940 34,177 38,269 72,446 39.7% 9.7% 15.1% 0.2% 0.2% 0.2%
    100ṓ௨ୖ 8,623 63,336 71,959 5,340 7,029 12,369 61.9% 11.1% 17.2% 0.0% 0.0% 0.0%
    データ出典:総務省(https://www.soumu.go.jp/kojinbango_card/kofujokyo_07.html)
    世の中は計算機で処理しにくいバッドデータで溢れている

    View full-size slide

  18. バッドデータ(1/2)
    ҮѴҚӃҠ̔ѻ̔ҙр઄ࣂඬ೾࿾ঈྩၷజ๕нжЖи̢ᆋᇊ3໇4द1ຶ॓਱̣
    䠐 ⏨ዪ䞉ᖺ㱋ู
    ᖺ㱋
    ேཱྀ䠄R2.1.1᫬Ⅼ䠅 ஺௜ᯛᩘ䠄R3.4.1᫬Ⅼ䠅
    ேཱྀ䛻ᑐ䛩䜛
    ஺௜ᯛᩘ⋡
    ඲య䛻ᑐ䛩䜛
    ஺௜ᯛᩘ๭ྜ
    ⏨ ዪ ィ ⏨ ዪ ィ ⏨ ዪ ィ ⏨ ዪ ィ
    ඲య 62,036,028 65,102,005 127,138,033 18,146,192 17,823,371 35,969,563 29.3% 27.4% 28.3% 100.0% 100.0% 100.0%
    0䡚4ṓ 2,451,534 2,331,996 4,783,530 413,155 397,028 810,183 16.9% 17.0% 16.9% 2.3% 2.2% 2.3%
    5䡚9 2,703,139 2,567,979 5,271,118 523,961 508,686 1,032,647 19.4% 19.8% 19.6% 2.9% 2.9% 2.9%
    10䡚14 2,805,669 2,667,945 5,473,614 494,090 487,797 981,887 17.6% 18.3% 17.9% 2.7% 2.7% 2.7%
    15䡚19 3,012,009 2,865,038 5,877,047 586,884 578,133 1,165,017 19.5% 20.2% 19.8% 3.2% 3.2% 3.2%
    20䡚24 3,294,145 3,116,004 6,410,149 811,149 850,766 1,661,915 24.6% 27.3% 25.9% 4.5% 4.8% 4.6%
    25䡚29 3,332,499 3,133,721 6,466,220 915,349 946,339 1,861,688 27.5% 30.2% 28.8% 5.0% 5.3% 5.2%
    30䡚34 3,562,668 3,387,856 6,950,524 1,051,511 1,040,528 2,092,039 29.5% 30.7% 30.1% 5.8% 5.8% 5.8%
    35䡚39 3,938,861 3,791,620 7,730,481 1,135,626 1,090,662 2,226,288 28.8% 28.8% 28.8% 6.3% 6.1% 6.2%
    40䡚44 4,476,747 4,321,668 8,798,415 1,231,316 1,141,612 2,372,928 27.5% 26.4% 27.0% 6.8% 6.4% 6.6%
    45䡚49 5,052,054 4,908,004 9,960,058 1,395,037 1,297,418 2,692,455 27.6% 26.4% 27.0% 7.7% 7.3% 7.5%
    50䡚54 4,370,727 4,295,647 8,666,374 1,289,006 1,233,930 2,522,936 29.5% 28.7% 29.1% 7.1% 6.9% 7.0%
    55䡚59 3,893,633 3,885,044 7,778,677 1,302,965 1,260,233 2,563,198 33.5% 32.4% 33.0% 7.2% 7.1% 7.1%
    60䡚64 3,705,990 3,778,959 7,484,949 1,329,803 1,271,875 2,601,678 35.9% 33.7% 34.8% 7.3% 7.1% 7.2%
    65䡚69 4,136,887 4,375,393 8,512,280 1,445,363 1,378,442 2,823,805 34.9% 31.5% 33.2% 8.0% 7.7% 7.9%
    70䡚74 4,135,964 4,624,192 8,760,156 1,593,712 1,574,026 3,167,738 38.5% 34.0% 36.2% 8.8% 8.8% 8.8%
    75䡚79 3,190,582 3,961,097 7,151,679 1,107,851 1,189,419 2,297,270 34.7% 30.0% 32.1% 6.1% 6.7% 6.4%
    80䡚84 2,169,304 3,092,116 5,261,420 816,458 857,729 1,674,187 37.6% 27.7% 31.8% 4.5% 4.8% 4.7%
    85䡚89 1,246,148 2,296,585 3,542,733 482,691 495,063 977,754 38.7% 21.6% 27.6% 2.7% 2.8% 2.7%
    90䡚94 462,823 1,243,823 1,706,646 180,748 178,387 359,135 39.1% 14.3% 21.0% 1.0% 1.0% 1.0%
    95䡚99 86,004 393,936 479,940 34,177 38,269 72,446 39.7% 9.7% 15.1% 0.2% 0.2% 0.2%
    100ṓ௨ୖ 8,623 63,336 71,959 5,340 7,029 12,369 61.9% 11.1% 17.2% 0.0% 0.0% 0.0%
    データ出典:総務省(https://www.soumu.go.jp/kojinbango_card/kofujokyo_07.html)
    世の中は計算機で処理しにくいバッドデータで溢れている
    ҮѴҚӃҠ̔ѻ̔ҙр઄ࣂඬ೾࿾
    ⏨ዪ䞉ᖺ㱋ู
    ᖺ㱋
    ேཱྀ䠄R2.1.1᫬Ⅼ䠅 ஺௜
    ⏨ ዪ ィ ⏨
    ඲య 62,036,028 65,102,005 127,138,033 18,146,192
    0䡚4ṓ 2,451,534 2,331,996 4,783,530 413,155
    5䡚9 2,703,139 2,567,979 5,271,118 523,961
    10䡚14 2,805,669 2,667,945 5,473,614 494,090
    データの項目が入れ子構造になっている…

    View full-size slide

  19. バッドデータ(2/2)
    世の中は計算機で処理しにくいバッドデータで溢れている
    どの場所に何のデータが格納されているか、
    規則性がない…

    View full-size slide

  20. 様々なバッドデータ
    フォーマットが統一されていない…
    1つのセルに複数データが入っている…
    データが空…
    データに重複がある…
    データが構造化されていない…
    ファイルが文字化けしている…
    入力ルールに反している…

    View full-size slide

  21. 様々なバッドデータ
    フォーマットが統一されていない…
    1つのセルに複数データが入っている…
    データが空…
    データに重複がある…
    データが構造化されていない…
    ファイルが文字化けしている…
    入力ルールに反している…
    バッドデータが大量にあっても,
    前処理しないと分析ワザが使えない…

    View full-size slide

  22. 今回のお題
    架空の小売店の購買データを題材に、
    Excelでバッドデータに立ち向かう
    22

    View full-size slide

  23. 小売店の購買に関するバッドデータ
    1

    View full-size slide

  24. ⼩売店の購買データ
    レシート明細 購買履歴データ
    購買履歴は何らかの方法で管理されている

    View full-size slide

  25. シナリオ
    あなたは新⽶データサイエンティスト.
    初めての案件が、⼩売店「杏森堂」からやってきました.
    杏森堂のセールス担当者
    杏森堂では,顧客台帳をオリジナルのExcelを使っ
    て管理しています.おかげさまで,売り上げも安定し
    ています.Excelのデータも結構な量になってきた
    ので,データ分析できると,いろんな知見が分かると
    思うんです.試しに少し分析していただけますか?

    View full-size slide

  26. Day 1 の課題
    授業サポートWebsiteに掲載されたファイルと
    Excelを用いて、以下の3つの表を作成せよ
    商品A … 商品Z
    2019年1月
    2019年2月

    2019年7月
    商品ごとの年⽉別売上情報
    A市 … H市
    2019年1月
    2019年2月

    2019年7月
    各市ごとの年⽉別売上情報
    顧客名
    山本祐輔

    静岡花子
    集計期間中に買い物を
    ⾏っていない顧客のリスト

    View full-size slide

  27. 課題に⽤いるファイル
    顧客台帳データ(2ファイル:kokyaku_daicho_X.csv)
    購買記録に関するデータ( 2ファイル: uriage_X.csv)

    View full-size slide

  28. 授業サポートWebsite
    https://data-analytics2022.hontolab.org/

    View full-size slide

  29. 演習の進め⽅
    1. 課題を行うためのファイルをダウンロード
    2. 課題の詳細内容を確認
    3. ノックを解いて課題を解くためのヒントを得る
    !"#$%&'()*+,-.!/0)
    *12345678

    View full-size slide

  30. DAY1ノックの解説
    2

    View full-size slide

  31. Knock 3:⽇付形式の変換
    列の書式設定で日付の形式を変更する

    View full-size slide

  32. Knock 4−5:ピボットテーブル(1/3)
    表データを複数の軸(列)からデータをまとめる
    (集約演算)
    商品名 年度 売上
    商品A 2020 10万円
    商品B 2019 20万円
    商品A 2021 50万円

    ・軸はいくつでも設定可能
    ・代表的な集約演算は「個数」「合計」「平均」「最小/最大値」など
    商品名 売上合計
    商品A 60万円
    商品B 30万円
    商品C 75万円

    商品名でまとめて
    (全年度の)売上を合計

    View full-size slide

  33. Knock 4−5:ピボットテーブル(2/3)
    集約元の表を選択して「ピボットテーブル」を押す

    View full-size slide

  34. Knock 4−5:ピボットテーブル(3/3)
    集約したい軸(テーブルの列名),集約関数を選択

    View full-size slide

  35. Knock 8−9:VLOOKUP関数(1/3)
    表データを縦方向に検索し,値が一致した
    行の指定した範囲のデータを返す関数
    商品名 年度 売上
    商品C 2020 10万円
    商品B 2019 20万円
    商品A 2021 50万円

    データを追加したい表

    View full-size slide

  36. Knock 8−9:VLOOKUP関数(1/4)
    表データを縦方向に検索し,値が一致した
    行の指定した範囲のデータを返す関数
    商品名 年度 売上 単価
    商品C 2020 10万円
    商品B 2019 20万円
    商品A 2021 50万円

    単価情報を
    列として追加したい
    データを追加したい表

    View full-size slide

  37. Knock 8−9:VLOOKUP関数(2/4)
    表データを縦方向に検索し,値が一致した
    行の指定した範囲のデータを返す関数
    商品名 年度 売上
    商品C 2020 10万円
    商品B 2019 20万円
    商品A 2021 50万円

    商品名 カテゴリ 単価
    商品A 飲み物 250円
    商品B 惣菜 400円
    商品C 野菜 80円

    データを追加したい表(表A) 検索対象となる表(表B)

    View full-size slide

  38. Knock 8−9:VLOOKUP関数(3/4)
    表データを縦方向に検索し,値が一致した
    行の指定した範囲のデータを返す関数
    商品名 年度 売上
    商品C 2020 10万円
    商品B 2019 20万円
    商品A 2021 50万円

    ※ VLOOKUP関数は検索対象列として表の左端(1列目)を想定
    商品名 カテゴリ 単価
    商品A 飲み物 250円
    商品B 惣菜 400円
    商品C 野菜 80円

    データを追加したい表(表A) 検索対象となる表(表B)
    = VLOOKUP(商品C, 表B, 2)
    検索したい値
    検索対象となる表
    情報を引っ張る列は
    何番⽬?(カテゴリ)

    View full-size slide

  39. Knock 8−9:VLOOKUP関数(1/4)
    表データを縦方向に検索し,値が一致した
    行の指定した範囲のデータを返す関数
    商品名 年度 売上 単価
    商品C 2020 10万円 80円
    商品B 2019 20万円 400円
    商品A 2021 50万円 250円

    データを追加したい表

    View full-size slide

  40. バッドデータ対策
    3

    View full-size slide

  41. 様々なバッドデータ
    フォーマットが統一されていない…
    1つのセルに複数データが入っている…
    データが空…
    データに重複がある…
    データが構造化されていない…
    ファイルが文字化けしている…
    入力ルールに反している…

    View full-size slide

  42. 代表的なバッドデータ事例(1/2)
    氏名 生年月日 性別
    山本祐輔 1982-09-25 男
    浜松葵 1993-07-07 女
    静岡駿 平成6年11月5日 男
    … … …
    顧客リストの表
    商品名 カテゴリ 単価
    走れメロス 文学 480円
    WIRED Vol.X 雑誌 1000円
    走れメロス 文学 1050円
    … … …
    商品リスト
    データ制約に違反 矛盾データの存在
    ISO8601拡張形式に
    従っていない
    単価情報が⽭盾
    (同⼀データなのか?)

    View full-size slide

  43. 代表的なバッドデータ事例(2/2)
    氏名 購買時間 購入物
    山本祐輔 2022-04-06 12:31:50 単3電池
    浜松葵 2022-04-07 11:17:55 おーいお茶
    山本祐輔 2022-04-07 11:42:07 味噌汁, おにぎり梅
    … … …
    顧客リストの表
    1つのセルに複数のデータが混入している
    購⼊物ごとに⾏を分けて記録
    していれば,ピボットテーブル
    も使いやすいのに…

    View full-size slide

  44. 人間が読みやすいデータ
    計算機が処理しやすいデータ

    View full-size slide

  45. 人間が読みやすいデータ
    計算機が処理しやすいデータ
    変換・加⼯
    あらかじめ制約を加えたデータ収集の
    しくみを作っておくのが楽

    View full-size slide

  46. 関係データベース(RDB: Relational Database)
    l データ管理者が指定したデータの整合性を担保
    l ⼤規模データを効率よく検索・集計することが可能
    Wikipediaを扱う関係データベースのER図
    (画像出典:https://ja.wikipedia.org/)

    View full-size slide

  47. 次回以降
    関係データベースとして保存された購買データを使用
    ※ 特別にデータベース環境を⽤意する必要はありません

    View full-size slide