| 回 | 主題 | コマシラバス項目 | 内容 | 教材・教具 |
|
1
|
ビッグデータ
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第1回は、ビッグデータの種類を把握し、どのような処理が行われ、どう利活用されるかについて学ぶ。
|
①北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.2-12, 26-34
②北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.60-87, 97-102 チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.19-21
③北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.7-12, 41-58, 111-115
①〜③教員が配布する資料
|
|
コマ主題細目
|
① データの種類 ② データの処理 ③ データの利活用
|
|
細目レベル
|
① 驚異的に発達した人工知能(AI)を活用した技術が私たちの日常生活まで深く入ってきている。AIが目的に応じて適切に動くためには、ビッグデータが欠かせない。ビッグデータの特徴として、莫大な量(Volume)であることは明らかであるが、それ以外にも主に2つの特徴があり、データが計測され、記録される速度(Velocity)が速いことと、データの種類(Variety)が多様なことである。これらの英語の頭文字をとって、3Vと呼ばれる。データの種類として主に、調査データ(アンケート調査のように、実施する目的を達成するために収集されたデータ)、ログデータ(検索エンジンやECサイトの利用、運転などでユーザの意識と関係なくコンピュータに自動的に蓄積されるデータ)、実験データ(実験室や実験装置の利用で得られるデータ)、観測データ(人工衛星やアメダスなどが計測したデータ)、デモグラフィックデータ(年齢、性別、居住地、家族構成、職業などの個人情報)、メタデータ(いつ、だれが、どのようにとデータが得られた状況を説明したデータ)がある。また、構造化データと非構造化データという分類もある。前者は、ある目的のために収集され、データ処理を行いやすくするために、あらかじめデータの並べ方を厳格に定めているデータであり、後者は、文書や画像、映像、音声などの並べ方にルールがないデータのことである。本講義では、まず、データの種類について俯瞰する。
|
② 構造化データに対しては、収集された目的に応じて、データの予測や分類、相関分析、因果推論、仮説検定などの解析や、計画、最適化、可視化が行われる。大別すると、説明的データ分析(何が起きたか)、予測的データ分析(何が起きるか)、指示的データ分析(何をすればよいか)である。一方、非構造化データに対しては、文書や音声、画像、映像などのメディアごとに特徴的なデータ処理が施され、必要に応じて構造化される。文書などの言語データに対して実行されるものは自然言語処理と呼ばれ、検索、要約、校正、翻訳、対話分析、トピック分析、感情認識などが典型的である。音声処理の課題については、自然言語処理と重なるものが多く、それら以外には、音声認識、話者識別、音源分離、音源同定、楽曲分析などが特徴的である。また、画像・映像処理の課題としては、領域の分割や特定の物体を対象とする検出、追跡、任意の物体を対象とする識別(分類)をはじめ、人や顔を対象として個人識別や属性認識、骨格推定、感情認識が代表的である。本講義では、これらの従来のデータ処理に加えて、近年、発展が著しい、文章生成や音声合成、画像生成などのデータ生成技術についても概要を把握する。
|
③ ビッグデータの本格的な利用は、インターネット上に公開された様々なサイトをランキングする技術である検索エンジンにより始まった。その後、インターネットを通じて商品の販売をビジネスとするEC(電子商取引)と呼ばれる業態が登場する。ECは商品のレコメンデーション(推薦)を最適化するために、消費者の購買履歴や商品の閲覧履歴に関する膨大なデータを収集している。また、ビッグデータから個人に適応した情報サービスを提供する技術はパーソナライゼーションと呼ばれる。標準的な消費者の行動を数式で表現した従来の消費者行動モデルを、デモグラフィックデータを加味してチューニングすることで、行動の予測精度が向上する。SNS(ソーシャルネットワーキングサービス)が普及した現在では、そのビッグデータからユーザの嗜好性などが解析され、個人に焦点をあてたターゲッティング広告の精度も向上している。このようなインターネットビジネス以外の事業活動においても、在庫の適正化や調達コストの削減、製造、出荷物流、価格設定、販売管理、予算管理、異常検知、メンテナンスなどにビッグデータが活用されている。
|
|
キーワード
|
① ビッグデータ ② 構造化/非構造化データ ③ 説明的/予測的/指示的データ分析 ④ レコメンデーション ⑤ パーソナライゼーション
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、ビッグデータとは何か調べ、データの種類、処理、利活用について確認しておくこと。 【本コマの復習】①データの種類、処理、利活用について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③身の回りにあるデータが、学んだ種類のどれに属し、どう処理され、利活用されているか、さらには、今後想定されるかを考えてみること。データ駆動型社会で活動していくために、データの収集、解析、応用に積極的に参加していくと良い。ビッグデータの波に飲まれないように、データの扱いに慣れることが重要である。
|
|
2
|
データの可視化
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第2回は、ビッグデータを可視化することの重要性を把握し、グラフ、散布図、ネットワークなどによる可視化方法について学ぶ。
|
①北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.79-80, 151-152, 154-155
②北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.80-81, 152-154
③北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.82-83
④北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.84, 155-156
①〜③教員が配布する資料
|
|
コマ主題細目
|
① グラフ ② 散布図 ③ ネットワーク ④ その他の可視化方法
|
|
細目レベル
|
① ビッグデータを解析するにあたり、データを解析ツールに入力して出力される結果を見るだけではなく、まず、データ自体を見て、改めて仮説や解析の方針を立てることが重要である。しかし、大量のデータを数値群として眺めても、それらに潜む傾向は分かりにくい。そこで、データを見やすい形式に可視化することが重要である。本講義では、まず、これまでに学びの機会が多くあったグラフについて復習する。グラフの種類として主に、棒グラフ、円グラフ、帯グラフ、折れ線グラフが挙げられる。棒グラフは、あるグループに属する個体の数を、絶対値として他のグループと比較する場合に用いられる。そのグループを数量的に範囲分けして棒グラフで表示したものはヒストグラムと呼ばれる。一方で、全体に対するそれぞれのグループの割合を示す場合には、円グラフや帯グラフが用いられる。折れ線グラフは、データを時間ごとに計測した場合などに用いられ、データを直線で結ぶことで時系列変化が見えやすくなる。本講義では、基本的なグラフを用いたビッグデータの可視化を事例を交えて確認する。
|
② データ解析において、1つのデータを身長と体重のような数値の組で表すことが多い。この場合、例えば、グラフの横軸に身長、縦軸に体重をとり、数値の組みを1つの点(プロット)で表す散布図が用いられる。散布図は、データの分布を図示する最も基本的な方法であり、相関を目視するために用いられるツールである。データの分布については、ヒストグラムもその可視化方法の1つである。また、データの分布を表す主要な指標である四分位数を、箱の上辺、箱内の線、箱の下辺、最大値と最小値をひげで表す箱ひげ図や、ヒストグラムと箱ひげ図の特徴を併せ持ったバイオリンプロットという可視化方法もある。本講義では、データの分布を可視化する代表的な方法を学ぶ。
|
③ 散布図は、データの分布として数値群と数値群の関係を可視化したものであるが、関係性を可視化する方法は他にもあり、その代表的なものがネットワークである。ネットワークはグラフとも呼ばれるため、棒グラフなどと混同しないように注意する必要がある。例えば、飛行機の航路図がネットワークとして表現される。空港を点、飛行機が発着する空港を線で結ぶ。この点を頂点や接点(ノード)、線を辺(エッジ)と呼ぶ。多くの航路を持つ主要な空港をハブ空港と呼ぶが、同様の性質を持つノードのことをハブと呼ぶ。人間関係も良くネットワークで表現され、ソーシャルネットワークとも呼ばれる。本講義では、事物の間の関係性を表現するネットワークおよびグラフによる可視化方法を学ぶ。
|
④ 上記の他にも様々な可視化方法がある。まず、ヒートマップが挙げられる。ヒートマップは、2つの説明変数を横軸と縦軸の座標として表現し、その2軸で構成される2次元の空間を離散化して格子状に区切り、2つの説明変数に対応する目的変数を色に変換して格子を色付けたものである。また、地図上で国をデータに従って色付けしたり、国と国の関係を表すネットワークを重畳することも良く行われる。人や物などが動いた経路の可視化は軌跡であり、人流や物流を見ることができる。渡り鳥やウミガメにGPSを付けて、どのように移動しているかを可視化するバイオロギングも盛んになっている。本講義では、データを可視化する様々な方法を事例を交えて学ぶ。
|
|
キーワード
|
① グラフ ② ヒストグラム ③ 散布図 ④ ネットワーク ⑤ ヒートマップ
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「基礎数学」や「情報処理実習」の講義資料を利用して、各種グラフなどデータの可視化方法について確認しておくこと。 【本コマの復習】①棒グラフ、円グラフ、帯グラフ、折れ線グラフ、ヒストグラム、散布図、箱ひげ図、ネットワークなどのデータの可視化方法について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③身の回りにあるデータが、どのように可視化されているか確認すること。データ駆動型社会で活動していくために、データの収集、解析、応用に積極的に参加していくと良い。ビッグデータの波に飲まれないように、データの扱いに慣れることが重要である。
|
|
3
|
クラスタリング
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第3回は、ビッグデータを解析する基本的な技術として、データを分類するためのクラスタリングについて、代表的な方法を学ぶ。
|
①北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.64-66 麻生 英樹,津田 宏治,村田 昇,“パターン認識と学習の統計学”,岩波書店,2021,pp.60
②C. M. ビショップ,“パターン認識と機械学習(上)”,シュプリンガー・ジャパン,2007,pp.107-110
③永田 靖,棟近 雅彦,“多変量解析法入門”,サイエンス社,2001,pp.174-185
①〜③教員が配布する資料
|
|
コマ主題細目
|
① k-meansクラスタリング ② 混合ガウスモデル ③ 階層的クラスタリング
|
|
細目レベル
|
① ビッグデータを解析してレコメンデーションを行う場合、似た行動や嗜好をグループ化することが一般的に行われる。分けるべきグループがあらかじめ決まっている場合は、その事前知識に基づいてデータをグループ分け(グルーピング)する。一方で、グループがあらかじめ決まっていない場合は、データ間の類似度を計算し、似ているデータを集めて、グループを作る。後者はクラスタリングと呼ばれ、教師なしの分類アルゴリズムである。未知のデータを分類するために、そのグループ(クラスタ)の境界を用いると、分類器の教師なし学習を行ったことになる。ビッグデータを扱う場合、全てのデータがどういう性質を持っているのかを見ることは難しいが、各グループのモデルを作ったり、代表例を分析すれば、全データの傾向を把握しやすくなる。グルーピングやクラスタリングは、レコメンデーション以外にも有用な処理である。本講義では、まず、クラスタリングの代表的な手法であるk-meansクラスタリングを学ぶ。k-meansクラスタリングは、最初にデータをランダムなk個のクラスタに分類し、各クラスタの重心を求めて代表点とみなす。次に、各データについて、全代表点から最も距離が近いものを選ぶことで、k個のクラスタが再構成される。この処理を、代表点の動きがある程度の範囲に収束するまで繰り返す。本講義では、k-meansクラスタリングの理論とクラスタ数kの決め方を学ぶ。なお、プログラミングでのクラスタリングの実践は第9回に行う。
|
② 次に、k-meansと並ぶクラスタリング手法として、混合ガウスモデル(Gaussian Mixture Model: GMM)を学ぶ。混合ガウスモデルは、データに複数のガウス分布(正規分布)を当てはめる手法で、異なるガウス分布の重み付きの線形結合としてデータを表現する。つまり、多峰性の分布を数理的に表現する。混合ガウス分布を用いたクラスタリングは、各正規分布をクラスタとみなし、その平均値とデータとの距離が最も近いクラスタを選ぶことで行われる。距離は、データの分散を考慮したマハラノビス距離が用いられる。k-meansとの違いは、データの分布の分散を明示的に考慮している点である。あらかじめ、正規分布の数を決めておく必要があり、それはk-meansクラスタリングと同様である。本講義では、混合ガウスモデルを用いたクラスタリングを学ぶ。
|
③ k-meansクラスタリングと混合ガウスモデルは、あらかじめ、クラスタ数を決める必要があるが、それが定まらないことが多い。そこで、最初はデータ1つを1つのクラスタとし、ある条件の距離を満たすクラスタを徐々に統合していく方法がある。これは階層的クラスタリングと呼ばれ、クラスタの統合過程を示すデンドログラム(樹形図)が描かれる。クラスタ間の距離として、主に下記の5つが用いられる。1. 最短距離法:2つのクラスタに属するデータのうち、最も近いデータ間の距離とする方法,2.最長距離法:2つのクラスタに属するデータのうち、最も遠いデータ間の距離とする方法,3. 群平均法:2つのクラスタに属するデータ間の全ての組み合わせの距離を求め、その平均値とする方法,4. 重心法:各クラスタの重心を代表点とし、重心間の距離とする方法,5. ウォード法:統合された場合のクラスタ内の平均値との各データの差の平方和を距離とする方法である。本講義では、階層的クラスタリングの統合過程と、各距離でクラスタリングした場合に形成されるクラスタの特徴を学ぶ。
|
|
キーワード
|
① 教師なし ② k-means ③ GMM ④ デンドログラム ⑤ ウォード法
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「環境統計解析学基礎」などの講義資料を利用して、正規分布やクラスタリングについて確認しておくこと。 【本コマの復習】①k-meansクラスタリング、混合ガウス分布、階層的クラスタリングについて配布資料を再読し、第6回以降のプログラミング演習に備えて、理論的な部分を良く復習しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。データ駆動型社会で活動していくために、データの収集、解析、応用に積極的に参加していくと良い。ビッグデータの波に飲まれないように、データの扱いに慣れることが重要である。
|
|
4
|
主成分分析
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第4回は、データの次元を確認し、多次元データからの特徴抽出と次元圧縮の概念を把握した上で、そのための代表的な手法である主成分分析について学ぶ。
|
①北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.80-81
②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.410-412 石井健一郎,上田修功,前田英作,村瀬洋,“わかりやすいパターン認識”,オーム社,1998,pp.106-114
③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.413-418 石井健一郎,上田修功,前田英作,村瀬洋,“わかりやすいパターン認識”,オーム社,1998,pp.134-139
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 多次元データ ② 主成分分析 ③ 次元圧縮
|
|
細目レベル
|
① 第2回で学んだように、データ解析において、1つのデータを身長と体重のような数値の組で表すことが多い。その組になっている数値の個数を次元と呼ぶ。ビッグデータの場合、それが多次元であることが頻繁に起こる。最も典型的なものは画像である。画像は、1つの画素を1つの次元とみなすためである。例えば、4Kの画像は、解像度が3,840×2,160=8,294,400画素であるため、1枚の画像が約800万次元ということになる。データの次元が多くなるほど、算法が指数関数的に大きくなり、統計解析や機械学習を妥当に行うために必要なデータ量が指数関数的に増える。これは次元の呪いと呼ばれる。また、多次元のデータの分布を可視化することが不可能であるという問題もある。前者については、データを増やすことでも解決できるが、特徴的な次元を抽出してデータを近似し、次元を圧縮することが一般的に行われる。本講義では、データの次元を理解し、どんなデータが多次元データであるか確認する。
|
② データから特徴的な次元を抽出して、次元を圧縮する代表的な手法として、主成分分析(Principal Component Analysis: PCA)が挙げられる。特徴的な次元とは、データが分布する空間上でデータの分布を良く説明する成分を含む軸という意味である。主成分分析は、データの特徴を良く表す固有ベクトルを抽出し、固有ベクトルを用いてデータを表現する。固有ベクトルは、データの分布の分散が最大となる軸から順番に、その軸に直交する軸として計算されていき、最終的には元の次元と同じ数だけ得られる。つまり、固有ベクトルで張られる空間(固有空間)は元の空間を回転したものとなる。また、固有ベクトルと同時に、固有値が求まる。各固有値は、各固有ベクトルが元のデータを表す度合いと考えると良い。本講義では、主成分分析の概念と理論を学ぶ。
|
③ 主成分分析を用いて次元を圧縮するには、まず、固有値の大きい方から次元圧縮に用いる固有ベクトルを制限する。この際、全ての固有ベクトルの固有値の合計に対する各固有値の割合を求め、これを寄与率と呼ぶ。寄与率を大きい方から累積していき、例えば、80%を超えるまでの各寄与率に対応する固有ベクトルを選ぶ。この選択した固有ベクトルを用いて、元のデータの80%を再構成(復元)することができる。ここで、圧縮率は、元の次元数に対する選択した固有ベクトルの数の割合ということになる。データの再構成は、元のデータに固有ベクトルをかけることで可能である。次元を圧縮する手法としては、主成分分析の他に、多次元尺度構成法やt分布型確率的近傍埋め込み法(t-SNE)、深層学習を用いたものなどがある。本講義では、主成分分析による次元圧縮を学ぶ。
|
|
キーワード
|
① 主成分分析(PCA) ② 特徴抽出 ③ 固有ベクトルと固有値 ④ 寄与率 ⑤ 次元圧縮
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「基礎数学」などの講義資料を利用して、行列の計算や多次元データについて確認しておくこと。 【本コマの復習】①主成分分析と次元圧縮について配布資料を再読し、第6回以降のプログラミング演習に備えて、理論的な部分を良く復習しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③身の回りのデータが何次元で、どういった次元で構成されているか調査すること。データ駆動型社会で活動していくために、データの収集、解析、応用に積極的に参加していくと良い。ビッグデータの波に飲まれないように、データの扱いに慣れることが重要である。
|
|
5
|
相関と因果
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第5回は、まず、これまでに学んで来た相関と因果について復習し、ビッグデータを解析する上で実用的な相関分析および因果の数理的表現について学ぶ。
|
①北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.22, 66-69, 138-142
②北川 源四郎,竹村 彰通 編,“教養としてのデータサイエンス”,講談社,2021,pp.69, 138-142 C. M. ビショップ,“パターン認識と機械学習(上)”,シュプリンガー・ジャパン,2007,pp.11-17, 20-24
③C. M. ビショップ,“パターン認識と機械学習(下)”,シュプリンガー・ジャパン,2007,pp.71-74, 20-24, 323-333
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 順位相関、正準相関 ② ベイズの定理 ③ グラフィカルモデル
|
|
細目レベル
|
① 第3回で、ビッグデータを解析してレコメンデーションを行う場合に、クラスタリングを行う重要性を学んだ。実際に、消費者の行動に対して何かを推薦する際には、行動と行動の相関や因果をあらかじめ解析しておく必要がある。相関については、その概念と相関係数の計算および解釈を「基礎数学」などで学んでいるため、それらについては復習程度にとどめ、本講義では、その他の相関分析について学ぶ。これまでに学んだ相関係数(積率相関係数)は、2群のデータそれぞれが、ある尺度に従った物理量を持っている必要があるが、解析対象のデータが必ずそうとは限らない。もし、データが相対的に順位付けされ並びを持っているなら、順位相関係数を求めることができる。また、3群以上のデータの共通性を解析したい場合には、正準相関分析を利用することができる。正準相関分析は、例えば、あるクラスのテストの点数として、数学x1,理科x2,国語x3,社会x4が生徒ごとに得られている場合、y=a*x1+b*x2とz=c*x3+d*x4のyとzの相関係数が最大化するように係数a, b, c, dを求め、複数のデータの共通性を分析する。本講義では、ビッグデータを解析するための相関分析について学ぶ。
|
② 因果についても、その概念(ある事象が何らかの事象の結果、もしくは何らかの事象の原因であること)や、相関と混同されやすいこと、相関から安易に導いてはならないことを学んできているが、本講義では因果に関する数理について触れる。因果があるということは、数理的には、ある事象が起こった場合に他の事象が起こる確率である条件付き確率が高いと解釈される。事象Aが起こった場合に事象Bが起こる条件付き確率P(B|A)は、P(B|A)=P(A∩B)/P(A)と表される。P(A∩B)は、事象AとBが同時に起こる確率であり、P(A)は、事象A が起こる事前確率である。条件付き確率による因果の表現は、ベイズの定理を基本的な考え方とする。ベイズの定理は、上式を変形して、P(B|A)=P(A|B)P(B)/P(A)と表される。本講義では、因果を表す数理の基礎として、ベイズの定理を学ぶ。
|
③ 因果には方向性があり、事象を表す確率変数を頂点(ノード)、変数間の確率的関係を辺(リンク)とする有向グラフで表され、グラフィカルモデルあるいはベイジアンネットワークと呼ばれる。最も基本形である2つの確率変数のベイズの定理だけではなく、複数の確率変数を連結した複雑な因果を表すグラフを構成することができる。ただし、非循環の有向グラフでなければならないが、全てのノード間にリンクが存在する全結合型でも、そうではなくても良い。また、時間的情報を含むように拡張したものは、動的ベイジアンネットワークと呼ばれ、事象が時間とともに展開する場合を表現するために用いられる。ベイジアンネットワークには様々な種類があり、音声認識で一般的に用いられてきた隠れマルコフモデルが代表的である。本講義では、因果の数理的表現であるグラフィカルモデルについて、その概要を学ぶ。
|
|
キーワード
|
① 順位相関 ② 正準相関 ③ 条件付き確率 ④ ベイズの定理 ⑤ ベイジアンネットワーク
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「基礎数学」や「環境統計解析学基礎」の講義資料を利用して、相関や相関係数、因果、確率論について確認しておくこと。 【本コマの復習】①順位相関、正準相関、ベイズの定理、グラフィカルモデルについて配布資料を再読し、第6回以降のプログラミング演習に備えて、理論的な部分を良く復習しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。データ駆動型社会で活動していくために、データの収集、解析、応用に積極的に参加していくと良い。ビッグデータの波に飲まれないように、データの扱いに慣れることが重要である。
|
|
6
|
ECデータの集計
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第6回は、Python言語を用いたビッグデータ解析の導入として、データの結合、計算、集計といった基本的な処理を行うプログラミングを学び、実践する。データはEC(電子商取引)データを用いる。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.35-44
②下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.44-48
③下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.48-55
①〜③教員が配布する資料
|
|
コマ主題細目
|
① データの結合 ② データの計算 ③ データの集計
|
|
細目レベル
|
① 本講義では、Python言語を用いてECサイトでの商品の注文データを集計する。ECサイトとは、Electronic Commerce(電子商取引)を行うWebサイトのことである。ECサイトのデータは、Webから得られるデータであるため、構造化されていて、比較的きれいなデータであることが多く、ビッグデータ解析の最初の一歩に適している。それでも、データが月ごとや、ある件数、項目ごとに分割されてファイルに格納されていて、データ分析に適した形に加工する必要があることが多い。そこで、まず、ファイルに格納されているデータをPandasモジュールのread_csv()関数などで読み込み、結合する。結合には、主体のファイルにデータを行方向に追加するユニオンと列方向に追加するジョインがあり、前者はPandasモジュールのconcat()関数、後者はmerge()関数を用いると良い。本講義では、複数のファイルに含まれるデータの共通性を確認して、分析に必要な形に結合するプログラミング技術を学ぶ。
|
② 次に、項目間で処理を行って必要なデータ列を作成する。例えば、単価の列と個数の列を掛け算し、売上の列を追加する。そこで、Pandasモジュールのデータフレーム型の計算を実行する。データ列間での計算が行ごとに実行される。ここで、データの結合や計算を行った後には、件数等の確認や検算を行うことを心がける。また、データに欠損値「NaN」が含まれるかどうかを確認する。データフレーム型の場合は、Pandasモジュールのisnull()メソッドを用いることで、データの要素ごとに欠損値であればTrue、なければFalseと判定でき、sum()関数を追加することで、列ごとにTrueの数をカウントできる。なお、欠損値の修正は第7回で学ぶ。ここまでが、分析のためのデータ加工である。本講義では、分析に適した形にデータを整え、その後はまず、Pandasモジュールのdescribe()関数を用いて各種の基本統計量(データ件数、平均値、標準偏差、最小値、四分位数、中央値、最大値)を一括で計算し、全体的な傾向を確認するプログラミング技術を学ぶ。
|
③ 全体的な傾向を確認した後は、例えば、月別や商品別など、属性(項目)ごとに集計を行う。これにより、時系列の変化や属性間の比較を行うことができる。そこで、各注文データに含まれる注文日に基づいて、月別にデータを抽出して一覧表示する。注文日がobject型で文字列として扱われている場合は、Pandasモジュールのto_datetime()関数を用いて、datetime型に変更する。次に、datetime型のstrftime()メソッドを用いて、年月を抽出して、文字列に戻す。続いて、Pandasモジュールのgroupby()メソッドで月別にまとめ、sum()関数を追加することで、月別の合計を計算し、売上金額だけを表示したり、商品別に集計して注文数も並べて表示することができる。また、Pandasモジュールには、集計のための関数としてpivot_table()メソッドも用意されている。本講義では、Pandasモジュールの集計用関数を用いて、データの属性ごとに集計するプログラミング技術を学ぶ。
|
|
キーワード
|
① ユニオン ② ジョイン ③ 欠損値 ④ 属性 ⑤ 集計
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「環境プログラミング基礎」の講義資料を利用して、Python言語を用いたコードの記述と実行方法について確認しておくこと。 【本コマの復習】①Python言語を用いたデータの結合、計算、集計について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
7
|
小売店データのクレンジング
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第7回は、ビッグデータ解析の前処理として必要なデータの揺れの確認や補正といったクレンジングについて、Python言語を用いたプログラミングを学び、実践する。データは小売店データを用い、補正したデータの集計も行う。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.57-63
②下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.64-76
③下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.76-82
①〜③教員が配布する資料
|
|
コマ主題細目
|
① データの揺れの確認 ② データの揺れの補正 ③ 補正したデータの集計
|
|
細目レベル
|
① 本講義では、Python言語を用いて小売店データの分析を行うための準備として、売上履歴と顧客台帳データのクレンジングを行う。小売店のデータは、ECサイトのシステムによって管理されたデータとは違って、人手を介するため、入力ミスなどのデータの揺れや入力漏れが含まれることが多い。そういったデータをプログラムで読み込んで処理しようとすると、正しい結果が得られなかったり、そもそも処理できないなど、問題が生じる。そこで、前処理として、データの不完全性を確認し、補正する必要がある。これをクレンジングと呼ぶ。まず、Pandasモジュールのread_csv()関数などで読み込み、項目ごとにhead()メソッドを用いて最初の5つのデータを表示し、商品名の揺れがないか、金額に欠損値「NaN」がないかを確認する。また、pivot_table()メソッドを用いて、データに揺れがあるまま集計してみて、生じる問題を確認する。本講義では、まず、データの揺れを確認するためのプログラミング技術を学ぶ。
|
② データの揺れとして、大文字と小文字の揺れや半角スペースと全角スペースの揺れ、スペースの有無などが考えられる。こういったデータの揺れを補正するために、例えば、小文字を大文字に変換して統一する場合は、Pandasモジュールのstr.upper()メソッドを用いる。特定の文字列の変換には、str.replace()メソッドを用いて、例えば、全角スペースを半角スペースに変換する場合は、str.replace(“ ”, “ ”)と記述し、全角スペースを削除する場合は、str.replace(“ ”, “”)と記述する。補正した後は、必ず確認することを心がける。また、欠損値については、第6回で学んだように、欠損値が含まれているかどうかをisnull()メソッドで確認する。欠損値が商品の単価であるなら、その商品に対して単価が入力されている箇所を特定し、その単価を欠損箇所に入力すれば良い。本講義では、特定の文字列の補正や欠損値の補正の他、日付を補正するプログラミング技術も学ぶ。
|
③ データをクレンジングした後は、必ずファイルに出力(ダンプ)して、保存しておく。そうすることで、再分析が必要になった際に、ダンプしたデータをファイルから読み込むことで、クレンジングのやり直しを省略することができる。ダンプする前には、データの今後の扱い方に応じて、データの項目(列)を並び替えておく。これにはデータフレームの操作を行う。そして、Pandasモジュールのto_csv()メソッドを用いてデータをファイルに出力する。データのクレンジングは、あくまでデータ解析の前処理である。そこで、まず、基本的な集計を行う。本講義では、売上履歴と顧客台帳の2つのデータを扱っているので、例えば、売上履歴に含まれる顧客名と顧客台帳に含まれる顧客名をキーとして、売上履歴に顧客台帳から顧客情報を結合(ジョイン)する。そして、データの属性ごとに集計を行う。第6回で学んだ集計方法を応用し、データを集計するプログラミング技術を定着させる。
|
|
キーワード
|
① データの揺れ ② クレンジング ③ 変換 ④ ダンプ ⑤ 集計
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「環境プログラミング基礎」の講義資料を利用して、Python言語のPandasモジュールの関数やメソッドを用いたコードの記述方法について確認しておくこと。 【本コマの復習】①Python言語を用いたデータの揺れの確認と補正について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
8
|
電力データの可視化
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第8回は、ビッグデータ解析において重要なプロセスである可視化について、分布や比較・変化、変数間の関係の可視化を行うためのPython言語を用いたプログラミングを学び、実践する。データは電力データを用いる。
|
①下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ加工/可視化100本ノック”,秀和システム,2022,pp.130-135
②下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ加工/可視化100本ノック”,秀和システム,2022,pp.135-146
③下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ加工/可視化100本ノック”,秀和システム,2022,pp.147-152
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 分布の可視化 ② 比較・変化の可視化 ③ 変数間の関係の可視化
|
|
細目レベル
|
① 第7回で学んだようにデータのクレンジングを行った後は、データの集計とともにデータの可視化を行うと良い。ビッグデータ解析における可視化の重要性は第2回で学んだ。本講義では、Python言語を用いて電力データの可視化を行う。電力データとして、資源エネルギー庁のWebサイトから取得した2種類を扱う。1つ目は、年月ごとの都道府県別の発電所数と最大出力のデータである。発電種別として、水力、火力、原子力、風力、太陽光、地熱、バイオマス、廃棄物が含まれる。2つ目は、都道府県別の発電実績(電力量)のデータである。まず、データの分布を確認するために、発電所数をヒストグラムで可視化する。本講義では、Matplotlibのmatplotlib.pyplotモジュールとseabornモジュールを用いて、グラフを描画する。描画する前に、可視化の対象とするデータをPandasモジュールのloc()で抽出する。ヒストグラムは、seabornモジュールのhistplot()関数を用いて描画する。次に、発電所数を箱ひげ図で可視化する。箱ひげ図は、seabornモジュールのboxplot()関数を用いて描画する。本講義では、データの分布を可視化する基本的なプログラミング技術を学ぶ。
|
② データの分布を見た後は、データを比較するための可視化を行う。そのために用いられる最も基本的なグラフは棒グラフである。ここで、ある年月の発電種別ごとの電力量を比較する。さらには、別の年月の電力量の棒グラフを横に並べ、月間の差を確認する。棒グラフは、seabornモジュールのbarplot()関数を用いて描画する。次に、電力量の時系列変化を可視化する。そのために用いられる最も基本的なグラフは折れ線グラフである。折れ線グラフは、seabornモジュールのlineplot()関数を用いて描画する。ある発電種別だけではなく、各発電種別の折れ線グラフを並べて描画し、時系列変化の比較を行う。また、電力量の割合の可視化も行う。割合は円グラフで可視化することが一般的である。円グラフは、Pandasモジュールのplot.pie()メソッドで描画することができる。本講義では、データの比較・変化を可視化する基本的なプログラミング技術を学ぶ。
|
③ 上述の棒グラフによる可視化は、年月と電力量の2つの説明変数を対象にデータを抽出したが、説明変数の定義域が広くなると、多数の棒グラフが並び、可読性が良くなくなる。そこで、ヒートマップによる可視化が良く行われる。ここでは、年月と都道府県別で電力量を抽出し、横軸に年月、縦軸に都道府県として、それぞれの電力量を色で表示するヒートマップを、seabornモジュールのheatmap()関数を用いて描画する。次に、相関を見るような、従属変数間の関係を可視化する。そのために一般的に用いられるグラフは散布図である。散布図は、seabornモジュールのscatterplot()関数を用いて描画する。散布図の弱点は、プロットが重なると、頻度を把握することが難しくなる点である。そこで、散布図に、各軸で見たヒストグラムを合わせて表示するジョイントプロットという可視化がある。ジョイントプロットは、seabornモジュールのjointplot()関数を用いて描画することができる。本講義では、データの2変数間の関係を可視化する基本的なプログラミング技術を学ぶ。
|
|
キーワード
|
① ヒストグラム ② 箱ひげ図 ③ 棒・折れ線・円グラフ ④ ヒートマップ ⑤ 散布図
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイト、「環境プログラミング基礎」や前回までの講義資料を利用して、Python言語のMatplotlibを用いたグラフの描画のためのコードおよびデータの集計のためのコードの記述について確認しておくこと。 【本コマの復習】①Python言語を用いたデータの分布、比較、変化、変数間の関係の可視化について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
9
|
顧客データのクラスタリングと予測
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第9回は、第3回で学んだデータのクラスタリングについて、Python言語を用いたプログラミングを実践する。データは顧客データを用い、「基礎数学」等で学んだ線形回帰とそれを応用した予測についても実践する。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.107-112
②下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.112-117
③下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.117-126
①〜③教員が配布する資料
|
|
コマ主題細目
|
① データのクラスタリング ② データのクラスタリング結果の可視化 ③ データの予測
|
|
細目レベル
|
① ビッグデータ解析の主な目的の一つがクラスタリングであることを第3回で学んだ。本講義では、あるサービスの会員データに対してクラスタリングを実践する。顧客の行動は、今までの利用履歴や顧客属性に基づいて傾向が表れるため、クラスタリングを行って、それぞれのクラスタの特性を捉えることが、将来予測などを精度良く行うためにも重要である。ここでは、サービスの利用履歴データを扱い、各会員の月利用回数の平均値、中央値、最大値、最小値および会員期間を特徴ベクトルとして、k-means法を用いてクラスタリングを行う。k-means法は、scikit-learnライブラリのsklearn.cluster.KMeansクラスを用いて実装することができる。k-means法は、あらかじめクラスタ数kを指定する必要があるため、まず、k=4としてクラスタリングし、ついでkを変えてクラスタリングを行う。本講義では、データをクラスタリングするプログラミング技術を学ぶ。
|
② クラスタリングを行った後は、まず、その結果を数値的に確認する。ここでは、各クラスタに含まれる会員の数と特徴ベクトルの平均を求めて表示する。そのために、Pandasモジュールのgroupby().count()とgroupby().mean()メソッドを用いる。kを変えることで、クラスタがどのように変化するか確認する。次に、クラスタを2次元のグラフ上にプロットして可視化し、クラスタの分かれ具合を確認する。特徴ベクトルが5次元であるため、そのままではプロットすることができない。そこで、主成分分析を行って2次元に圧縮する。主成分分析は、scikit-learnライブラリのsklearn.decomposition.PCAクラスを用いて実装することができる。続いて、クラスタごとに、特徴ベクトル以外の属性に着目して集計し、傾向を把握する。本講義では、クラスタリング結果の分析や可視化を行うプログラミング技術を学ぶ。
|
③ これまでの分析から、会員の利用履歴にいくつかの傾向が見られるため、過去の利用回数から翌月の利用回数を予測することを試みる。つまり、利用回数の予測モデルを構築する。この課題に対して、本講義では、初歩的な機械学習手法である線形回帰を適用する。本格的な機械学習手法については、3年次後期の「人工知能と機械学習」で学ぶことができる。機械学習を行うプロセスにおいて、データを学習用と評価用に分けて、学習用データを用いてモデルを訓練し、評価用データでモデルを評価する必要がある。このデータの分割には、scikit-learnライブラリのsklearn.model_selection.train_test_split()関数を用いる。線形回帰は、scikit-learnライブラリのsklearn.linear_model.LinearRegressionクラスを用いて実装することができる。線形回帰モデルを構築した後には、モデルに寄与している変数を確認する。そして、モデルが学習していない未知の会員の過去の利用回数をモデルに入力し、翌月の利用回数を予測する。本講義では、機械学習を用いてデータを予測するプログラミング技術を学ぶ。
|
|
キーワード
|
① クラスタリング ② k-means法 ③ 主成分分析 ④ 機械学習 ⑤ 線形回帰
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、前回までの講義資料を利用して、クラスタリングと主成分分析を復習しておくこと。また、参考書籍やWebサイトを利用して、機械学習の概要と線形回帰について確認しておくこと。 【本コマの復習】①Pythonを用いたデータのクラスタリング、クラスタリング結果の可視化、予測について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
10
|
物流データの解析
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第10回は、第2回で学んだデータの可視化方法の1つであるネットワークの描画について、Python言語を用いたプログラミングを実践する。データは物流データを用い、物流ネットワークの基本的な解析についても実践する。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.155-163
②下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.164-170
③下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.170-180
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 物流データの集計 ② ネットワークの描画 ③ 物流ネットワークの可視化と解析
|
|
細目レベル
|
① 本講義では、Pythonを用いて物流データを解析する。社会、経済を支える物流のデータは、日々、膨大に蓄積され、ビッグデータ解析の重要な対象である。物流データとして、部品を保管する倉庫から生産工場への部品輸送実績や、倉庫と工場間の輸送コスト、各倉庫の基本情報、各工場の基本情報、輸送ルート、倉庫と工場の位置情報などが個別のファイルに格納されているとする。まず、これまでのプログラミング演習と同様に、データを結合し、項目(列データ)を並び替え、解析に必要なデータを抽出する。ここでは、輸送実績、輸送コスト、倉庫と工場の基本情報を結合し、倉庫および工場が設置されている地方ごとにデータを抽出する。そして、地方ごとの輸送総コストや総部品数、部品1個あたりのコスト、一度の輸送にかかった平均コストを集計する。本講義では、これまでに修得したプログラミング技術を応用して、物流データの集計を学ぶ。
|
② ここで、ネットワークを描画するためのコードの記述を学ぶ。Pythonでネットワークを可視化するために、networkxライブラリが一般的に用いられる。まず、Graphクラスでグラフオブジェクトを宣言して、グラフの頂点(ノード)をadd_node()メソッドで、それらをつなぐ辺(エッジ)をadd_edge()メソッドで設定する。ノードの座標位置を入力した上で、draw()関数を用いてネットワークを描画する。表示はmatplotlib.pyplotモジュールのshow()関数で行う。次に、グラフのエッジにはコストが付与され、輸送コストは基本的には、ネットワークのルート上の各エッジのコストの累積で求まる。その様子を可視化するために、グラフのエッジをコストに応じて太くする可視化が良く行われる。これは、draw()関数の引数widthに値を指定することで描画できる。本講義では、ネットワークを可視化するための基本操作として、グラフを描画するプログラミング技術を学ぶ。
|
③ 次に、輸送ルートのネットワークを可視化する。輸送ルートデータとして、どの倉庫からどの工場へ、どれだけの部品が輸送されているかを示す2次元のマトリックスが与えられているとする。このデータをもとに、上記で学んだプログラミング技術を応用して、グラフを描画する。物流ネットワークの可視化は、物流問題における解くべきゴールではない。どこかに改善が必要かどうか仮説立てを行うためのプロセスである。そのゴールは例えば、全体的な輸送コストを下げて輸送ルートを最適化することである。これは、目的関数を定義して、制約条件を満たした上で、それを最小化もしくは最大化する最適化問題と呼ばれる。ただし、その自動最適化は、ビッグデータ解析の範疇を超えるため、本講義では扱わない。本講義では、物流ネットワークを可視化し、解析するプログラミング技術を学ぶ。
|
|
キーワード
|
① ネットワーク ② グラフ ③ 頂点(node)と辺(edge) ④ コスト ⑤ 制約条件
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、グラフ表現や物流の最適化について確認しておくこと。 【本コマの復習】①Pythonを用いたネットワークの可視化と物流データの解析について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
11
|
ソーシャルネットワークの解析
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第11回は、第10回に引き続き、ネットワークを扱う。SNSデータを用いて、ソーシャルネットワーク(人間関係のネットワーク)の可視化について、Python言語を用いたプログラミングを実践する。また、ソーシャルネットワーク上での情報伝播のシミュレーションを学び、それを応用したデータ解析も実践する。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.205-209
②下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.209-220
③下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.220-228
①〜③教員が配布する資料
|
|
コマ主題細目
|
① ソーシャルネットワークの可視化と情報伝播のシミュレーション ② 情報伝播の時系列変化の分析 ③ シミュレーションと実データの比較
|
|
細目レベル
|
① SNS(Social Networking Service)の普及により、人間関係のネットワークを把握しやすくなり、ソーシャルネットワーク上での情報の伝播が人間の行動に大きく影響するため、SNSデータもビッグデータ解析の対象として重要である。本講義では、まず、小規模のソーシャルネットワークを可視化し、そのネットワーク上での口コミの伝播をシミュレーションする。ネットワークの可視化は、第10回で学んだプログラミング技術を応用する。つまり、networkxライブラリのGraphクラスを用いる。口コミの伝播は、つながっている人(隣のノード)に情報を伝えるかどうかの確率を例えば10%に設定し、情報を持っているノードで発生させた乱数がそれを満たせば、伝播させるステップを繰り返す。乱数は、NumPyライブラリのrandom.rand()関数で発生させることができる。本講義では、ソーシャルネットワーク上で情報伝播をシミュレーションするプログラミング技術を学ぶ。
|
② 次に、情報伝播の様子を可視化する。まず、口コミが伝播したノードと伝播していないノードを色分けしてネットワークを表示する。この可視化は、どのノードからどのノードに伝播したかが分かりやすいが、伝播の1ステップずつを可視化することが煩雑である。そこで、各ステップで伝播しているノードの数をカウントし、折れ線グラフで時系列変化を描画する。この可視化は、第8回で学んだプログラミング技術を応用する。ここで、情報の伝播だけではなく、情報の消滅を確率的に発生させる。情報の伝播と消滅の確率をそれぞれ変更して、伝播の仕方の変化を確認する。本講義では、ソーシャルネットワーク上での情報伝播の時系列変化を分析するプログラミング技術を学ぶ。
|
③ 続いて、より大規模なソーシャルネットワークの解析に発展させる。まず、ノードとエッジから成るグラフを描画してみるが、ネットワークが大規模になると、グラフの構造を把握しにくくなる。そこで、グラフの特徴を定量化する。ここでは、各ノードのリンク数(エッジ数)のヒストグラムを描画する。次に、情報の伝播と消滅の確率が推定されているとして、それに基づいて、上記で学んだことを応用して、シミュレーションを行う。ここで、サービスの利用実績の実データが得られているとして、シミュレーションと実データの時系列変化を可視化して比較する。さらには、得られている実データの期間を超えて、シミュレーションによる将来予測を行う。実データから線形回帰で将来予測を行い、比較しても良い。本講義では、大規模なソーシャルネットワークも用いて、情報伝播をシミュレーションするプログラミング技術を定着させる。
|
|
キーワード
|
① ソーシャルネットワーク ② 情報伝播 ③ 確率 ④ シミュレーション ⑤ 予測
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、前回までの講義資料を利用して、ネットワークの描画や分析のためのコードの記述を復習しておくこと。また、参考書籍やWebサイトを利用して、ソーシャルネットワークの解析について確認しておくこと。 【本コマの復習】①Pythonを用いたソーシャルネットワークの可視化と情報伝播のシミュレーションについて配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
12
|
アンケートデータの自然言語処理
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第12回は、アンケートデータを対象に自然言語処理を行う。具体的には、回答に含まれる不要な文字の除去、文字列の形態素解析、頻出単語の分析について、Python言語を用いたプログラミングを実践する。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.261-268
②下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.268-273
③下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.273-283
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 不要な文字の除去 ② 形態素解析 ③ 頻出単語の分析
|
|
細目レベル
|
① インターネットの普及により、膨大なアンケートを収集することができる。それが自由記述の場合、自然言語処理を導入した解析の自動化が必要である。本講義では、満足度のアンケートで収集されたコメントとスコアを解析する。まず、第7回で学んだプログラミング技術を応用して、欠損データを確認し、除去する。欠損データの除去は、Pandasモジュールのdropna()メソッドで行うことができる。次に、不要な文字を削除する。特定の文字列の削除(変換)も第7回で学んだが、自然言語処理では正規表現を用いて、括弧で括られているなどの特定のパターンを検索し、変換することが一般的に行われる。これは、特定の文字列の削除と同様に、Pandasモジュールのstr.replace()メソッドを用いて、str.replace(“\(.+\)”, “”, regex=True)と記述する。\(は括弧開き、\)は括弧閉じ、.+は任意の文字が1つ以上続くことを表す。本講義では、正規表現を用いたプログラミング技術を学ぶ。
|
② 文章の特徴を解析するためには、文章に含まれている単語を認識する必要があり、文章を単語に分割する技術が形態素解析である。形態素解析を行う様々なツールが公開されている。本講義では、PythonのMeCabライブラリを用いて、まず、「すもももももももものうち」という文章を品詞ごとに分割する。それは、MeCab.Taggerクラスのparse()メソッドを用いて行うことができる。分割したものは、リストに格納する。次に、名詞の単語のみを抽出する。これを応用して、動詞などの品詞ごとに単語を抽出してみる。続いて、満足度のアンケートで収集されたコメントを単語に分割し、名詞のみを抽出する。そして、同じ単語の出現回数をカウントして、頻出単語の上位を表示する。本講義では、形態素解析を行うプログラミング技術を学ぶ。
|
③ 次に、頻出単語と満足度のスコアの関係を解析する。まず、満足度のアンケートで収集されたコメントに含まれる単語とそれに付随するスコアを紐付ける。この紐付けを、データフレームに単語とスコアを格納する形で行うと、その後に集計を行いやすくなる。ここでは、Pandasモジュールのgroupby().count()関数で単語の出現回数を求め、groupby().mean()関数で単語ごとにスコアの平均値を求める。この解析の組み合わせにより、コメントにどんな単語が含まれると満足度が高くなっているかが見えてくる。本講義では、自然言語処理を用いた基本的な統計解析を行うプログラミング技術を学ぶ。演習の進展に応じて、さらに、自然言語処理の基本的なプロセスとして、単語の共起に着目して文章の類似性を解析する。ここでは、コサイン類似度を計算する。これは、類似文章を検索する基礎的な処理である。
|
|
キーワード
|
① 自然言語処理 ② 正規表現 ③ 形態素解析 ④ MeCab ⑤ 単語
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、前回までの講義資料を利用して、Pandasモジュールを用いた文字列の変換やデータの集計のためのコードの記述を復習しておくこと。また、参考書籍やWebサイトを利用して、自然言語処理について確認しておくこと。 【本コマの復習】①Pythonを用いたアンケートデータの自然言語処理について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータに対する自分なりの解析を加えることである。
|
|
13
|
音声データの解析
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第13回は、音声データを対象に前処理と基本的な解析を行う。具体的には、音声データの可視化、音の大きさや高さ、長さの編集、周波数解析について、Python言語を用いたプログラミングを実践する。
|
①下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ加工/可視化100本ノック”,秀和システム,2022,pp.257-268
②下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ加工/可視化100本ノック”,秀和システム,2022,pp.268-280
③下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ加工/可視化100本ノック”,秀和システム,2022,pp.280-285
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 音声データの可視化 ② 音声データの編集 ③ 音声データの周波数解析
|
|
細目レベル
|
① 本科目では、これまでは、第12回のアンケートデータとして収集したコメント(文章データ)を除いて、主に構造化データを扱ってきた。第13回(今回)と第14回では、非構造化データを扱い、本講義では、Pythonを用いて音声データを解析する。音声データについて、第1回で様々な処理があることを把握したが、音声認識などの高度な処理は、3年次後期の「人工知能と機械学習」に譲り、本科目ではそのための前処理的な位置付けの音声処理を学ぶ。まず、音声データをplaysoundモジュールのplaysound()関数を用いて再生する。次に、librosaライブラリのload()関数を用いて、音声データを読み込む。load()関数の戻り値は、音声を数値化したデータがNumPyのarrayに格納されたものと、サンプリングレートである。次に、librosa.displayモジュールのwaveplot()関数を用いて、音声波形を時系列のグラフとして描画する。本講義では、音声データを再生し、可視化するプログラミング技術を学ぶ。
|
② 次に、音声を数値化したデータに計算処理を行う。この数値は、音声波形の振幅を表し、音の大きさに対応する。ただし、正負の符号は、音の大きさ的には意味を持たない。そこで一般的には、その値を二乗して、ある区間で平均を取り、さらに平方根を計算する。これは、Root Mean Square(RMS)と呼ばれ、librosaライブラリのfeature.rms()関数を用いて計算することができる。RMSを計算したデータの時系列変化を折れ線グラフで描画すると、音の大きさの変化を確認しやすくなる。続いて、音の高さや長さを変化させ、音声データを編集する。librosaライブラリのeffects.pitch_shift()関数を用いて、音のピッチに対応する引数を変更することで音の高さを変化させる。また、effects.time_stretch()関数を用いて、音の再生速度に対応する引数を変更することで音の長さを変化させる。本講義では、音声データを計算し、編集するプログラミング技術を学ぶ。
|
③ 最後に、音声の周波数解析を行う。音声は、複数の周波数の波が組み合わさっていて、それをフーリエ変換によって分解することができる。本講義では、この周波数解析を行い、振幅スペクトルのグラフを描画する。NumPyライブラリのfft.fft()関数の引数に音声データを指定することで、フーリエ変換を実行することができる。その戻り値の絶対値が、周波数ごとの振幅の大きさを示し、振幅スペクトルの縦軸の値となる。振幅スペクトルの横軸は、解析された周波数であり、fft.fftfreq()関数で求まる。振幅スペクトルの描画は、matplotlib.pyplotモジュールを用いて、折れ線グラフで描画する。続いて、音声データを短時間ごとに区切って、それぞれでフーリエ変換を行って、周波数成分の時間変化(スペクトログラム)を可視化する。この短時間フーリエ変換は、librosa.stft()関数を用いて実行することができる。その戻り値の絶対値を計算し、librosa.amplitude_to_db()関数でデシベル値に変換して、librosa.display.specshow()関数で描画する。スペクトログラムは、横軸が時間、縦軸が周波数、計算されたデシベル値をヒートマップとして表す。本講義では、音声データを周波数解析するためのプログラミング技術を学ぶ。
|
|
キーワード
|
① 音声波形 ② RMS(Root Mean Square) ③ 周波数解析 ④ フーリエ変換 ⑤ スペクトルとスペクトログラム
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、第1回の講義資料や参考書籍、Webサイトを利用して、音声処理について確認しておくこと。 【本コマの復習】①Pythonを用いた音声データの解析について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータや自分で収集したデータに対する自分なりの解析を加えることである。
|
|
14
|
映像データの解析
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。第15回では、全ての講義内容をまとめ、復習し、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第14回は、映像データを対象に前処理と基本的な解析を行う。具体的には、映像データの画像への分割、機械学習を用いた画像認識による人物の検出、検出結果の集計として人数の時系列変化の可視化について、Python言語を用いたプログラミングを実践する。
|
①下山 輝昌,松田 雄馬,三木 孝行,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.233-241
②下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.241-252
③下山 輝昌,伊藤 淳二,露木 宏志,“Python実践データ分析100本ノック第2版”,秀和システム,2022,pp.252-260
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 映像データの画像への分割 ② 人物の検出 ③ 人数のカウントと時系列変化の可視化
|
|
細目レベル
|
① 本講義では、非構造化データの代表である映像をPythonを用いて解析する。映像および画像データについて、第1回で様々な処理があることを把握したが、深層学習を用いた高度な処理は、3年次後期の「人工知能と機械学習」に譲り、本科目ではOpenCVライブラリを用いた基本的な映像処理を学ぶ。まず、OpenCVライブラリのVideoCapture()を用いて映像を読み込む。映像は、定点カメラで道路上の人通りを撮影したものとする。ここで、映像の情報として、フレーム幅と高さ、フレーム数、フレームレートをget()メソッドで得る。次に、映像をフレームごとに分割して切り出し、画像として書き出す。切り出しはread()メソッドで行い、書き出しはimwrite()関数を用いて画像をJPEG形式で保存する。本講義では、映像データの解析の前処理として、映像を読み込み、画像に分割するプログラミング技術を学ぶ。
|
② 次に、分割した各画像内のどこに人がいるかを検出する。本講義では、典型的な手法として、画像からHOG(Histogram of Oriented Gradients)特徴量を抽出し、SVM(Support Vector Machine)識別器を用いて人物検出を行う。HOG特徴量は、画像の輝度勾配(エッジ成分)に基づく特徴量である。また、SVM識別器については、3年次後期の「人工知能と機械学習」で詳しく学ぶことができる。この処理は、OpenCVライブラリのHOGDescriptorクラスを用い、setSVMDetector()メソッドで初期設定を行った上で、detectMultiScale()メソッドを用いて実行する。人物検出の結果として、人物を囲う矩形の頂点の位置が得られる。この検出結果を可視化するために、OpenCVライブラリのrectangle()関数を用いて、検出した人物の周りに矩形を描く。本講義では、画像に映る人物を検出するプログラミング技術を学ぶ。
|
③ 最後に、各画像において検出した人物の人数をカウントし、その時系列変化を折れ線グラフで描画する。人数のカウントは、OpenCVライブラリのHOGDescriptorクラスのdetectMultiScale()メソッドの戻り値を格納するリストの長さから求まる。これを映像の経過時間の情報とともにデータフレームに格納し、matplotlib.pyplotモジュールを用いて、折れ線グラフで描画する。ここで、画像認識による人物検出の精度が100%ではなく、検出漏れや過検出が起きるため、時系列データに移動平均の処理を施して、その影響(ノイズ)を軽減させる。移動平均は、NumPyライブラリのconvolve()関数を用いて実装することができる。ここまでの処理を他の映像に対して同様に適用し、人通りの変化を比較する。本講義では、映像に映る人物を検出した時系列データを解析するプログラミング技術を学ぶ。
|
|
キーワード
|
① 人物検出 ② OpenCV ③ 画像特徴量 ④ SVM識別器 ⑤ 移動平均
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料を利用して、OpenCVを用いた画像処理のためのコードの記述を復習しておくこと。また、参考書籍やWebサイトを利用して、映像処理について確認しておくこと。 【本コマの復習】①Pythonを用いた映像データの解析について配布資料を再読しておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータや自分で収集したデータに対する自分なりの解析を加えることである。
|
|
15
|
まとめ
|
科目の中での位置付け
|
本科目は、社会や自然環境において取得される多様なメディアやモダリティの膨大なデータを解析するための基本的な知識と技術を修得することを目的とする。まず、第1回では、ガイダンスとして授業の進め方と、第6回以降で必要になるPython言語の修得状況を確認する。第1回を含め第5回までは基礎編で、ビッグデータとは何かについて把握し、ビッグデータから有益な情報を捉えるために用いられる基本的な統計解析技術を学ぶ。第6回から第14回は実践編で、Python言語を用いて、用意された様々なメディアやモダリティのデータを解析する。このようなコマの流れで、環境ビッグデータ解析についての基礎知識とスキルの修得に向けた学びを進め、第15回では、全ての講義内容をまとめ、復習し、履修判定指標の確認も行う。そして、これまでに解析したデータもしくは自身で取得したデータに対して独自の解析を行い、環境ビッグデータ解析の基礎知識とスキルの修得を確認する。
|
①〜③教員が配布する資料
|
|
コマ主題細目
|
① 基礎編のまとめ ② 実践編前半のまとめ ③ 実践編後半のまとめ
|
|
細目レベル
|
① 第1回から第5回の基礎編をまとめる。第1回では、ビッグデータの種類を把握し、データの典型的な処理や目的、インターネットビジネスなどの事業活動における利活用について学び、ビッグデータの重要性を理解した。第2回では、ビッグデータを解析するにあたり、可視化することの重要性を把握し、代表的な可視化方法を学んだ。第3回では、ビッグデータを解析する基本的な技術として、データを分類するためのクラスタリングについて、代表的な方法であるk-meansクラスタリング、混合ガウスモデル、階層的クラスタリングを学んだ。第4回では、データの次元を確認し、多次元データからの特徴抽出と次元圧縮の概念を把握した上で、そのための代表的な手法である主成分分析について学んだ。第5回では、ビッグデータを解析する上で実用的な相関分析および因果の数理表現であるベイズの定理とグラフィカルモデルを学んだ。
|
② 第6回から第10回の実践編前半をまとめる。第6回では、Python言語を用いたビッグデータ解析の導入として、ECデータを例に、データの結合、計算、集計といった基本的な処理を行うプログラミングを学び、実践した。第7回では、小売店データを用いて、ビッグデータ解析の前処理として必要なデータの揺れの確認や補正といったクレンジングを学び、実践した。第8回では、ビッグデータ解析において重要なプロセスである可視化について、電力データを例に、分布や比較・変化、変数間の関係を可視化した。第9回では、顧客データのクラスタリングを行い、さらには、線形回帰とそれを応用した予測についても実践した。第10回では、物流データを用いて、物流ネットワークの可視化と基本的な解析を実践した。
|
③ 第11回から第14回の実践編後半をまとめる。第11回では、SNSデータを用いて、ソーシャルネットワークの可視化を行った。また、ソーシャルネットワーク上での情報伝播のシミュレーションを学び、それを応用したデータ解析を実践した。第12回では、アンケートデータを対象にした自然言語処理として、回答に含まれる不要な文字の除去、文字列の形態素解析、頻出単語の分析を実践した。第13回では、音声データを対象に、可視化、音の大きさや高さ、長さの編集、周波数解析を実践した。第14回では、映像データを対象に、映像データの画像への分割、機械学習を用いた画像認識による人物の検出、検出結果の集計として人数の時系列変化の可視化を実践した。
|
|
キーワード
|
① ビッグデータの種類・処理・利活用 ② 可視化 ③ クラスタリング ④ 主成分分析 ⑤ 相関と因果
|
|
コマの展開方法
|
社会人講師
AL
ICT
PowerPoint・Keynote
教科書
コマ用オリジナル配布資料
コマ用プリント配布資料
その他
該当なし
|
|
小テスト
|
|
|
復習・予習課題
|
【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルおよび履修判定指標を熟読し、第14回目までの配布資料を見直しておくこと。 【本コマの復習】①第14回目までの配布資料およびコマシラバスの全てのコマ主題細目についての細目レベルを再読すること。②第14回目までに提示された課題を完成させること。③履修判定指標を再確認すること。④演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を確認することで、プログラムの振る舞いの理解を深めること。そして、もっとも重要なことは、配布されたデータや自分で収集したデータに対する自分なりの解析を加えることである。データ駆動型社会で活動していくために、データの収集、解析、応用に積極的に参加していくと良い。ビッグデータの波に飲まれないように、データの扱いに慣れることが重要である。
|