データベース処理とデータ分析:SQL・Python・機械学習による演習(授業資料)
リレーショナルデータベースの基礎、データ分析・機械学習の入門を、Python と SQL を用いた演習形式で体系的に学ぶ構成である。SQLite3 と Python を演習環境として使用し、各回で説明と演習を組み合わせた構成となっている。
カリキュラム構成
本教材は以下の4つの部で構成される。
- 第1部:SQL基礎(第1回〜第3回)
SQLite3 と Python を用いて、テーブル定義、CSVデータの挿入、SELECT文による問い合わせの基本操作を習得した後、複数テーブルの結合演算と外部キーの概念を学ぶ。
- 第2部:データ処理とWebアプリケーション(第4回〜第5回)
Pandas の DataFrame を用いたデータの読み込み、集計、ソート、頻度分布、集約を学び、Flask フレームワークによる Web アプリケーションを構築してデータベースの内容を Web ブラウザに表示する。
- 第3部:オブジェクト指向データベースとデータ分析(第6回〜第7回)
オブジェクト指向データベース ZODB を用いて、Python オブジェクトの永続化とトランザクション管理を学習し、Pandas DataFrame の格納と分析、Matplotlib・Seaborn による可視化を実践する。
- 第4部:機械学習とデータ可視化(第8回〜第11回)
分類とクラスタリングの原理と実装を学び、複数の分類器の比較と決定境界の可視化を行う。Pandas と Seaborn を用いた各種グラフ作成手法を習得する。
| 回 | タイトル | 主要な学習内容 |
|---|---|---|
| 第1回 | テーブル定義,テーブル生成,問い合わせ(SQLite 3, Python を使用) | SQLite3接続、CREATE TABLE、CSVデータ挿入、SELECT文 |
| 第2回 | SQL問い合わせ(SQLite3, Python を使用) | WHERE句、AND/OR条件、特定列の選択 |
| 第3回 | SQL による結合 | 外部キー、結合演算、MySQL Employees Sampleデータベース |
| 第4回 | Python のデータフレーム,集計・集約,ソート | Pandas DataFrame、集計、ソート、頻度分布、groupby |
| 第5回 | WebでのリクエストURLによる処理の振り分け(PythonのFlaskを使用) | Flask、URLルーティング、データベース連携 |
| 第6回 | オブジェクト指向データベース | Pythonのデータ型・リスト・辞書、Pandas(Series・DataFrame)、CSVファイル操作、ZODB、Pythonオブジェクトの永続化 |
| 第7回 | オブジェクトデータベースの基本操作とデータ分析 | トランザクション(commit/abort)、ZODBの基本操作、Pandas分析、Matplotlib・Seabornによる可視化 |
| 第8回 | 分類,クラスタリング | SVM(線形・RBFカーネル)、k-means、GMM、PCA |
| 第9回 | Pythonによるデータ分析 | データフレームと散布図、PCAによる次元削減と可視化、メッシュグリッド、GMM確率密度関数の可視化、k-means |
| 第10回 | 分類 | Linear SVM、RBF SVM、Polynomial SVM、k-NN、ランダムフォレスト、決定境界の可視化 |
| 第11回 | 種々のグラフ(Python の pandas と seaborn) | 相関行列、散布図、ペアプロット、ヒストグラム、カーネル密度推定、2変数の分布、回帰分析 |
教材の利用条件: クリエイティブコモンズ 表示-非営利-継承 4.0 国際ライセンス(CC BY-NC-SA 4.0)に基づき、著作者表示・非営利目的・同一ライセンスでの再配布を条件として自由に利用可能である。
資料
- テーブル定義,テーブル生成,問い合わせ(SQLite 3, Python を使用)
- SQL問い合わせ(SQLite3, Python を使用)
- SQL による結合
- Python のデータフレーム,集計・集約,ソート
- WebでのリクエストURLによる処理の振り分け(PythonのFlaskを使用)
- オブジェクト指向データベース
- オブジェクトデータベースの基本操作とデータ分析
- 分類,クラスタリング
- Pythonによるデータ分析
- 分類
- 種々のグラフ(Python の pandas と seaborn)