データベース処理とデータ分析:SQL・Python・機械学習による演習(授業資料)

リレーショナルデータベースの基礎、データ分析・機械学習の入門を、Python と SQL を用いた演習形式で体系的に学ぶ構成である。SQLite3 と Python を演習環境として使用し、各回で説明と演習を組み合わせた構成となっている。

カリキュラム構成

本教材は以下の4つの部で構成される。

  1. 第1部:SQL基礎(第1回〜第3回)

    SQLite3 と Python を用いて、テーブル定義、CSVデータの挿入、SELECT文による問い合わせの基本操作を習得した後、複数テーブルの結合演算と外部キーの概念を学ぶ。

  2. 第2部:データ処理とWebアプリケーション(第4回〜第5回)

    Pandas の DataFrame を用いたデータの読み込み、集計、ソート、頻度分布、集約を学び、Flask フレームワークによる Web アプリケーションを構築してデータベースの内容を Web ブラウザに表示する。

  3. 第3部:オブジェクト指向データベースとデータ分析(第6回〜第7回)

    オブジェクト指向データベース ZODB を用いて、Python オブジェクトの永続化とトランザクション管理を学習し、Pandas DataFrame の格納と分析、Matplotlib・Seaborn による可視化を実践する。

  4. 第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)に基づき、著作者表示・非営利目的・同一ライセンスでの再配布を条件として自由に利用可能である。

資料

  1. テーブル定義,テーブル生成,問い合わせ(SQLite 3, Python を使用)
  2. SQL問い合わせ(SQLite3, Python を使用)
  3. SQL による結合
  4. Python のデータフレーム,集計・集約,ソート
  5. WebでのリクエストURLによる処理の振り分け(PythonのFlaskを使用)
  6. オブジェクト指向データベース
  7. オブジェクトデータベースの基本操作とデータ分析
  8. 分類,クラスタリング
  9. Pythonによるデータ分析
  10. 分類
  11. 種々のグラフ(Python の pandas と seaborn)

補充資料

Web アプリケーション [PDF], [パワーポイント]

データベース,JSON,NoSQL データベース [PDF], [パワーポイント]