学習コースLearning course
研究の技術を、実践的に学ぶLearn research skills, hands-on
データ収集から各種の分析技術まで、「概要 → 理論 → 実際に動かせるコード」の順に学べる、3つの段階・全12モジュール+7つの実践演習からなる学習コースです。各モジュールは独立して読め、手を動かせるインタラクティブなデモと、実行できる Python の例をそなえています。高専生相当から、はじめて学ぶ一般の方までを対象にしています。
この学習コースは日本語のみで提供していますThis learning course is available in Japanese only.
コースの構成How the course works
3つの段階で学ぶ
この学習コースは、研究やデータ分析の現場で使う技術を、順を追って実践的に身につけることを目的としています。全体は大きく3つの段階に分かれています。
- 第1段階:データを集める。分析の前に、まず素材となるデータが要ります。ソフトウェア開発の履歴からデータを掘り出す方法と、集めた生データを分析に使える形へ整える方法を学びます。
- 第2段階:集めたデータを分析する。整ったデータから意味を引き出すための代表的な技術を、自然言語処理・ネットワーク分析・機械学習・深層学習・大規模言語モデル・プログラム解析に加え、統計分析・データ可視化・因果推論・時系列分析と、分野を横断して学びます。
- 第3段階:技術をつないで実践する。第1・第2段階で学んだ技術を1本のパイプラインにつなぎ、公開データを使った現実的な課題を解く総合演習に取り組みます。各演習には、その場で実行できる Colab / Jupyter ノートブックがついています。
どのモジュールも、次の3つの層を積み上げる構成です。まず概要でその技術が何のためにあるのかをつかみ、次に仕組み(座学)で背後の理論・定義・式をていねいに理解し、最後にコードで動かすで Python の定番ライブラリやページ内デモを使って実際に確かめます。さらに各モジュールには、ブラウザ上で手を動かせるインタラクティブ・デモを用意しました。読みながら値を書き換え、結果の変化を確かめられます。
手を動かす題材には、実在の公開データセットや、ページ内の小さなサンプルだけを使います。特別な環境がなくても、読みながら試せる構成です。関心のあるモジュールから、どの順番で読んでもかまいません。
学習の進め方Learning roadmap
第1・第2段階で個々の技術を学び、第3段階の実践編でそれらを1本のパイプラインにつないで、現実的な課題を解きます。Stages 1 and 2 build up individual techniques; Stage 3 connects them into a single pipeline to solve realistic problems.
第1段階 · データ収集Stage 1 · Data collection
まず、データを集める
分析はデータがあってはじめて成り立ちます。開発の履歴からデータを掘り出し、それを分析に使える形へ整えるまでの、2つのモジュールです。
リポジトリマイニング入門Repository Mining
ソフトウェア開発の履歴(コミット・課題・変更)からデータを取り出し、開発の実態を定量的に読み解く技術を、基礎から手を動かして学びます。コミットログの解析からコードチャーン、共変更まで。
モジュールを開くOpen module モジュール 02Module 02開発データの前処理とデータセット構築Data Preprocessing
集めた生のデータを洗浄・変換し、分析や機械学習に使えるデータセットへ仕立てる工程を学びます。欠損値と外れ値の扱い、特徴量エンジニアリング、データ分割とリーク防止まで。
モジュールを開くOpen module第2段階 · 分析技術Stage 2 · Analysis techniques
集めたデータを、分析する
整ったデータから意味を引き出すための代表的な技術です。テキスト・関係・数値・画像・コードから、統計・可視化・因果・時系列まで、対象と目的に応じた10のモジュールを用意しました。
自然言語処理(NLP)Natural Language Processing
テキストデータをコンピュータで扱うための基礎技術を学びます。前処理とトークン化、Bag-of-Words と TF-IDF、分散表現とコサイン類似度、テキスト分類、そして Transformer への道のりまで。
モジュールを開くOpen module モジュール 04Module 04ネットワーク分析Network Analysis
人・モノ・要素の「つながり」をグラフとして表し、その構造や重要な要素を定量的に読み解きます。グラフの基礎から中心性、コミュニティ検出、最短経路まで。
モジュールを開くOpen module モジュール 05Module 05機械学習Machine Learning
データからパターンを学び、予測や分類を行う機械学習の基礎を学びます。回帰・分類・モデル評価・過学習と正則化・アンサンブルまで。
モジュールを開くOpen module モジュール 06Module 06深層学習Deep Learning
多層のニューラルネットワークが表現を自動で学ぶ仕組みを学びます。ニューロンと活性化関数、誤差逆伝播、畳み込みニューラルネット(CNN)、系列を扱うモデルまで。
モジュールを開くOpen module モジュール 07Module 07大規模言語モデル(LLM)Large Language Models
文章を生成・理解する大規模言語モデルの仕組みを学びます。Transformer と自己注意、事前学習、プロンプト設計、検索拡張生成(RAG)まで。NLP・深層学習の続きとして。
モジュールを開くOpen module モジュール 08Module 08プログラム解析Program Analysis
プログラムを実行せず、あるいは実行しながら解析し、構造・品質・振る舞いを読み解く技術を学びます。字句・構文解析(AST)、静的解析、コードメトリクス、動的解析まで。
モジュールを開くOpen module モジュール 09Module 09統計分析Statistical Analysis
データから確かな結論を導く推測統計と仮説検定を学びます。記述統計・確率分布・信頼区間・t検定やANOVA・効果量・相関と因果まで。「予測」の機械学習に対し「推測・検定」を担います。
モジュールを開くOpen module モジュール 10Module 10データ可視化Data Visualization
データを正しく・わかりやすく伝える図の作り方を学びます。図の種類と選び方、良い図の原則、matplotlib・seaborn、そして誤解を招く図の避け方まで。
モジュールを開くOpen module モジュール 11Module 11因果推論Causal Inference
相関を超えて「原因と結果」を見極める考え方と手法を学びます。交絡とバイアス、ランダム化比較、傾向スコア、差分の差分法・操作変数まで。
モジュールを開くOpen module モジュール 12Module 12時系列分析Time Series Analysis
時間とともに変化するデータの構造を読み解き、予測する技術を学びます。成分分解、定常性と自己相関、ARIMA、予測の評価まで。
モジュールを開くOpen module第3段階 · 実践編Stage 3 · Practice
集めて、分析して、つなぐ
第1・第2段階で学んだ技術を1本のパイプラインにつなぎ、公開データを使った現実的な課題を解く総合演習です。「課題設定 → データ入手 → 前処理 → 分析 → 評価 → 考察」の流れを、実行できるコードでたどります。各演習には、その場で動かせる Colab / Jupyter ノートブックがついています。
OSSプロジェクトの健康診断OSS project health check
公開リポジトリの開発履歴から、プロジェクトの状態を定量的に読み解き、変更が集中しやすいファイル(ホットスポット)を予測します。リポジトリマイニング・前処理・ネットワーク分析・機械学習をつなぎます。
演習を開くOpen exercise 総合演習 02Project 02テキスト分類器をゼロから作るBuild a text classifier
公開テキストコーパスを題材に、前処理からTF-IDF・分類・評価までの一連を組み立て、2つの分類器を比較します。自然言語処理・前処理・機械学習をつなぎます。
演習を開くOpen exercise 総合演習 03Project 03ソースコードを測って読み解くMeasuring source code
複数のソースコードを解析してメトリクスのデータセットを作り、規模と複雑さの関係を調べ、似たコードを群化します。プログラム解析・前処理・機械学習をつなぎます。
演習を開くOpen exercise 総合演習 04Project 04意味で検索するSemantic search
文書集合に「キーワード一致の検索(TF-IDF)」と「意味の近さで探す検索(文埋め込み)」を作って比較し、それぞれの強み・弱みを理解します。自然言語処理・大規模言語モデルをつなぎます。
演習を開くOpen exercise 総合演習 05Project 05深層学習の一気通貫CNN end-to-end
小さな画像データで、前処理から畳み込みニューラルネット(CNN)の学習・評価までを一気通貫で行います。深層学習・前処理・評価をつなぎます。
演習を開くOpen exercise 総合演習 06Project 06開発活動の時系列を読み解くDev activity time series
公開リポジトリのコミット履歴を時系列にして、開発活動のトレンドや季節性を分解し、先の活動量を予測・可視化します。リポジトリマイニング・時系列分析・可視化をつなぎます。
演習を開くOpen exercise 総合演習 07Project 07A/Bテストで効果を検証するA/B test analysis
対照実験のデータを、仮説検定・効果量・因果の考え方で正しく評価し、結果を図で伝えます。統計分析・因果推論・データ可視化をつなぎます。
演習を開くOpen exercise学び方How to study
手を動かしながら、自分のペースで
各モジュールは独立して読めます。興味のある技術から始めても、第1段階から順にたどってもかまいません。読みながらデモの数値を書き換え、コード例を手元で動かしてみると、理解がぐっと深まります。
これらの技術が研究の現場でどう使われているかは、研究や教育のページもあわせてご覧ください。