区分 環境データサイエンス科目 環境情報科目 環境情報科目
ディプロマ・ポリシーとの関係
専門性 理解力 実践力
カリキュラム・ポリシーとの関係
専門知識 教養知識 思考力
実行力
カリキュラム全体の中でのこの科目の位置づけ
多様化する環境問題や地域社会の諸問題に関心を持ち、環境・情報・社会に関連する幅広い基礎知識と専門的な理解を深めると共に、学際的な柔軟性を有し、実践的な能力を有する。グローバルな視野と研究調査力を持ち、昨今の情報社会に貢献できる力を有する。企業・地域社会などのあらゆるコミュニティに寄与する組織的な活動能力を有する。
科目の目的
大気環境やエネルギー消費など世界規模の経時変化データから環境問題を解析するためには、Excel・R言語の集計レベルの統計分析では困難であり、特に、自然・社会環境において収集・蓄積される複雑かつ膨大な環境ビッグデータを解析するためには、データを計測、収集、分類、予測等を行うための汎用的なプログラミングツールの利用が必要不可欠である。本講義は、「環境プログラミング基礎」の応用科目の位置付けであり、環境ビッグデータの解析や人工知能の実装に向けた、実データとPython言語による高度なプログラミングを学修する。また、3Dコンテンツやデジタルアーカイブ、デジタルツインの実装スキルを有するITエンジニアが不足している現状を考慮して、Unityを用いたVRプログラミングを学修する。
到達目標
Pythonを用いた基本的な統計解析プログラムの記述、実行ができること。数値演算の基礎、データの分布、区間推定、仮説検定、回帰分析を理解し、コンピュータ上で、適宜、ライブラリを利用してプログラムを実装でき、エラーに対処し、実行結果の確認と理解が問題なく行えること。また、Unityを用いた基本的なVRコンテンツの作成ができること。さらには、3DCGモデリングツールを用いて実物体の3Dオブジェクトを作成し、UnityのVR空間に表示できること。
科目の概要
本科目は、環境データサイエンス学科環境情報領域における重要な基礎教育の一つであり、3年次以降の演習に必ず必要となる知識と技術を身につけることを目的としている。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。
科目のキーワード
プログラミング、Python、統計解析、数値演算、分布、区間推定、仮説検定、回帰分析、VR、Unity、3DCGモデル
授業の展開方法
各回において講義+演習の形式で行う。「環境統計解析学基礎」などで学んだ統計解析手法を復習し、VRプログラミングに関してはプログラムの記述方法、動作、実行結果などを解説した後、それらに関するプログラミング演習(コーディング)を行う。演習において生じた構文エラー等をその対処方法とともに共有し、プログラミング作法の理解を深める。なお、演習は、各自所有のノートPCで行うため、毎回の授業においては必ずノートPCを持参すること(前日までに充電しておくことも忘れない)。試験においては、これまで学んだ内容を踏まえ、プログラミングに関する基礎知識や技術、コードの記述方法、実行結果、などについて問う。
オフィス・アワー
【火曜日】1・2・5時限目、【木曜日】5時限目、【金曜日】4・5時限目
科目コード ENS523
学年・期 3年・前期
科目名 環境プログラミング応用
単位数 2
授業形態 講義
必修・選択 選択
学習時間 【授業】90分×15 【予習】90分以上×15 【復習】90分以上×15
前提とする科目 環境プログラミング基礎
展開科目
関連資格
担当教員名 平山高嗣
主題コマシラバス項目内容教材・教具
1 数値演算の基礎1 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第1回目は、プログラミングで記述統計を行うための基礎として、代表値や相関係数の計算に関して、さらには、機械学習を行うための基礎としても、回帰直線や各種の数学関数の計算に関してPythonを用いた実装方法について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.343-346
Pythonドキュメント statistics---数理統計関数,https://docs.python.org/ja/3/library/statistics.html

②Pythonドキュメント statistics---数理統計関数,https://docs.python.org/ja/3/library/statistics.html

③大重 美幸,“詳細!Python3入門ノート”,ソーテック社,2017,pp.79-81

①〜③教員が配布する資料
コマ主題細目 ① 1つのデータ群の代表値 ② 2つのデータ項目間の関係 ③ 数学関数
細目レベル ① 大量のデータから基本的な数理統計指標を容易に得るために、Pythonの標準ライブラリには、statisticsモジュールが用意されている。まず、1つのデータ群の代表値として、平均値、中央値、最頻値、分散、標準偏差が挙げられる。平均値は、全てのデータを足し合わせた値をデータの個数で割ったものである。中央値は、データを昇順もしくは降順で並べた時に中央に位置する値である。最頻値は、データの中で最も多く存在する値である。分散は、各データと平均との差である偏差の二乗を平均した値であり、データが平均からどのくらい散らばっているかを表す。標準偏差は、分散の平方根を取ったものである。statisticsモジュールにおいて、それぞれ、mean()関数、median()関数、mode()関数、variance()関数、stdev()関数が用意されている。なお、variance()関数は不偏分散、stdev()関数は不偏標準偏差を計算するため、母分散と母標準偏差を得たい場合は、pvariance()関数とpstdev()関数を用いる。本講義では、「環境プログラミング基礎」で学んだ代表値を計算するプログラミングを復習する。
② 次に、組になっている2つのデータ項目の関係を表す数理統計指標として、相関係数と回帰直線が挙げられる。A項目が大きくなるにつれてB項目も大きくなる場合、相関係数は正の値を取り、その傾向が強いほど+1に近づく。その逆に、A項目が大きくなるにつれてB項目が小さくなる場合、相関係数は負の値を取り、その傾向が強いほど-1に近づく。相関係数は、A項目の偏差とB項目の偏差の積の平均値をA項目の標準偏差とB項目の標準偏差で割った値である。回帰直線は、データが2つの要素を持つ時、一方をグラフのx軸、他方をy軸としてプロットした場合に、データの分布の真ん中を通る直線y=ax+bのことである。この直線の傾きaは、相関係数にxの標準偏差をかけて、yの標準偏差で割った値として求まる。statisticsモジュールにおいて、相関係数はcorrelation()関数、回帰直線はlinear_regression()関数が用意されている。本講義では、「環境プログラミング基礎」で学んだ相関係数と回帰直線を計算するプログラミングを復習する。
③ 数学関数を容易に計算することができるように、Pythonの標準ライブラリには、mathモジュールが用意されている。例えば、自然対数を求めるlog1p()関数、2を底とする対数を求めるlog2()関数、10を底とする対数を求めるlog10()関数、累乗を求めるpow()関数、平方根を求めるsqrt()関数、指数関数を計算するexp()関数、サイン値を求めるsin()関数、コサイン値を求めるcos()関数、タンジェント値を求めるtan()関数、円周率を返すpiなどが用意されている。また、高度なデータ構造を扱うために一般的に利用されるNumPyモジュールにも、代表値を計算する関数や基本的な数学関数が用意されている。本講義では、「環境プログラミング基礎」で学んだmathモジュールおよびNumPyモジュールを用いた数学関数を計算するプログラミングを復習する。
キーワード ① statisticsモジュール ② 代表値 ③ 相関 ④ 回帰 ⑤ mathモジュール
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのstatisticsモジュール、mathモジュール、NumPyモジュールについて確認しておくこと。
【本コマの復習】①statisticsモジュールを用いた代表値や相関係数の算出、回帰直線の推定、mathモジュールやNumPyモジュールを用いた数学関数の計算についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

2 数値演算の基礎2 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第2回目は、プログラミングで機械学習を行うための基礎して、ベクトルと行列の扱いに関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.95-101

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.102-109

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.110-135

①〜③教員が配布する資料
コマ主題細目 ① 配列を用いたベクトル、行列の表現 ② ベクトル演算 ③ 行列演算
細目レベル ① データ分析には、ベクトルや行列の計算が不可欠である。「環境プログラミング基礎」や本科目第1回で学んだNumPyモジュールに用意されている配列(ndarry、別名はテンソル)でベクトルや行列を扱うことができる。配列およびテンソルは、行列を任意の数の次元に対して一般化したものであり、ベクトルは1次元配列もしくは1階テンソル、2次元の行列は2次元配列もしくは2階テンソルと呼ばれる。NumPy行列の生成は、array()関数で行う。NumPyモジュールをimport numpy as npと記述してインポートし、ベクトルは要素を一列に並べたものであるので、例えば、下記のように記述する。
------------------------------------------------------------
x = np.array([1, 2, 3])
------------------------------------------------------------
また、2次元行列を下記のように記述する。
------------------------------------------------------------
x = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
------------------------------------------------------------
なお、行列の記述を応用して、行ベクトル、列ベクトル、3次元以上の行列も記述することができる。本講義では、演習を通じて、NumPy配列を用いたベクトルと行列の表現を理解する。

② 複数のベクトルがあり、それぞれの要素数が同じであれば、各要素同士の演算を行うことができる。例えば、下記のように記述する。
------------------------------------------------------------
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(x + y) #計算結果がarray([5, 7, 8])と出力される
print(x – y) #計算結果がarray([-3, -3, -3])と出力される
print(x * y) #計算結果がarray([4, 10, 18])と出力される
print(x / y) #計算結果がarray([0.25, 0.4, 0.5])と出力される
------------------------------------------------------------
ここで、各要素同士の乗算をベクトルのアダマール積と呼ぶ。次に、NumPy配列は、ベクトルのスカラー演算を簡素に記述して実行することができる。1次元配列はリストでも表現することができるが、全ての要素に同じ数を加算したり、乗算したりする場合、for文などで処理を繰り返す必要がある。NumPy配列なら、下記のようにfor文を使わずに一括処理(ブロードキャスト)が可能である。
------------------------------------------------------------
print(x – 1) #計算結果がarray([0, 1, 2])と出力される
print(x * 5) #計算結果がarray([5, 10, 15])と出力される
------------------------------------------------------------
また、機械学習で良く行われる計算処理であるベクトルの内積(2つのベクトルの各要素の積の和)は、dot()関数を用いて下記のように記述する。
------------------------------------------------------------
np.dot(x, y)
------------------------------------------------------------
ベクトルxとyの内積は、1*4+2*5+3*6で36が出力される。本講義では、演習を通じて、NumPy配列を用いたベクトル同士の演算とベクトルのスカラー演算を理解する。

③ 複数の行列があり、それぞれの行数と列数が同じであれば、各要素同士の加算、減算、乗算を行うことができる。例えば、下記のように記述する。
------------------------------------------------------------
x = np.array([
[1, 2, 3],
[4, 5, 6]])
y = np.array([
[4, 5, 6],
[6, 5, 4]])
print(x + y) #計算結果がarray([[5, 7, 9], [10, 10, 10]])と出力される
print(x – y) #計算結果がarray([[-3, -3, -3], [-2, 0, 2])と出力される
------------------------------------------------------------
ここで、各要素同士の乗算を行列のアダマール積と呼ぶ。次に、行列の内積は、ベクトルの内積と同様に、dot()関数を用いる。ただし、行列の内積を計算するためには、掛けられる側の行列の列数と掛ける側の行列の行数が等しい必要がある。例えば、下記のように記述する。
------------------------------------------------------------
x = np.array([
[1, 2],
[3, 4]])
y = np.array([
[5, 6],
[7, 8]])
np.dot(x, y) #計算結果はarray([[19, 22], [43, 50]])
------------------------------------------------------------
また、行列のスカラー演算は、ベクトルのスカラー演算と同様である。本講義では、演習を通じて、NumPy配列を用いた行列同士の演算と行列のスカラー演算を理解する。さらには、行列の要素、ゼロ行列、対角行列、単位行列の扱い方と転置行列、逆行列の求め方を学ぶ。

キーワード ① 配列 ② スカラー ③ ベクトル ④ 行列 ⑤ 内積
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのNumPyモジュールについて確認しておくこと。また、「基礎数学」の講義資料を利用して、ベクトルと行列について復習しておくこと。
【本コマの復習】①NumPyモジュールを用いたベクトルと行列の表現および演算についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

3 データの分布 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第3回目は、プログラミングで推計統計を行うための基礎として、確率や確率分布の扱いに関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.217-222

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.228-232

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.223-227

①〜③教員が配布する資料
コマ主題細目 ① 確率、確率変数、確率分布、期待値 ② 正規分布 ③ 二項分布
細目レベル ① 確率について考える時、サイコロを例にすると分かりやすい。サイコロを振るという行為を「試行」、サイコロの出る目の全てを「標本空間」、目が出ることを「事象」と呼ぶ。これらの用語を使って、確率は次のように定義される。ある「試行」の「標本空間」の要素の数(起こりうる全ての場合の数)をn、事象Eの起こる場合の数をmとした時、事象Eの確率は、P(E)=m/nと表される。一般的に、事象Eを、起こりうる事象に対して確率が割り当てられる変数(確率変数)としてX、その確率をP(X)と表す。確率変数は、サイコロのような離散値の場合は離散確率変数、連続値の場合は連続確率変数と呼ばれる。また、連続確率変数に対するP(X)は、確率を密度と考え、確率密度と呼ばれる。そして、確率変数に対して確率および確率密度が変化するため、前者をx軸、後者をy軸にプロットすることで分布が描かれ、これは確率分布と呼ばれる。確率変数(x_1, x_2,…,x_n)と確率(p_1, p_2,…,p_n)を用いて計算されるものとして期待値E(X)がある。これは、1回の試行あたりにXが取る値の平均値であり、E(X)=x_1*p_1+x_2*p_2+…+x_n*p_nとして計算される。本講義では、まず、「環境統計解析学基礎」で学んだ確率について復習する。
② 確率分布は様々であるが、現実世界における多くの事象が従う最も重要な連続確率分布が正規分布である。正規分布は、確率変数Xの期待値(平均値)μを中心とする左右対称の単峰性の山形の確率密度関数である。そのピークの高さと裾野の広がりは、確率変数Xの分散σ^2に従い、σ^2が小さいほど、ピークは下がり、裾野が緩やかに広がる。正規分布は、N(μ,σ^2)=Ae^(-BX^2)と定義される。ここで、A=1/(2πσ^2)^(1/2)、B=1/(2σ^2)、X=x-μである。なお、確率密度関数の曲線とx軸で囲まれた部分の面積は、μとσ^2に関わらず、常に1である。これは確率100%を意味する。また、μ-σ≦x≦μ+σの範囲の面積が約0.68(確率として約68%)、μ-2σ≦x≦μ+2σの範囲の面積が約0.95、μ-3σ≦x≦μ+3σの範囲の面積が約0.997である。Pythonでは、NumPyモジュールのrandom.normal()関数を用いて正規分布に従うデータを生成することができる。本講義では、「環境統計解析学基礎」で学んだ正規分布について復習し、正規分布を扱うコードを作成する。
③ 離散確率分布の代表は二項分布である。二項分布は、コイントスを例に考えると良い。コインを投げた時に、表が出るか裏が出るかのように、何かを行った時に起こる結果が2つしかない試行をベルヌーイ試行と呼ぶ。表が出る確率をp、裏が出る確率をqとすると、特別な仕掛けのないコインであればp=q=0.5である。そうではない場合はp≠qであるが、p+q=1は常に成立する。次に、コインをn回投げた場合を考える。n回のうち、表が出る回数を確率変数Xが取る値とすると、Xの取りうる値はn+1個あり、0, 1, 2,…, nである。実際に表が出る回数をk回(0≦k≦n)とすると、その確率は二項分布B(n, p)=P(X=k)=nCk*p^k*q^(n-k)と定義される。ここで、nCkは二項係数と呼ばれ、nCk=n!/((n-k)!*k!)である。二項分布は、期待値n*p付近でピークを持ち、広がりが分散σ^2=n*p*qに従う山形である。nが大きくなると、同じ期待値と分散を持つ正規分布に近づく性質がある。Pythonでは、SciPyモジュールのstats.binom.pmf()関数を用いて二項分布に従うデータを生成することができる。本講義では、「環境統計解析学基礎」で学んだ二項分布について復習し、二項分布を扱うコードを作成する。
キーワード ① 確率 ② 期待値 ③ 分散 ④ 正規分布 ⑤ 二項分布
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのSciPyモジュールについて確認しておくこと。また、「環境統計解析学基礎」の講義資料を利用して、確率と確率分布について復習しておくこと。
【本コマの復習】①NumPyモジュールを用いた正規分布の生成とSciPyモジュールを用いた二項分布の生成についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

4 母平均の推定 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第4回目は、推計統計において重要な統計処理である母平均の区間推定に関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.237-243

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.251-256

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.257-262

①〜③教員が配布する資料
コマ主題細目 ① 母平均区間推定の考え方 ② 母分散が既知の場合 ③ 母分散が未知の場合
細目レベル ① 標本から母平均を推定することが推計統計で良く行われる。その前提となる理論として、中心極限定理と大数の法則がある。中心極限定理は、母平均μ、母分散σ^2の正規分布に従う母集団からn個の標本を無作為に抽出する場合、標本平均X’の分布が正規分布N(μ, (σ^2)/n)に近づくという定理である。nが十分に大きければ、母集団がどんな分布に従っても、それが成り立つことが分かっている。また、母平均に近づく。大数の法則は、標本平均を繰り返し求め、その回数mを大きくしていくと、標本平均の平均値は母平均に近づくという法則である。ただし、いずれも、あくまで近づくのであって、母平均と完全に一致する保証はない。そこで、信頼度を設定して、母平均が存在するであろう区間を推定する。本講義では、「環境統計解析学基礎」で学んだ中心極限定理と大数の法則について、Pythonも用いて復習する。
② まず、標本の母分散σ^2が既知である場合の母平均の区間推定を考える。この場合、標準正規分布に従う確率変数z=(X’-μ)/(σ/√n)は、標準正規分布に対する信頼度βのパーセント点aを用いて、zがβの信頼度で-aとaの間(-a≦(X’-μ)/(σ/√n)≦a)に入ると考える。これを変形すると、X’-a*(σ/√n)≦μ≦X’+a*(σ/√n)となり、母分散が既知の場合の母平均の100*βパーセント信頼区間を表す。言い換えると、標本平均X’を確率変数とする正規分布N(μ, (σ^2)/n)を標準化した正規分布の面積がβとなる区間である。この区間の左辺は下方信頼限界、右辺は上方信頼限界と呼ばれる。なお、信頼度βは危険率αとの間にβ=1-αの関係がある。αは有意水準とも呼ばれる。Pythonでは、SciPyモジュールのstats.norm.interval()関数を用いて正規分布における信頼区間が得られる。本講義では、「環境統計解析学基礎」で学んだ母分散が既知の場合の母平均の区間推定を復習し、それを実行するコードを作成する。
③ 一般には、母分散σ^2は既知ではない。そこで、標本から推定される不偏分散s^2あるいは不偏標準偏差sを用いて母平均μの区間を推定する。確率変数z=(X’-μ)/(σ/√n)は、標準正規分布に従うが、このσをsに置き換えると新しい確率変数が得られ、これを標本統計量T=(X’-μ)/(s/√n)とする。このTは、自由度n-1のt分布に従うことが分かっている。そして、自由度n-1のt分布に対する信頼度βのパーセント点aを用いて、Tがβの信頼度で-aとaの間(-a≦(X’-μ)/(s/√n)≦a)に入ると考える。これを変形すると、X’-a*(s/√n)≦μ≦X’+a*(s/√n)となり、母分散が未知の場合の母平均の100*βパーセント信頼区間を表す。なお、s/√nは標準誤差と呼ばれる。Pythonでは、SciPyモジュールのstats.t.interval()関数を用いてt分布における信頼区間が得られる。本講義では、「環境統計解析学基礎」で学んだ母分散が未知の場合の母平均の区間推定を復習し、それを実行するコードを作成する。
キーワード ① 母平均の信頼区間 ② 母分散 ③ 標本平均 ④ 標準正規分布 ⑤ t分布
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのSciPyモジュールについて確認しておくこと。また、「環境統計解析学基礎」の講義資料を利用して、中心極限定理、大数の法則、母平均の区間推定について復習しておくこと。
【本コマの復習】①標本の母分散が既知の場合と未知の場合の母平均の区間推定をSciPyモジュールを用いて実装する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

5 2群の順位の差の検定 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第5回目は、推計統計において重要な統計処理である仮説検定の一手法として、2群の順位の差の検定に関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.264-266

②https://ja.wikipedia.org/wiki/ウィルコクソンの符号順位検定
SciPy Manual, "scipy.stats.wilcoxon", https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wilcoxon.html

③https://ja.wikipedia.org/wiki/マン・ホイットニーのU検定
SciPy Manual, "scipy.stats.mannwhitneyu", https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html

①〜③教員が配布する資料
コマ主題細目 ① 仮説検定 ② ウィルコクソンの符号順位検定 ③ マン・ホイットニーのU検定
細目レベル ① 第4回目で扱った母平均の区間推定とともに、仮説検定が推計統計で良く行われる。仮説検定は、分析者が立てた仮説を統計的に検証することである。仮説として、「2群のデータに有意な差がない」といった帰無仮説を立てる。「ない」という仮説を立てる理由は、「ある」には程度の問題が生じるためである。仮説検定は、「ない」か「ないことはない」を検証する。仮説検定には様々な手法が提案されている。検証したい仮説の種類とデータの性質に従って、適切な手法を適用する。Pythonでは、各手法の関数が用意されていて、基本的には各関数で検定統計量とともにp値が計算される。そして、p値が有意水準より小さくなった場合は、帰無仮説が棄却されて「有意差がないことはない」、有意水準以上となった場合は、帰無仮説が採択されて「有意差がない」と判定する。本講義では、「環境統計解析学基礎」で学んだ仮説検定の仕組みを復習する。
② 仮説検定を行う際、データの母集団の分布が、ある特定の分布に従うことが分かっている場合はパラメトリック検定を、分かっていない場合はノンパラメトリック検定を適用する。例えば、2群のデータの母集団それぞれが正規分布に従う場合は、それらの平均値に差がないことをパラメトリック検定の一種であるt検定によって検証することができる。一方で、正規分布に従わない場合は、それらの順位に差がないことをノンパラメトリック検定によって検証する。本科目では、まず、ノンパラメトリック検定を扱う。ノンパラメトリック検定は、2群のデータ間に対応があるか、ないかで適用する手法が枝分かれする。例えば、薬の効果がないことを検定する場合、各人から服用前と服用後のデータが対で得られていれば、ウィルコクソンの符号順位検定を適用する。この検定では、まず、対応がある2群のデータX、Yの差Zの絶対値を小さいものから順に並べる。次に、Zが正の値の合計順位と負の値の合計順位を求め、2つの合計順位の小さい方を検定統計量Vとする。そして、有意水準と標本数に応じた棄却限界値をウィルコクソンの符号順位表から求め、検定統計量Vがそれより大きければ、帰無仮説を棄却し、有意差がないことはない、棄却限界値以下であれば、帰無仮説を採択し、有意差がないと判定する。本講義では、PythonのSciPyモジュールのstats.wilcoxon()関数を用いて、ウィルコクソンの符号順位検定を実行し、検定統計量Vとp値を求め、p値を用いて有意差を判定するコードを作成する。
③ 一方で、2群に対応がない場合は、マン・ホイットニーのU検定を適用する。まず、2群のデータをまとめて小さいものから順に並べ、各群の順位を総和する。次に検定統計量Uを求める。1群目について、標本数をn_1、順位の和をR_1、2群目について、標本数をn_2、順位の和をR_2とすると、U_1=n_1*n_2+n_1*(n_1+1)/2-R_1、U_2=n_1*n_2+n_2(n_2+1)/2-R_2である。そして、U_1とU_2の小さい方を検定統計量Uとする。そして、有意水準と標本数に応じた棄却限界値をマン・ホイットニーの検定表から求め、検定統計量Uがそれより大きければ、帰無仮説を棄却し、有意差がないことはない、棄却限界値以下であれば、帰無仮説を採択し、有意差がないと判定する。本講義では、PythonのSciPyモジュールのstats.mannwhitneyu()関数を用いて、マン・ホイットニーのU検定を実行し、検定統計量Uとp値を求め、p値を用いて有意差を判定するコードを作成する。
キーワード ① 帰無仮説 ② ノンパラメトリック検定 ③ ウィルコクソンの符号順位検定 ④ マン・ホイットニーのU検定 ⑤ 検定統計量とp値
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのSciPyモジュールについて確認しておくこと。また、「環境統計解析学基礎」の講義資料を利用して、仮説検定について復習し、Webサイトを利用して、2群のデータが正規分布に従わない場合の差の検定について確認しておくこと。
【本コマの復習】①対応がある2群の順位の差の検定(ウィルコクソンの符号順位検定)と対応がない2群の順位の差の検定(マン・ホイットニーのU検定)をSciPyモジュールを用いて実装する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

6 2群の平均値の差の検定 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第6回目は、推計統計において重要な統計処理である仮説検定の一手法として、2群の平均値の差の検定に関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.297-303

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.281-292

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.293-296

①〜③教員が配布する資料
コマ主題細目 ① 対応がある2群の平均値の差のt検定 ② 対応がなく等分散性はある2群の平均値の差のt検定 ③ 対応がなく等分散性もない2群の平均値の差のt検定
細目レベル ① 2群のデータの母集団それぞれが正規分布に従う場合は、それらの平均値に差がないことをパラメトリック検定の一種であるt検定によって検証する。t検定は、2群のデータ間の関係性によって適用する手法が枝分かれする。まず、2群のデータ間に対応があるか、ないかで枝分かれする。2群のデータA、Bに対応がある場合、対応する標本間の差を新しい1群のデータとし、この1群の標本平均と母平均(=0)に有意差がない、つまり、2群のデータA、Bの母平均に有意差がないことを帰無仮説とする。ここで、標本数n=n_A=n_B、データA、Bの差についての標本平均をX’、母平均をμ=0、不偏分散をsとする。次に、第4回目で学んだ標本平均からの母平均の区間推定と同様に、検定統計量Tを計算し、母平均μを0とした信頼区間の外側にTが存在するかどうかを検証する。つまり、自由度n-1のt分布について検定統計量Tの外側の面積であるp値を求め、有意水準より小さければ、帰無仮説を棄却し、有意差がないことはない、有意水準以上であれば、帰無仮説を採択し、有意差がないと判定する。本講義では、PythonのSciPyモジュールのstats.ttest_rel()関数を用いて、対応がある2群の母平均の差のt検定を実行し、検定統計量Tとp値を求め、p値を用いて有意差を判定するコードを作成する。
② 一方で、2群に対応がない場合は、さらに、それぞれの分散が等しいと仮定できる(等分散性がある)か、そうではないかで手法が枝分かれする。対応がなく等分散性はある場合は、2群の母平均の差のt検定として、スチューデントのt検定を適用する。スチューデントのt検定も、対応がある2群の母平均の差のt検定と基本的な考え方は同じである。まず、2群の標本平均の差がt分布に従うとして検定統計量t_0を求める。1群目について、標本数をn_1、標本平均をX’_1、母平均をμ_1、不偏分散をs_1^2、2群目について、標本数をn_2、標本平均をX’_2、母平均をμ_2、不偏分散をs_2^2とすると、t_0=((X’_1-X’_2)-(μ_1-μ_2))/√(ν^2*(1/n_1+1/n_2))であり、ν^2=((n_1-1)*s_1^2+(n_2-1)*s_2^2)/(n_1+n_2-2)である。ここで、μ_1-μ_2=0と仮定する。そして、自由度n_1+n_2-2のt分布について検定統計量t_0の外側の面積であるp値を求め、有意水準より小さければ、帰無仮説を棄却し、有意差がないことはない、有意水準以上であれば、帰無仮説を採択し、有意差がないと判定する。本講義では、PythonのSciPyモジュールのstats.ttest_ind()関数を用いて、対応がなく等分散性はある2群の母平均の差のt検定を実行し、検定統計量t_0とp値を求め、p値を用いて有意差を判定するコードを作成する。
③ また、対応がなく等分散性もない場合は、2群の母平均の差のt検定として、ウェルチのt検定を適用する。スチューデントのt検定とは、検定統計量t_0と自由度の計算が異なる。ウェルチのt検定における検定統計量はt_0=(X’_1-X’_2)/√(s_1^2/n_1+s_2^2/n_2)であり、自由度は(s_1^2/n_1+s_2^2/n_2)^2/((s_1^2/n_1)^2/(n_1-1)+(s_2^2/n_2)^2/(n_2-1))である。Pythonでは、ウェルチのt検定もSciPyモジュールのstats.ttest_ind()関数を用いるが、スチューデントのt検定と異なり、引数の1つであるequal_varをFalseに設定する。本講義では、対応がなく等分散性もない2群の母平均の差のt検定を実行し、検定統計量t_0とp値を求め、p値を用いて有意差を判定するコードを作成する。なお、検定統計量を用いて有意差を判定する場合、有意水準に対するt分布のパーセント点を求める必要があるが、SciPyモジュールのstats.t.ppf()関数を用いて得ることができる。本講義では、t検定で検定統計量を用いて有意差を判定するコードも作成する。
キーワード ① パラメトリック検定 ② 2群の母平均の差のt検定 ③ スチューデントのt検定 ④ ウェルチのt検定 ⑤ 等分散性
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのSciPyモジュールについて確認しておくこと。また、「環境統計解析学基礎」の講義資料を利用して、2群の母平均の差のt検定について復習しておくこと。
【本コマの復習】①対応がある2群の平均値の差のt検定、対応がなく等分散性はある2群の平均値の差のt検定(スチューデントのt検定)、対応がなく等分散性もない2群の平均値の差のt検定(ウェルチのt検定)をSciPyモジュールを用いて実装する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

7 独立性の検定 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第7回目は、推計統計において重要な統計処理である仮説検定の一手法として、独立性の検定に関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.265-266

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.275-277

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.266-274, 278-280

①〜③教員が配布する資料
コマ主題細目 ① 独立性の検定の流れ ② クロス集計と期待度数 ③ カイ二乗検定
細目レベル ① あるデータについて、例えば、「A店の売上であるか」と「カレーパンの売上であるか」という2つの分類基準を考え、それらに「関係があるか」を分析する場合に、独立性の検定が行われる。ここで、関係があるということは独立ではないことを意味し、関係がないということは独立であることを意味する。独立性の検定には、カイ二乗検定が用いられる。カイ二乗検定は次の手順で行われる。(1)2つの分類基準の間に関係がないとする帰無仮説を立てる。(2)データをクロス集計表にまとめる。(3)期待度数(関係がなかったら、きっとこうなるだろうという数値)を求める。(4)元データと期待度数との差を求め、それに基づいてカイ二乗値を求める。(5)カイ二乗値をp値に変換し、帰無仮説を判定する。本講義では、まず、「環境統計解析学基礎」で学んだカイ二乗検定の流れを復習する。
② 独立性の検定を行うためには、上記の例においては、カレーパンとカレーパン以外の売上数がA店とA店以外のそれぞれで必要になる。つまり、A店かつカレーパン、A店かつカレーパン以外、A店以外かつカレーパン、A店以外かつカレーパンの売上数である。これは2つの分類基準のクロス集計と呼ばれ、クロス集計表としてまとめられる。Pythonを用いて独立性の検定を実行する場合、SciPyモジュールのstats.chi2_contingency()関数を用いると良いが、その場合も、クロス集計を行ったデータが、クロス集計表の並びで必要になる。次に、クロス集計を行ったデータに対して、期待度数を求める。期待度数は、「関係がなかったら、きっとこうなるだろう」という数値であり、上記の例においては、売上総数に対するカレーパンの割合*A店の全体の売上総数、売上総数に対するカレーパンの割合*A店以外の全体の売上総数、売上総数に対するカレーパン以外の割合*A店の全体の売上総数、売上総数に対するカレーパン以外の割合*A店以外の全体の売上総数を求める。本講義では、Pythonを用いて独立性の検定を行うためのデータの形式について学ぶ。
③ 期待度数を求めた後は、4つの元データとそれぞれに対応する期待度数との差を足し合わせてカイ二乗値を求める。カイ二乗値が大きい場合は、関係がない場合の期待度数から離れるということであるので、関係がないことはないとみなすことができる。つまり、帰無仮説を棄却する。ここで、カイ二乗値をp値に変換し、p値が有意水準より小さい場合は棄却域に入ることになり、有意な関係はないとは言えない、つまり、独立ではないと判定する。本講義では、PythonのSciPyモジュールのstats.chi2_contingency()関数を用いて、独立性についてのカイ二乗検定を実行し、検定統計量とp値を求め、p値を用いて有意差を判定するコードを作成する。なお、カイ二乗検定には、データが想定している分布に適合しているかどうかを判定する適合性の検定も確立されている。帰無仮説として、想定している分布と差がないというものを立てて、想定している分布に基づいて期待度数を設定し、基本的な考え方は独立性の検定と同様に計算と判定を行う。適合性の検定は、PythonのSciPyモジュールのstats.chisquare()関数を用いて実行することができる。
キーワード ① 独立 ② 期待度数 ③ カイ二乗値 ④ カイ二乗検定 ⑤ 適合性の検定
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのSciPyモジュールについて確認しておくこと。また、「環境統計解析学基礎」の講義資料を利用して、独立性の検定について復習しておくこと。
【本コマの復習】①独立性の検定と適合性の検定を行うカイ二乗検定をSciPyモジュールを用いて実装する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

8 分散分析 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第8回目は、推計統計において重要な統計処理である仮説検定の一手法として、3群以上の母平均の差を検定する分散分析に関してPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.304-306

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.306-310

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.310-312

①〜③教員が配布する資料
コマ主題細目 ① 3群以上の母平均の差の検定 ② 分散分析の考え方 ③ 一元配置分散分析
細目レベル ① 第5回目と第6回目で2群の差の検定を扱ったが、それらを3群以上に適用することはご法度とされている。3群以上の場合に、2群ずつ抽出して全ての組み合わせに2群の差の検定を適用すれば良さそうである。しかし、検定を繰り返し適用すると、その分、いずれかの帰無仮説が棄却される確率が高くなる。このことは、有意水準を5%(0.05)とした場合に、帰無仮説が採択されて2群に差がない確率が95%(0.95)であり、繰り返す分だけ累乗したものが2群の組み合わせの全てで差がない確率であって0.95より小さくなり、一方で、少なくとも1つの組み合わせで差がないといえない確率が0.05より高くなってしまうことから分かる。2群に検定を適用することに限っても、データを段階的に増やしながら検定を繰り返し適用する場合も同様であり、これはp-hackingと呼ばれ、避けるべき行為である。そこで、3群以上の母平均の差を検定する場合は、分散分析という手法が確立されている。分散分析では、全ての群間の母平均に差がないという帰無仮説を立てる。本講義では、3群以上の母平均の差を検定する場合には、分散分析を適用しなければならないことを学ぶ。
② 分散分析の用語として、要因、因子、水準がある。要因は因子とほぼ同義であるが、データに変化を与える要素の全てを指す。因子は、要因の中で仮説の対象となるものである。水準は、1つの因子に関する群のことである。また、因子が1つの場合は、一元配置分散分析と呼ばれる。分散分析は、その名が表す通り、データの分散に着目した分析であり、群内のズレに比べて群間のズレが大きければ、全ての群間の母平均に差がないという帰無仮説が棄却される。これを判定するために、次の3つのズレを考える。(1)データ全体の平均値からの各データの偏差の平方和、(2)データ全体の平均値からの各水準の平均値の偏差の平方和、(3)各水準の平均値からの各データの偏差の平方和。この3つのズレについて、(1)=(2)+(3)の関係が成り立つ。なお、(2)が群間のズレ、(3)が群内のズレを表す。本講義では、「環境統計解析学基礎」で学んだ分散分析の考え方を復習する。
③ 前述のズレは、それぞれの自由度が異なるため、そのまま比較することができない。そこで、それぞれの自由度でズレを割って正規化する必要がある。(1)の自由度は、全てのデータの個数から1を引いたもの、(2)の自由度は、水準の個数から1を引いたもの、(3)の自由度は、(1)の自由度から(2)の自由度を引いたものとして求まる。最後に、検定統計量Fを、群間のズレを正規化したものを群内のズレを正規化したもので割ることで求める。そして、(2)と(3)の自由度のF分布について検定統計量Fの外側の面積であるp値を求め、有意水準より小さければ、帰無仮説を棄却し、有意差がないことはない、有意水準以上であれば、帰無仮説を採択し、有意差がないと判定する。なお、どの群間に有意差があるかを検定するためには、多重比較のための確立された手法を追加で適用する必要がある。本講義では、PythonのSciPyモジュールのstats.f_oneway()関数を用いて、対応がない3群以上の母平均の差の一元配置分散分析を実行し、検定統計量Fとp値を求め、p値を用いて有意差を判定するコードを作成する。
キーワード ① 一元配置分散分析 ② 因子 ③ 水準 ④ 偏差 ⑤ 平方和
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、「環境プログラミング基礎」の講義資料や参考書籍、Webサイトを利用して、Pythonを用いた統計処理を行うためのSciPyモジュールについて確認しておくこと。また、「環境統計解析学基礎」の講義資料を利用して、分散分析について復習しておくこと。
【本コマの復習】①一元配置分散分析をSciPyモジュールを用いて実装する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

9 重回帰 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第9回目は、予測問題におけるモデリングの一手法として、重回帰モデルとPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.339-340

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.340-341

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.320-322, 341-343

①〜③教員が配布する資料
コマ主題細目 ① 重回帰モデル ② 重回帰モデルの実装 ③ 予測モデルの評価
細目レベル ① 第1回目や「基礎数学」、「環境統計解析学基礎」、「環境プログラミング基礎」で学んだ線形回帰は、y=ax+bで表されるモデルであり、説明変数がxの1つであることから、線形単回帰や、単に単回帰と呼ばれる。現実のデータは、これほど単純ではなく、単回帰モデルでは十分にフィットしない場合が多い。そこで、まず、説明変数を2つ以上に増やすことを考える。この場合、y=a_1*x_1+a_2*x_2+…+a_n*x_n+bと定式化され、重回帰モデルと呼ばれる。a_1, a_2,…, a_nは単回帰モデルの傾きに対応する回帰係数、bは切片に対応する定数項である。重回帰モデルのパラメータである回帰係数と定数項は、単回帰モデルと同様に最小二乗法によって、損失関数(モデルが出力する予測値と目的変数との差の二乗和)が最小となるように推定される。本講義では、まず、単回帰と重回帰の違いを把握する。
② 第1回目で実装したように、statisticsモジュールのlinear_regression()関数を用いて単回帰モデルのパラメータを推定することができるが、重回帰モデルのパラメータを推定することができない。重回帰モデルは、scikit-learnという機械学習用のライブラリに用意されているlinear_modelモジュールのLinearRegression()クラスを用いると良い。scikit-learnは、回帰、分類、クラスタリングなどの非常に多くのアルゴリズムが用意されていて、機械学習モデルを実装する上で必要不可欠なライブラリである。重回帰モデルは下記のように実装することができる。
------------------------------------------------------------
from sklearn.linear_model import LinearRegression
# 重回帰モデルのインスタンスを生成
model = LinearRegression()
# モデルの訓練(パラメータの推定)
model.fit(x_train, y_train)
------------------------------------------------------------
x_trainには、パラメータを推定するための、説明変数としての訓練データ(学習データとも言う)がNumPy配列で格納されているものとする。y_trainは、それに対応した目的変数としての訓練データがNumPy配列で格納されているものとする。fit()メソッドを実行すると、モデルの訓練が開始され、推定された回帰係数がmodel.coef、定数項がmodel.interceptに格納される。本講義では、Pythonを用いた重回帰モデルの実装方法を修得する。

③ モデルを訓練した後には、そのモデルを評価する必要がある。単回帰や重回帰などの予測モデルを評価する場合に、訓練データとは別の評価データと予測値との誤差を計算する方法が一般的に用いられる。誤差の計算方法は1つだけではなく、代表的なものとして、平均二乗誤差(Mean Squared Error: MSE)、平均二乗平方根誤差(Root Mean Squared Error: RMSE)、平均絶対誤差(Mean Absolute Error: MAE)がある。MSEは、誤差を二乗したものについての平均であり、RMSEは、単位をデータのものに揃えるためにMSEの平方根を取ったものである。MAEは、二乗せずに誤差の絶対値について平均を取ったもので、外れ値の影響を受けにくい特徴がある。MSEとMAEは、scikit-learnのmetricsモジュールにmean_squared_error()関数とmean_absolute_error()関数として実装されている。予測値は、モデルのインスタンスについてpredict()メソッドの引数に説明変数としての評価データを指定することで得られる。本講義では、予測モデルの評価方法を学び、Pythonを用いた実装方法を修得する。
キーワード ① 説明変数と目的変数 ② 学習・訓練・パラメータ推定 ③ 評価 ④ 誤差 ⑤ scikit-learnライブラリ
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Pythonを用いた機械学習を行うためのscikit-learnライブラリについて確認しておくこと。また、第1回目や「基礎数学」、「環境統計解析学基礎」、「環境プログラミング基礎」の講義資料を利用して、線形回帰について復習しておくこと。
【本コマの復習】①重回帰モデルをscikit-learnライブラリを用いて実装し、評価する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

10 多項式回帰 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第10回目は、予測問題におけるモデリングの一手法として、多項式回帰モデルとPythonを用いた実装方法について学ぶ。
①チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.344-345

②チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.345-351

③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,pp.352-360

①〜③教員が配布する資料
コマ主題細目 ① 多項式回帰モデル ② 多項式回帰モデルの実装 ③ 正則化
細目レベル ① 第9回目で学んだ重回帰モデルは、単回帰モデルよりも複雑なモデルであるが、単回帰モデルと同様に線形の回帰モデルであり、曲線的な変化を予測するなど、説明変数と目的変数のより複雑な関係に対応することはできない。そこで、1つの説明変数を2乗、3乗、…とすることで、非線形の関係にあるデータを表現することを考える。この場合、y=a_1*x+a_2*x^2+a_3*x^3…+a_n*x^n+bと定式化され、n次の多項式回帰モデルと呼ばれる。多項式回帰モデルのパラメータである回帰係数と定数項も、単回帰モデルと同様に最小二乗法によって、損失関数(モデルが出力する予測値と目的変数との差の二乗和)が最小となるように推定される。本講義では、まず、線形回帰モデルと多項式回帰モデルの違いを把握する。
② Pythonを用いて多項式回帰モデルを実装する場合、重回帰モデルと同様にscikit-learnライブラリを用いると良い。パラメータの推定は、まず、preprocessingモジュールのPolynomialFeatures()クラスを用いて、多項式の計算を行うための行列のインスタンスを生成し、そのインスタンスについてfit_transform()メソッドを用いて、説明変数としての訓練データを行列に変換する。次に、重回帰モデルと同様に、linear_modelモジュールのLinearRegression()クラスを用いて多項式モデルのインスタンスを生成し、そのインスタンスについてfit()メソッドを実行して、モデルの訓練を行う。具体的には、下記のように実装することができる。
------------------------------------------------------------
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression

poly = PolynomialFeatures(degree=3) # 3次の多項式の場合
x_train_poly = poly.fit_transform(x_train) # x_trainはNumPy配列
model = LinearRegression()
model.fit(x_poly_train, y_train) # y_trainはNumPy配列
------------------------------------------------------------
また、評価データの説明変数に対する目的変数の予測は、predict()メソッドを用いて下記のように実装することができる。
------------------------------------------------------------
x_test_poly = poly.transform(x_test) # x_testはNumPy配列
y_pred = model.predict(x_test_poly)
------------------------------------------------------------

③ 多項式回帰モデルのパラメータ推定は、機械学習の一種であり、訓練データを用いてモデルを訓練し、評価データを用いてモデルの性能を評価する。モデルをデータにフィット(適合)させる作業を学習、または訓練と呼び、それが上手く行われれば、データに良くフィットしたモデルを手に入れることになる。ただし、訓練データには良くフィットしても、評価データで予測を行うと大きな誤差が生じることがある。これは、モデルが訓練データに過度にフィットする過剰適合(オーバーフィッティング、過学習とも呼ばれる)が起きている可能性が高い。多項式回帰モデルの場合、次数が大きいほど、モデルが複雑な曲線を表現することができる。しかし、評価データの分布が曲線から少しでも外れると、平均的な誤差が大きくなる。過剰適合を抑制する方法としては、訓練データを増やすか、正則化を行うのが一般的である。回帰係数は、説明変数の重要度を表すが、大きいものがあると、その説明変数に適合しすぎる傾向があるため、正則化はそれを抑える。その代表的な方法として、L1正則化(Lasso回帰)とL2正則化(Ridge回帰)がある。L1正則化は、最小二乗法の損失関数に全ての回帰係数の絶対値の和(L1ノルム)を追加して、最小となるようにパラメータが推定される。つまり、回帰係数の和が小さくなるように推定される。この際、重要度が低い説明変数の回帰係数を0にして、次数を減らす仕組みも導入されている。一方、L2正則化は、回帰係数の二乗和の平方根(L2ノルム)を損失関数に追加して、最小となるようにパラメータが推定される。L2正則化は、回帰係数の大きさを全体的に抑える。本講義では、正則化を学び、Pythonを用いた実装方法を修得する。
キーワード ① 非線形 ② 過剰適合 ③ 正則化 ④ Lasso回帰 ⑤ Ridge回帰
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Pythonを用いた機械学習を行うためのscikit-learnライブラリについて確認しておくこと。また、「基礎数学」、「環境統計解析学基礎」の講義資料を利用して、最小二乗法について復習しておくこと。
【本コマの復習】①多項式回帰モデルをscikit-learnライブラリを用いて実装し、評価する方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

11 統計解析プログラミングのまとめ 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第11回目は、第10回目までの統計解析プログラミングについての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの知識とスキルの修得を確認する。
①〜③チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023

①〜③教員が配布する資料
コマ主題細目 ① 数値演算と統計解析基礎のまとめ ② 仮説検定のまとめ ③ 回帰分析のまとめ
細目レベル ① 第1回目から第4回目の数値演算と統計解析の基礎に関するプログラミングを復習する。第1回目では、statisticsモジュールを用いて、1つのデータ群の代表値として、平均値、中央値、最頻値、分散、標準偏差を計算する処理、2つのデータ項目間の関係を表す相関係数と回帰直線を計算する処理をコーディングした。また、mathモジュールとNumPyモジュールを用いて、基本的な数学関数を計算する処理をコーディングした。第2回目では、データ分析で不可欠であるベクトルや行列の計算をNumPy配列を用いてコーディングした。第3回目では、プログラミングで推計統計を行うための基礎として、確率やデータの分布を復習し、NumPyモジュールを用いた正規分布に従うデータの生成やSciPyモジュールを用いた二項分布に従うデータの生成をコーディングした。第4回目では、推計統計において重要な統計処理である母平均の区間推定を復習し、SciPyモジュールを用いて、母分散が既知の場合と未知の場合それぞれの母平均の区間推定をコーディングした。これらの知識とスキルを応用した自由課題に取り組む。
② 第5回目から第8回目の仮説検定に関するプログラミングを復習する。まず、仮説検定の仕組みを復習し、パラメトリック検定とノンパラメトリック検定の違いを学んだ。第5回目では、ノンパラメトリック検定について、対応がある2つのデータ群の順位の差を検定するウィルコクソンの符号付き順位検定と、対応がない2つのデータ群の順位の差を検定するマン・ホイットニーのU検定を学び、それらをSciPyモジュールを用いてコーディングした。第6回目では、パラメトリック検定について、2群の母平均の差の検定を復習し、対応がある2群の母平均の差のt検定、対応がなく等分散性はある2群の母平均の差のt検定(スチューデントのt検定)、対応がなく等分散性もない2群の母平均の差のt検定(ウェルチのt検定)をSciPyモジュールを用いてコーディングした。第7回目では、データの2つの分類基準の独立性を検定するカイ二乗検定を復習し、SciPyモジュールを用いてコーディングした。第8回目では、3群以上の母平均の差を検定する分散分析を復習し、SciPyモジュールを用いてコーディングした。これらの知識とスキルを応用した自由課題に取り組む。
③ 第9回目と第10回目の回帰分析に関するプログラミングを復習する。第9回目では、まず、これまでに扱った線形回帰が単回帰で限界があり、説明変数を増やした重回帰を学んだ。そして、scikit-learnライブラリを用いて重回帰モデルを構築し、訓練データからパラメータ推定する処理と評価データから予測を行う処理をコーディングした。また、回帰モデルの予測性能を評価する方法を学び、重回帰モデルを評価する処理をコーディングした。第10回目では、曲線的な変化を予測する非線形回帰として多項式回帰を学び、scikit-learnライブラリを用いて多項式回帰モデルを構築し、訓練データからパラメータ推定する処理と評価データから予測を行う処理をコーディングした。また、モデルが訓練データに過度にフィットする過剰適合を把握し、それを抑制するための正則化について学び、その代表的な方法であるL1正則化(Lasso回帰)とL2正則化(Ridge回帰)をコーディングした。これらの知識とスキルを応用した自由課題に取り組む。
キーワード ① statisticsモジュール ② NumPyモジュール ③ mathモジュール ④ SciPyモジュール ⑤ scikit-learnライブラリ
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルおよび履修判定指標を熟読し、第10回目までの配布資料とPythonコードを見直しておくこと。自由課題に取り組むために、第10回目に提供されたデータを確認し、もしくは自身でデータを取得し、課題を設定しておくこと。
【本コマの復習】①第10回目までの配布資料とPythonコード、コマシラバスの全てのコマ主題細目についての細目レベルを再確認しておくこと。②第10回目までに提示された課題を完成させること。③用意されたデータもしくは自身で取得したデータに対して自由課題に取り組み、一連の過程を通じて、統計解析プログラミングの知識とスキルの修得を確認すること。④履修判定指標を再確認すること。⑤演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

12 VRプログラミング 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第12回目は、VRプログラミングとそのためのツールであるUnityでできることを学び、VRプログラミングを行うために開発環境を準備する。
①福田 好孝,他,“入門マルチメディア[改訂新版]”,公益財団法人 画像情報教育振興協会,2018,p.24
久保田 浩明,他,“実践マルチメディア[改訂新版]”,公益財団法人 画像情報教育振興協会,2018,pp.32-33

②https://ja.wikipedia.org/wiki/Unity (ゲームエンジン)

③“Unityをダウンロード”, https://unity.com/ja/download
Unity for Pro, “Unity公式デモを体験しよう”, https://forpro.unity3d.jp/unity_pro_tips/2021/10/07/2706/

①〜③教員が配布する資料
コマ主題細目 ① VRプログラミング ② Unity ③ Unityのセットアップ
細目レベル ① 2016年に、VRデバイスとして、頭部に装着し、頭部の動きに連動して映像を映し出すヘッドマウントディスプレイ(HMD)が次々と発売され、VR元年と呼ばれた。実際には存在しないものごとを現実であるかのように感じさせる仮想現実(Virtual Reality)技術が普及した年とされる。また、COVID-19が蔓延した影響もあり、遠隔地の人と臨場感のある社会生活を送るメタバースと呼ばれるクラウド上に構築される仮想社会が注目されている。しかし、VR技術への需要が高まる一方で、VRコンテンツやVRアプリケーションの作り手の不足が懸念されている。データサイエンティストにも、3次元コンピュータグラフィックスや3次元音響、物理モデルを扱うVRプログラミングのスキルを修得することが望まれている。本講義では、まず、VRプログラミングの概要を学ぶ。
② VRコンテンツの開発プラットフォームとして圧倒的なシェアを持つのがUnityである。Unityは、PC(Windows, MacOS, Linux)、モバイル端末(Android, iOS)、Webブラウザ、家庭用ゲーム機(Play Station, Xbox, Nintendo Switchなど)に対応するクロスプラットフォームのゲームエンジンであるが、産業システムやメタバースアプリケーション、動画制作等にも利用されている。プログラミング言語C#を用いてスクリプトを書くことで、Unityが提供する機能を拡張することができる。また、ノーコード/ローコード開発のためのビジュアルスクリプティングツールも用意されている。Unityでは、開発者が作成したアイテムやキャラクタ、アニメーション、スクリプトなどの資産(アセット)を販売、提供するストアがあり、その量が豊富であることが特徴である(より高品質なグラフィックスを要求するなら、Unreal Engineというゲームエンジンにメリットがある)。本講義では、Unityの概要と特徴を学ぶ。
③ UnityはIDE(Integrated Development Environment)を内蔵するゲームエンジンである。IDEとは、ソースコードを記述するエディタ、ソースコードから実行ファイルを生成するコンパイラ、ソースコードのバグを検出するデバッガなどのプログラム開発ツールを統合した開発環境のことである。UnityでVRプログラミングを行う開発環境を構築するために、まず、Unity Hubをダウンロードして、インストールする。Unity Hubを利用すると、Unityエディタの複数のバージョンをインストールでき、Unityプロジェクトの作成・管理を行える。また、初学者は学習用コンテンツを利用することができる。次に、Unityのバージョンを選択してダウンロードし、インストールする。Unityを起動すると、UnityエディタにSceneビュー(またはGameビュー、Asset Store)、Hierarchyビュー、Inspectorビュー、Projectビュー(またはConsoleビュー)が表示される。Sceneビューは、VR空間にオブジェクトやカメラを配置するインタフェース、Gameビューは、プログラムを実行した時に表示されるインタフェースである。Asset Storeは、アセットを提供する。Hierarchyビューは、オブジェクトを管理するインターフェースで、オブジェクト間に階層構造を設定することができる。Inspectorビューは、オブジェクトの属性を設定するインタフェース、Projectビューは、VRコンテンツを作成するために必要なアセットを管理するインタフェース、Consoleビューは、プログラムを実行した時にエラーメッセージなどを表示するインタフェースである。本講義では、Unityをセットアップし、Unityエディタの画面構成を確認する。また、サンプルプログラムを実行し、Unityの動作を確認する。
キーワード ① VR(仮想現実) ② Unity ③ Unity Hub ④ Unityエディタ ⑤ アセット
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、VRプログラミングを行う開発プラットフォームであるUnityについて確認しておくこと。また、「環境情報と社会」や「情報メディア概論」の講義資料を利用して、VRについて復習しておくこと。
【本コマの復習】①Unityを用いたVRプログラミングのための開発環境の準備を完了させておくこと。②Unityエディタの操作を確認しておくこと。③本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。④演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

13 VRコンテンツの作成 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第13回目は、UnityでVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。
①Unity Learn, “Unity入門チュートリアル 「玉転がし」(Roll-a-Ball) ビジュアルスクリプティング版”, https://learn.unity.com/project/roll-a-ball-visual-scripting-jpの「プロジェクトを作成する」「エディターのレイアウトを統一する」「インタフェースの使い方」「Visual Scriptingパッケージの確認」

②Unity Learn, “Unity入門チュートリアル 「玉転がし」(Roll-a-Ball) ビジュアルスクリプティング版”, https://learn.unity.com/project/roll-a-ball-visual-scripting-jpの「地面の作成」「床の色を塗る」「壁の作成」「ファイルおよびゲームオブジェクトの整理」「プレイヤーの追加」「物理演算機能の追加」

③Unity Learn, “Unity入門チュートリアル 「玉転がし」(Roll-a-Ball) ビジュアルスクリプティング版”, https://learn.unity.com/project/roll-a-ball-visual-scripting-jpの「カメラを動かす」「Itemオブジェクトの追加」「残りのアイテム数を表示する」「クリア時のUIの作成」「ぶつかってはいけない壁の作成」

①〜③教員が配布する資料
コマ主題細目 ① プロジェクトの作成 ② オブジェクトの作成 ③ カメラの動きの設定
細目レベル ① Unityでは、コンテンツ全体の構成をプロジェクト、コンテンツの各部を構成する独立した各場面や各ステージをシーンと呼ぶ。プロジェクトを作成するには、Unity Hubを起動して、「新しいプロジェクト」ボタンをクリックする。本講義では、Visual Scriptingを行うため、Unityのバージョンが2021.2以降であることを確認する。次に、「すべてのテンプレート」から「3D」を選択し、プロジェクト名を入力して、「プロジェクトを作成」ボタンをクリックする。ここで、「SampleScene」が開かれるが、これを使用せずに、「File」から「New Scene」を作成する。シーンのテンプレート選択画面では、「Basic (Built-in)」を選択し、「Create」ボタンをクリックする。そして、シーン名を入力(例えば、stage01)して保存する。ここで、シーン情報を保存したシーンファイル(stage01.unity)が作成される。Sceneビューの移動方法は3つある。1つ目は、マウスホイールの回転によるSceneビューの拡大/縮小、2つ目は、右クリックしながらドラッグすることによるSceneビューの回転、3つ目は、マウスホイールを押しながらドラッグすることによるSceneビューの平行移動である。本講義では、Unityプロジェクトの作成と設定の方法、シーンの作成と保存と操作の方法を学ぶ。
② VRコンテンツを構成するオブジェクトとして、シーンに地面や壁を作成し、シーン内を移動するプレイヤーとしてボールを追加する。Unityでは、シーン内に配置される全ての要素をGame Objectと呼び、3Dメッシュ、ライト(照明)、物理オブジェクト、サウンド、トリガーなど様々な形態があり、Unityによって挙動が管理され、任意にスクリプトを割り当てて制御することができる。地面は、Hierarchyビューの「+」から「3Dオブジェクト」の「Plane」を、壁は「Cube」を、ボールは「Sphere」を利用する。作成したオブジェクトには名前をつけておく(例えば、GroundやWall、Player)。シーン内でのオブジェクトの配置は、Transformコンポーネントで管理される。Positionが座標、Rotationが回転、Scaleがサイズである。また、オブジェクトには、色や反射といった材質(Material)を設定することができる。そのために、Projectビューの「+」ボタンから「Material」を選択し、Materialファイルを作成する。Materialファイルは、Projectビューの「Assets」に保持される。ここで、Materialファイルの名前を変更しておく(例えば、GroundMaterialやWallMaterial)。次に、Inspectorビューの「Albedo」でテクスチャや色を設定する。この設定をオブジェクトに反映させるには、MaterialファイルをHierarchyビューのオブジェクトにドラッグアンドドロップする。オブジェクトPlayerには物理挙動を追加する。HierarchyビューでPlayerを選択し、Inspectorビューで「Add Component」ボタンをクリックする。そして、「Effects」から「Rigidbody」を選択する。Rigidbodyは、オブジェクトを物理特性によって制御するコンポーネントである。ここで、ゲーム再生ボタンをクリックすると、Playerの初期状態が空中に浮いているなら、物理演算が行われて落下する。Playerをキーボード入力に応じて転がすためには、コンポーネントを作成する必要があり、本講義ではVisual Scriptingで実装する。そこで、「Add Component」ボタンをクリックして、「Script Machine」を選択する。これは、イベントを拾ったりや計算を行うノードを連結したグラフである。「New」ボタンをクリックして、名前をつけて保存する(例えば、PlayerController)。「Edit Graph」ボタンをクリックして、Playerに意図した動作を与えられるようにグラフを編集する。本講義では、VRコンテンツを構成するオブジェクトの作成方法とVisual Scriptingを用いた物理演算機能の設定方法を学ぶ。
③ VRコンテンツの必須要素はダイナミックなカメラワークであり、一人称視点での映像生成である。これは、カメラをPlayerの子オブジェクトに設定することで実現できる。HierarchyビューのMain CameraをPlayerにドラッグアンドドロップするだけである。ただし、Playerはボールであり、転がって移動するため、視点は連動してグルグル回る。視点を回転させないためには、Playerを追跡するコンポーネントを作成する必要がある。本講義では、これもVisual Scriptingで実装する。原理としては、Playerの位置を取得して、Main Cameraの座標を毎フレーム、それを基準とした相対位置に設定する。まず、HierarchyビューでMain Cameraを選択し、「Add Component」をクリックして、「Script Machine」を選択する。次に、「New」ボタンをクリックして、名前をつけて保存する(例えば、FollowPlayer)。続いて、Inspectorビューの「Variables」に「Target」を追加して、「Type」に「Game Object」を選択し、HierarchyビューからPlayerを「Value」にドラッグアンドドロップする。ここで、「Edit Graph」ボタンをクリックして、グラフ上に「Target」をドラッグアンドドロップすると、Get Variableノードが作られる。そこに、Playerの位置を取得するTransform: Get Positionノードを接続し、さらに、Main Cameraの位置を設定するTransform: Set Positionノードを連結する。本講義では、VRコンテンツで重要な要素であるカメラの動きの設定方法を学ぶ。
キーワード ① Game Object ② Material ③ 物理演算 ④ Visual Scripting ⑤ カメラ
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Unityを用いたVRコンテンツの作成について調査しておくこと。また、手順資料を配布するので、Unityのアカウントを本コマまでに必ず作成し、Unity Hubで初学者向けの学習用コンテンツを確認しておくこと。Unity上でVRコンテンツを視聴体験してみるのも良い。
【本コマの復習】①Unityを用いたVRコンテンツを完成させること。②このVRコンテンツをいろいろとアレンジしてみること。③本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。④演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

14 3DCGモデリング 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第14回目は、実物体をVRコンテンツのオブジェクトとして利用するために、3次元CGモデル(3DCGモデル)の構成と3DCGモデルを作成する3DCGモデリングとしてフォトグラメトリを学ぶ。また、実際に3DCGモデルを作成して、UnityのVR空間に表示する実習を行う。
①https://ja.wikipedia.org/wiki/3次元コンピュータグラフィックス

②鳥海 幸一,“フォトグラメトリの教科書”,株式会社インプレスR&D,2022
井尻 善久,牛久 祥孝,片岡 裕雄,藤吉 弘亘,“コンピュータビジョン最前線 Autumn 2022”,共立出版,2022.

③“LumaAI”, https://lumalabs.ai/
Unity Documentation, “3Dアプリケーションからモデルをインポートする方法”, https://docs.unity3d.com/ja/2017.4/Manual/HOWTO-importObject.html

①〜③教員が配布する資料
コマ主題細目 ① 3DCGモデル ② フォトグラメトリ ③ 3DCGモデルの作成と表示
細目レベル ① Unityでは、3次元コンピュータグラフィックス(3DCG)技術を用いて作成した物体をVR空間にインポートすることができる。3次元物体は、コンピュータ上で数式で表現される曲面や、ポリゴンと呼ばれる多角形やプリミティブと呼ばれる基本形状の集合で表現され、3DCGモデルと呼ばれる。3DCGモデリングとは、3DCGモデルを作成する作業のことである。実世界に存在する複雑な形状を持つ物体を3Dモデル化する主な方法としては、多数の画像を用いる写真測量法(フォトグラメトリ)やレーザーを用いた距離計測による3Dスキャンがあり、ポリゴンで物体を表現する。3DCGモデルは、形状だけではなく、材質(マテリアル)の情報も持ち、色や透明度、光の反射などを表現することができる。また、物体表面の細かな色彩情報であるテクスチャを画像として併せ持つことができる。VR空間に光源とカメラを設定し、その視点からの見えを生成する工程をレンダリング、形状を表現するポリゴンなどに画像を貼り付けることをテクスチャマッピングという。本講義では、まず、3DCGモデルの構成を学ぶ。
② 近年、手軽に3DCGモデリングを行えるようになっている。レーザーを用いて距離計測を行うLiDARセンサを備えた3Dスキャナやスマートフォンも販売されているが、カメラで撮影した複数の写真や動画を用いるフォトグラメトリ(写真測量法)が普及している。フォトグラメトリとは、被写体を様々な視点から撮影し、その幾何特性を得る方法、つまり、複数の画像から被写体の3次元復元を行う方法である。最も基本的な原理は、我々が奥行きを知覚する仕組みの1つである両眼立体視に倣うステレオ写真測量である。2つの視点から撮影した画像それぞれにおいて、被写体の同じ点を検出し、画像間での位置の差(視差)に基づいて視点からの3次元位置を求めることができる。そして、3次元位置を計測できた点を結んでメッシュ(あるいはワイヤーフレーム)を構成し、それらの点を頂点とする面をポリゴンとする。その他にも、画像から被写体のシルエットを抽出し、カメラの位置を頂点としてシルエットが底面となる錐体(視体積)を作り、他の視点での錐体と交差する部分を削り出して3次元形状を復元する視体積交差法や、深層ニューラルネットワークを用いて、3次元空間における各視点でカメラが受け取る輝度の情報を高い精度で予測するNeRF(Neural Radiance Fields)がある。本講義では、フォトグラメトリの原理と代表的な手法を学ぶ。
③ 前述のNeRFを実装したクラウドアプリケーションとしてLumaAIが公開されている。LumaAIのWeb版では、スマートフォン等で撮影した動画もしくは複数の画像をZIPファイルに圧縮したものをアップロードするだけで、3DCGモデルが作成される。撮影のコツとしては、HDRを無効にする、被写体に向かって3つの高さで視点をループさせる(胸の高さで正面向き、頭の少し上から斜め下向き、膝の高さから斜め上向き)、手ぶれを抑えてゆっくり撮影する。また、スマホアプリ版もあり、アプリからの指示に従ってカメラを被写体に向けていくだけで、3DCGモデルが作成される。なお、カメラワークを設定し、レンダリングして動画を生成したり、物体の背景を削除することができる。iPhone12以降のProシリーズと2020年以降に発売されたiPad ProにはLiDARセンサが搭載されていて、Scaniverseか3d Scanner Appというアプリで3DCGモデリングを行える。作成した3DCGモデルをUnityのVR空間にインポートするためには、形状を数値化したOBJファイルとしてエクスポートする必要がある。その際、マテリアル情報を保持するMTLファイルとテクスチャの画像ファイルが付随する。これらのファイルをUnityエディタのProjectビュー内のAssetsにドラッグ&ドロップする。OBJファイルを読み込むと、物体のスケールが100分の1になるため、Inspectorビューの「Model」タブで「Convert Units」のチェックを外し、「Apply」ボタンをクリックする。また、オブジェクトにテクスチャを貼るために、「Materials」タブの「Location」で「Use External Materials(Legacy)」を選択し、「Apply」ボタンをクリックする。続いて、Assetsに登録したファイルをHierarchyビューにドラッグ&ドロップして、オブジェクトをシーンに配置する。本講義では、フォトグラメトリで3DCGモデルを作成し、UnityのVR空間に表示する方法を学ぶ。
キーワード ① 3DCGモデル ② ポリゴン ③ マテリアル ④ フォトグラメトリ ⑤ NeRF
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、3DCGモデリングについて調査しておくこと。また、3DCGモデルを作成したい物体を用意しておくこと。LumaAIのアカウントを作成し、公開されている3DCGモデルを閲覧しておくと良い。
【本コマの復習】①LumaAI等を用いて、いろいろな物体の3DCGモデルを作成し、第13回目で作成したVRコンテンツで利用してみること。②本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。③演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

15 VRデバイスとVRプログラミングのまとめ 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する応用的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、「環境プログラミング基礎」で学んだ基本的な数学関数や統計指標を計算するプログラミングを復習する。第1回目を含め第11回目までは統計解析プログラミング編である。第2回目では、機械学習を行うための要素であるベクトルと行列の表現および演算、第3回目では、推計統計を行うための要素である確率や確率分布に関してPythonを用いた実装方法を学ぶ。第4回目では信頼区間推定、第5回目から第8回目までは仮説検定を扱い、「環境統計解析学基礎」で学んだ母平均の区間推定、2群の順位の差の検定、2群の平均値の差の検定、独立性の検定、3群以上の母平均の差を検定する分散分析に関してPythonを用いて実装する。第9回目と第10回目は回帰分析を扱い、重回帰モデルと多項式回帰モデルに関してPythonを用いて実装する。第11回目では、第10回目までの講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、統計解析プログラミングの基礎知識とスキルの修得を確認する。第12回目から第15回目は、VRプログラミング編である。第12回目では、VRコンテンツの開発プラットフォームとして代表的なUnityについて学び、VRプログラミングを行うための開発環境を構築する。第13回目では、簡易なVRコンテンツを作成しながら、VRプログラミングとUnityの使い方を学ぶ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために3DCGモデリングを学び、実際に3DCGモデルを作成して、UnityのVR空間に表示する。第15回目では、Unityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する。また、第12回目から第14回目までの講義内容をまとめ、復習し、自身で作成した3DCGモデルを用いてUnityプロジェクトを完成させ、その実行を行い、一連の過程を通じて、VRプログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第15回目は、第14回目までに作成したUnityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する実習を行う。また、第11回目からのVRプログラミングについての講義内容をまとめ、復習する。
①福田 好孝,他,“入門マルチメディア[改訂新版]”,公益財団法人 画像情報教育振興協会,2018,p.24
久保田 浩明,他,“実践マルチメディア[改訂新版]”,公益財団法人 画像情報教育振興協会,2018,pp.32-33

②Meta, “Meta Quest 3”, https://www.meta.com/jp/quest/quest-3/

③教員が配布する資料
コマ主題細目 ① ヘッドマウントディスプレイ(HMD) ② HMD型VRデバイスでの3Dコンテンツの表示 ③ VRプログラミングのまとめ
細目レベル ① VRアプリケーションや3Dコンテンツを体験するためのデバイスとしてヘッドマウントディスプレイ(HMD)が普及している。HMDは、頭部に装着するディスプレイで、頭部の動きに連動して映像を映し出す。付属する物理的なコントローラを使って、VR空間内で行動することが一般的である。近年では、MR(複合現実、Mixed Reality)表示が可能なHMDも市販されている。MRは、現実の視界全面に仮想物体が存在するかのようにCGをシースルー型HMDに投影する技術である。仮想物体とのインタラクションは、指でのジェスチャや仮想的なタッチで実現される。シースルー型HMDには、光学式シースルーとビデオシースルー(パススルー)の2種類の表示方式がある。前者は、ハーフミラーにホログラムを投影する方式で、ハーフミラー越しに見える現実世界に半透明の仮想物体が重なって見える。後者は、視界全面をカメラで撮影した画像に仮想物体を描画し、HMDに表示する方式である。本講義では、ヘッドマウントディスプレイ型VRデバイスの仕組みを学ぶ。
② 第14回目までに作成したUnityプロジェクトをヘッドマウントディスプレイ型のVRデバイス上で実行する実習を行う。VRデバイスは、MR表示が可能なビデオシースルー方式のMeta Quest 3を用いる。Meta Quest 3は、ディスプレイ解像度が片眼で2,064×2,208ピクセル、両眼で4Kを超える。片眼ごとに4メガピクセルカラーカメラで前方視野を撮影し、リフレッシュレート90〜120Hzの立体視フルカラーパススルーを実現しているため、MR表示の臨場感が非常に高い。Meta Quest 3でUnityプロジェクトを実行するためには、UnityにAndroid Build Supportというモジュール(Android SDK & NDK ToolsとOpenJDKを含む)を追加する必要がある。まず、Unityプロジェクトを新規作成した後には、「File」メニューの「Build Settings」で、「Platform」で「Android」、「Texture Compression」で「ASTC」を選択し、「Switch Platform」ボタンをクリックする。次に、「XR Plugin Management」「Meta XR Core SDK」「Meta XR Interaction SDK OVR Integration」を順にインストールし、「Oculus」メニューの「Tools」の「Project Setup Tool」を選択し、「Outstanding Issues」の「Fix All」をクリックする。続いて、「Oculus」メニューの「Tools」の「Building Blocks」を選択して、「Building Blocks」のウィンドウを表示し、HierarchyビューにCameraRigを追加する(Main Cameraを削除)。プロジェクトを作成し終えたら、Meta Quest 3をPCに接続し、「File」メニューの「Build Settings」で、「Run Device」を「Oculus Quest 3」に変更し、「Build And Run」ボタンをクリックし、ビルドが終わると実行する。本講義では、UnityプロジェクトをMeta Quest 3で実行する方法を学ぶ。
③ 第12回目から第14回目のVRプログラミングを復習する。第12回目では、VRプログラミングの概要と、VRコンテンツ開発の代表的なプラットフォームであるUnityの概要と特徴を学んだ。また、Unityをセットアップし、Unityエディタの画面構成と、サンプルプログラムを実行して、Unityの動作を確認した。第13回目では、Unityプロジェクトの作成と設定の方法、シーンの作成と保存と操作の方法を学んだ。そして、UnityでVRコンテンツを構成するオブジェクトの作成方法とVisual Scriptingを用いた物理演算機能の設定方法を学んだ。さらには、VRコンテンツで重要な要素であるカメラの動きの設定方法を学んだ。第14回目では、実物体をVRコンテンツのオブジェクトとして利用するために、3DCGモデルの構成を学んだ。また、3DCGモデルを作成する3DCGモデリングの方法の1つであるフォトグラメトリの原理と代表的な手法を学んだ。そして、実際に3DCGモデルを作成し、UnityのVR空間に表示する方法を学んだ。
キーワード ① ヘッドマウントディスプレイ(HMD) ② MR(複合現実) ③ 光学式シースルー ④ ビデオシースルー ⑤ Meta Quest 3
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、ヘッドマウントディスプレイ、特に、Meta Quest 3について調査しておくこと。また、「環境情報と社会」や「情報メディア概論」の講義資料を利用して、VRとMRについて復習しておくこと。
【本コマの復習】①第15回目までの配布資料とPythonコード、Unityプロジェクト、コマシラバスの全てのコマ主題細目についての細目レベルを再確認しておくこと。②第14回目までに提示された課題を完成させること。③用意されたデータもしくは自身で取得したデータに対して自由課題に取り組み、一連の過程を通じて、統計解析プログラミングとVRプログラミングの知識とスキルの修得を確認すること。④履修判定指標を再確認すること。⑤演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

履修判定指標
履修指標履修指標の水準キーワード配点関連回
基本的な数理統計処理とベクトル/行列演算の理解 Pythonを用いた基本的な数理統計処理として、代表値や相関係数、回帰直線、各種の数学関数の計算およびベクトルと行列の表現と演算を理解、修得することができているかどうか、実行結果を正しく予測することができるかを次の項目に基づいて確認する。1.statisticsモジュールを用いた代表値の計算、2.statisticsモジュールを用いた相関係数、回帰直線の計算、3.mathモジュールを用いた数学関数の計算、4.NumPyモジュールを用いた配列によるベクトルと行列の表現、5.ベクトル演算、6.行列演算 平均値、中央値、最頻値、分散、標準偏差、相関係数、回帰直線、対数、累乗、平方根、指数、三角関数、円周率、配列、行列、ベクトル、アダマール積、ブロードキャスト、内積 20 1, 2
データの分布と母平均の区間推定の理解 Pythonを用いた確率分布に従うデータ生成と母平均の区間推定を理解、修得することができているかどうか、実行結果を正しく予測することができるかを次の項目に基づいて確認する。1.NumPyモジュールを用いた正規分布に従うデータ生成、2.NumPyモジュールを用いた二項分布に従うデータ生成、3.母平均の区間推定の仕組み、4.標本の母分散が既知である場合について、SciPyモジュールを用いた母平均の区間推定、5.標本の母分散が未知である場合について、SciPyモジュールを用いた母平均の区間推定 確率、確率変数、確率密度、確率分布、正規分布、二項分布、標準正規分布、t分布、母平均の信頼区間、母分散、有意水準 20 3, 4
仮説検定の理解 Pythonを用いた仮説検定を理解、修得することができているかどうか、実行結果を正しく予測することができるかを次の項目に基づいて確認する。1.仮説検定の仕組み、2.2群の対応がある場合について、SciPyモジュールを用いた2群の順位の差の検定(ウィルコクソンの符号順位検定)、3.2群の対応がない場合について、SciPyモジュールを用いた2群の順位の差の検定(マン・ホイットニーのU検定)、4.2群の対応がある場合について、SciPyモジュールを用いた2群の母平均の差のt検定、5.2群の対応がなく等分散性はある場合について、SciPyモジュールを用いた2群の母平均の差のスチューデントのt検定、6.2群の対応がなく等分散性もない場合について、SciPyモジュールを用いた2群の母平均の差のウェルチのt検定、7.SciPyモジュールを用いた2つの分類基準の独立性についてのカイ二乗検定、8.対応がない3群以上について、SciPyモジュールを用いた母平均の差の一元配置分散分析 パラメトリック検定、ノンパラメトリック検定、帰無仮説、p値、検定統計量、ウィルコクソンの符号順位検定、マン・ホイットニーのU検定、対応、等分散性、スチューデントのt検定、ウェルチのt検定、クロス集計、独立性についてのカイ二乗検定、一元配置分散分析 20 5, 6, 7, 8
回帰分析の理解 予測問題におけるモデリングの一手法として、Pythonを用いた回帰分析とその評価方法を理解、修得することができているかどうか、実行結果を正しく予測することができるかを次の項目に基づいて確認する。1.回帰モデルと最小二乗法を用いたパラメータ推定の仕組み、2.scikit-learnライブラリを用いた重回帰、3.回帰モデルの評価方法、4.scikit-learnライブラリを用いた多項式回帰、5.過剰適合を抑制するための正則化の仕組み、6.Lasso回帰とRidge回帰による正則化 線形回帰モデル、単回帰、重回帰、最小二乗法、損失関数、平均二乗誤差、平均二乗平方根誤差、平均絶対誤差、非線形回帰モデル、多項式回帰、過剰適合、Lasso回帰(L1正則化)、Ridge回帰(L2正則化) 20 9, 10
VRプログラミングと3DCGモデリングの理解 Unityを用いたVRプログラミングと3DCGモデリングについての基礎知識を修得することができているかどうかを次の項目に基づいて確認する。1.VR(Virtual Reality、仮想現実)とMR(Mixed Reality、複合現実)の概念、2.ヘッドマウントディスプレイ(HMD)型VRデバイスの仕組み、3.VRコンテンツ開発プラットフォームUnityの特徴、4.VRプログラミングの要素、5.3DCG(3次元コンピュータグラフィックス)モデルの構成、6.フォトグラメトリの基本原理、7.3DCGモデリングの代表的な手法 VR、MR、HMD、Unity、ビジュアルスクリプティング、アセット、シーン、オブジェクト、マテリアル、物理演算、カメラワーク、3DCGモデリング、ポリゴン、メッシュ、3Dスキャン、フォトグラメトリ、NeRF(Neural Radiance Fields) 20 12, 13, 14, 15
評価方法 期末試験(100%)により行う。
評価基準 評語
    学習目標をほぼ完全に達成している・・・・・・・・・・・・・ S (100~90点)
    学習目標を相応に達成している・・・・・・・・・・・・・・・ A (89~80点)
    学習目標を相応に達成しているが不十分な点がある・・・・・・ B (79~70点)
    学習目標の最低限は満たしている・・・・・・・・・・・・・・ C (69~60点)
    学習目標の最低限を満たしていない・・・・・・・・・・・・・ D (60点未満)
教科書 特に既成の教科書を使わない。資料を配布する。
参考文献 1.高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,2.Pythonドキュメント statistics---数理統計関数,https://docs.python.org/ja/3/library/statistics.html,3.大重 美幸,“詳細!Python3入門ノート”,ソーテック社,2017,4.チーム・カルポ,“Python統計分析&機械学習マスタリングハンドブック”,秀和システム,2023,5.SciPy Manual, "scipy.stats.wilcoxon", https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wilcoxon.html,6.SciPy Manual, "scipy.stats.mannwhitneyu", https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mannwhitneyu.html,7.福田 好孝,他,“入門マルチメディア[改訂新版]”,公益財団法人 画像情報教育振興協会,2018,8.久保田 浩明,他,“実践マルチメディア[改訂新版]”,公益財団法人 画像情報教育振興協会,2018,9.https://ja.wikipedia.org/wiki/Unity (ゲームエンジン),10.Unity Learn, “Unity入門チュートリアル 「玉転がし」(Roll-a-Ball) ビジュアルスクリプティング版”, https://learn.unity.com/project/roll-a-ball-visual-scripting-jp,11.鳥海 幸一,“フォトグラメトリの教科書”,株式会社インプレスR&D,2022,12.井尻 善久,牛久 祥孝,片岡 裕雄,藤吉 弘亘,“コンピュータビジョン最前線 Autumn 2022”,共立出版,2022
実験・実習・教材費 特になし。