10 個の Jupyter Notebook で、古典的な教師あり分類を幅広く学びます。主要アルゴリズムの判断原理を調べ、一部の仕組みを Python で実装し、scikit-learn モデルを構築して結果を可視化し、交差検証で分類器を比較します。
ロジスティック回帰のシグモイドと対数損失、KNN の距離と投票、Naive Bayes の確率、SVM のマージンとカーネル、木の情報利得、ニューラルネットワークの逆伝播、アンサンブルのモデル結合をコードにつなげます。ガウス分布、数字認識、モデル選択の課題もあります。
学習内容
- シグモイド、対数損失、勾配降下、scikit-learn でロジスティック回帰を導出・実装する
- 距離計算と投票から KNN を作り、K の選択と kd-tree を調べる
- ベイズの定理、パラメータ推定、多項 Naive Bayes、ガウス分布を適用する
- 線形・非線形 SVM と一般的なカーネル関数を比較する
- パーセプトロンと逆伝播を実装し、
MLPClassifierで数字を分類する - 情報利得、枝刈り、scikit-learn で決定木を構築する
- Bagging、Random Forest、AdaBoost、Gradient Boosting を学習する
- Abalone データを前処理し、10 分割交差検証で 7 種類の分類器を比較する
このコースの対象者
Python を理解し、単一の estimator を呼ぶだけでなく多様な古典分類手法を理解したい方に向いています。入門的な機械学習からアルゴリズム比較とモデル選択へ進む学習者に適しています。Notebook は初級とされていますが、数式の導出と手作業の実装があるため、プログラミングや基礎代数が初めての方には不向きです。
前提知識: Python、NumPy、Pandas、描画、基礎代数を推奨します。確率、導関数、train/test 分割、特徴量とラベルの概念も役立ちます。
学習環境: 10 個のアクティビティは、用意された Ubuntu 22.04 Jupyter 環境で実行します。説明、可視化、scikit-learn の実行例、データ、完成させるコードを含みます。
よくある質問
アルゴリズムをゼロから実装しますか、それとも scikit-learn を使いますか?
両方です。ロジスティック勾配降下、KNN の距離と投票、パーセプトロン更新、木の分割などをコード化した後、実用的な学習と比較に scikit-learn を使います。
どの分類器を扱いますか?
ロジスティック回帰、KNN、Naive Bayes、線形・カーネル SVM、パーセプトロンと MLP、決定木、Bagging、Random Forest、AdaBoost、Gradient Boosting を扱います。
モデル評価と選択も学べますか?
はい。各 Lab で精度を計算し、最後の Notebook では Abalone を前処理して、デフォルト設定の 7 種類を 10 分割交差検証で比較します。
例を現在の scikit-learn プロジェクトへそのまま移せますか?
用意された環境では動作しますが、一部に古い import やコンストラクター形式があります。新しいローカル環境では現行 API を確認し、非推奨の名前や引数を調整してください。





