はじめに
「機械学習をやってみたいけど、どこから始めればいいの?」という方に向けて、Pythonで機械学習を始める最初の一歩となるのがこの回です。
本記事では、Pythonの機械学習ライブラリ「scikit-learn(sklearn)」の特徴や位置づけ、機械学習モデルの作成・評価の流れについて、実際のコードや図を交えながらわかりやすく紹介します。
scikit-learnとは?
特徴
- Pythonで最も広く使われている機械学習ライブラリのひとつ
- 教師あり学習(分類・回帰)、教師なし学習(クラスタリング・次元削減)をサポート
- データの前処理、モデル構築、学習、予測、評価まで一貫して行える
なぜscikit-learn?
- APIが統一されていて覚えやすい(fit → predict → score の流れ)
- ドキュメント・チュートリアルが豊富
- 小規模〜中規模の学習には十分なパフォーマンス
機械学習の全体像(基本ステップ)
scikit-learnを使った機械学習の基本的な流れは以下の通りです。
- データ準備
- CSVやライブラリ内蔵のデータセットを読み込む
- 前処理
- 欠損値処理、特徴量スケーリング、カテゴリ変換など
- モデル選択
- ロジスティック回帰、KNN、決定木などから選ぶ
- モデル学習(fit)
- 訓練データを使って学習させる
- 予測(predict)
- テストデータに対する出力を得る
- 評価(scoreなど)
- 精度、F1スコア、混同行列などで性能を評価する
コードで確認:最小のscikit-learn
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 1. データの読み込み
iris = load_iris()
X, y = iris.data, iris.target
# 2. 訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 3. モデルの定義と学習
model = KNeighborsClassifier()
model.fit(X_train, y_train)
# 4. 予測と評価
accuracy = model.score(X_test, y_test)
print("精度:", accuracy)たったこれだけで、機械学習モデルの学習と評価ができます。
よく使う主な機能一覧
| カテゴリ | クラス名例 |
|---|---|
| 分類 | LogisticRegression, KNeighborsClassifier, RandomForestClassifier |
| 回帰 | LinearRegression, Ridge, Lasso |
| 前処理 | StandardScaler, MinMaxScaler, LabelEncoder |
| 評価指標 | accuracy_score, f1_score, confusion_matrix |
| モデル選択 | train_test_split, GridSearchCV |
おわりに
scikit-learnは機械学習の標準的な流れを短いコードで表現できる非常に優れたライブラリです。
次回は「データセットの読み込みと基本操作」をテーマに、sklearnが提供する有名なサンプルデータや、pandasと組み合わせたデータの扱い方について解説します。
練習問題
Q1. scikit-learnで分類モデルを作るときの基本ステップを順番に並べ替えてください:
- A. fitによる学習
- B. データの準備
- C. 評価指標による性能評価
- D. predictによる予測
- E. モデル選択
正しい順番は?(例:B → E → A → D → C)
Q2. 次のうち、scikit-learnで回帰モデルを表すクラスはどれ?(複数選択)
- ①
LogisticRegression - ②
LinearRegression - ③
KNeighborsRegressor - ④
DecisionTreeClassifier
Q3. model.fit(X_train, y_train) の目的は何ですか?
(選択肢)
- A. モデルの精度を評価する
- B. 訓練データでモデルを学習させる
- C. テストデータで予測する
🔗 機械学習シリーズ 関連リンク
▶ 入門〜分類編
- 【入門】scikit-learnとは?機械学習の全体像と学習の流れ
- 【準備】sklearnのインストールとデータセットの扱い方
- 【分類①】K近傍法(KNN)を使ってシンプルな分類をしてみよう
- 【分類②】ロジスティック回帰でスパム判定をしてみよう
- 【分類③】決定木・ランダムフォレストの特徴と可視化方法
- 【分類④】混同行列・精度・再現率・F1スコアの正しい使い方
- 【モデル比較】SVM・決定木・ランダムフォレストの精度と解釈性の違い

コメント