Python 3 エンジニア認定データ分析試験の学習を進める中で、出てくる用語や考え方が複雑になってきたため、ここで一度「機械学習の全体像」を整理しておきます。
この記事では、機械学習とは何か?から始まり、モデル、タスク、評価指標、ハイパーパラメータまでを一気に俯瞰します。
① 機械学習とscikit-learnとは?
● 機械学習とは?
データからパターンや規則を学習して、分類や予測を自動で行う仕組みです。
主に以下のような問題を解くために使われます:
- メールがスパムかどうかを判定する(分類)
- 商品の売上を予測する(回帰)
- 顧客を似たグループに分ける(クラスタリング)
● scikit-learnとは?
Pythonで最もよく使われる機械学習ライブラリのひとつです。
特徴:
- 少ないコードでモデルの構築・評価が可能
- 分類、回帰、クラスタリング、次元削減すべてに対応
- 評価指標や前処理もまとめて扱える
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
② モデルとは?
● モデルの定義
モデルとは、「データの中の法則やパターンを学習し、分類や予測を行うための仕組み」です。
● モデルとタスクの違い
| 項目 | 意味 | 例えるなら |
|---|---|---|
| タスク | 「何をしたいか?」(目的) | ゴール・目的地 |
| モデル | 「どうやって解くか?」(手段) | 道具・乗り物・戦略 |
● よく使われる代表的なモデル一覧
| モデル名 | 主な用途 | 学習タイプ | scikit-learnのクラス名例 |
|---|---|---|---|
| サポートベクタマシン | 分類/回帰 | 教師あり |
SVC, SVR
|
| 決定木 | 分類/回帰 | 教師あり |
DecisionTreeClassifier, DecisionTreeRegressor
|
| ランダムフォレスト | 分類/回帰 | 教師あり |
RandomForestClassifier, RandomForestRegressor
|
| 線形回帰 | 回帰 | 教師あり | LinearRegression |
| ロジスティック回帰 | 2値分類 | 教師あり | LogisticRegression |
| 主成分分析(PCA) | 次元削減 | 教師なし | PCA |
| k-means | クラスタリング | 教師なし | KMeans |
| 階層的クラスタリング | クラスタリング | 教師なし | AgglomerativeClustering |
③ タスクとは?
タスクとは、「モデルを使って何をしたいのか?」という目的そのものです。
大きく教師あり学習と教師なし学習に分かれます。
③-1 教師あり学習(Supervised Learning)
正解ラベルありのデータを使って学習するタイプです。
■ 分類(Classification)
- データをカテゴリに分類する
- 例:メールがスパムかどうかを判定
| 種類 | 例 |
|---|---|
| 2値分類 | YES/NO、正/負 など |
| 多クラス分類 | 数字認識(0〜9)、品種分類など |
主なモデル:
SVCDecisionTreeClassifierRandomForestClassifierLogisticRegression
■ 回帰(Regression)
- 数値(連続値)を予測する
- 例:売上や温度の予測
主なモデル:
LinearRegressionSVRRandomForestRegressorDecisionTreeRegressor
③-2 教師なし学習(Unsupervised Learning)
正解ラベルなしのデータを学習するタイプです。
■ クラスタリング(Clustering)
- 似たもの同士を自動でグループ分け
- 例:顧客タイプを分類する
主なモデル:
KMeansAgglomerativeClustering
■ 次元削減(Dimensionality Reduction)
- 特徴量の数を減らして扱いやすくする
- 例:データを2次元に圧縮して可視化
主なモデル:
-
PCA(主成分分析)
④ 評価指標(モデルの性能を測るもの)
モデルがどれだけうまく機能しているかを測るための基準です。
分類モデルの評価指標
- 正解率(Accuracy)
- 適合率(Precision)
- 再現率(Recall)
- F値(F1-score)
- ROC曲線・AUCスコア
- 混合行列(Confusion Matrix)
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
回帰モデルの評価指標
- 平均二乗誤差(MSE)
- 平均絶対誤差(MAE)
- 決定係数(R²)
from sklearn.metrics import mean_squared_error, r2_score
クラスタリングの評価指標
- シルエットスコア(クラスタのまとまり具合)
- エルボー法(適切なクラスタ数の確認)
⑤ ハイパーパラメータ(事前に決める設定値)
ハイパーパラメータとは、モデル学習の前に手動で設定する必要のあるパラメータです。
● 例
| モデル | ハイパーパラメータの例 |
|---|---|
| 決定木 |
max_depth, min_samples_split
|
| SVM |
C, kernel
|
| ランダムフォレスト |
n_estimators, max_features
|
| k-means | n_clusters |
| PCA |
n_components(主成分数) |
● ハイパーパラメータの調整方法
- グリッドサーチ(
GridSearchCV) - 交差検証(
StratifiedKFoldなど)
from sklearn.model_selection import GridSearchCV
おわりに
これまでの記事で主要なモデル(SVM、決定木、ランダムフォレスト、線形回帰、PCA、クラスタリングなど)の使い方や特徴についてはある程度掘り下げてきたため、本記事では機械学習の全体像を再整理することに重点を置きました。
モデル・タスク・評価・ハイパーパラメータといった要素を構造的に整理することで、学習内容がより定着しやすくなると感じています。
今後は必要に応じて補足や横断的な整理(比較・活用例など)を中心に扱っていければと思います。