【Pythonコラム】Pythonで機械学習を始めるなら:scikit-learn入門




Pythonで機械学習を始めるなら:scikit-learn入門

「機械学習」という言葉を聞くと、なんだか難しそう…と感じるかもしれません。でも大丈夫!Pythonのscikit-learn(サイキット・ラーン)を使えば、初心者でも簡単に機械学習の世界に足を踏み入れることができます。

scikit-learnは、Pythonで書かれたオープンソースの機械学習ライブラリです。分類、回帰、クラスタリング、次元削減など、様々な機械学習のタスクをこなすためのツールが豊富に揃っています。しかも、使いやすいように設計されているので、専門的な知識がなくても、基本的な操作をすぐに習得できます。

なぜscikit-learnが初心者におすすめなの?

  • シンプルなAPI: 関数名や引数が直感的で、コードが読みやすく、理解しやすいです。
  • 豊富なドキュメント: 公式ドキュメントが非常に充実しており、各アルゴリズムの使い方やパラメータの意味が丁寧に解説されています。
  • 活発なコミュニティ: 世界中で多くのユーザーが利用しており、質問や問題解決のための情報が豊富に公開されています。
  • 様々なアルゴリズムを網羅: 機械学習の基本的なアルゴリズムから、比較的新しいアルゴリズムまで、幅広い選択肢を提供しています。
  • データの前処理もサポート: データの標準化や正規化など、機械学習モデルの精度を向上させるための前処理機能も充実しています。

scikit-learnでできること

scikit-learnは、主に以下のタスクで使用されます。

  • 分類: データがどのカテゴリーに属するかを予測します。(例:メールがスパムか否か、画像に何が写っているか)
  • 回帰: 連続的な数値を予測します。(例:住宅価格の予測、株価の予測)
  • クラスタリング: データを類似性に基づいてグループ分けします。(例:顧客のセグメンテーション、文書のカテゴリ分け)
  • 次元削減: データの重要な特徴を維持しつつ、データ量を削減します。(例:特徴量の選択、データの可視化)
  • モデル選択: 最適なモデルとそのパラメータを自動的に選択します。(例:グリッドサーチ、交差検証)

簡単な例:アヤメの分類

scikit-learnを使って、アヤメの種類(setosa, versicolor, virginica)を分類する簡単な例を見てみましょう。

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 1. データの準備:scikit-learnに内蔵されたアヤメのデータセットを読み込む
iris = datasets.load_iris()
X = iris.data  # 特徴量(ガクの長さ、ガクの幅、花弁の長さ、花弁の幅)
y = iris.target  # ターゲット(アヤメの種類:0=setosa, 1=versicolor, 2=virginica)

# 2. データの分割:訓練データとテストデータに分割する(7:3の割合)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 3. モデルの選択:K近傍法(K-Nearest Neighbors)を選択する
knn = KNeighborsClassifier(n_neighbors=3)  # 近傍の数(k)を3に設定

# 4. モデルの学習:訓練データを使ってモデルを学習させる
knn.fit(X_train, y_train)

# 5. モデルの評価:テストデータを使ってモデルの性能を評価する
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)

print(f"正解率:{accuracy}")

このコードでは、まずdatasets.load_iris()でアヤメのデータセットを読み込みます。次に、train_test_split関数でデータを訓練用とテスト用に分割します。KNeighborsClassifierは、分類アルゴリズムの一つで、新しいデータがどのグループに属するかを、最も近いK個のデータポイントに基づいて予測します。knn.fit()で訓練データを使ってモデルを学習させ、knn.predict()でテストデータの種類を予測します。最後に、accuracy_scoreで予測の正解率を計算し、結果を表示します。

さあ、scikit-learnを始めよう!

scikit-learnは、Pythonで機械学習を始めるための強力なツールです。このコラムで紹介したように、シンプルなAPIと豊富なドキュメントのおかげで、初心者でも比較的簡単に学習できます。

まずは、pip install scikit-learnでライブラリをインストールし、公式ドキュメントやチュートリアルを参考に、色々なアルゴリズムを試してみてください。きっと、機械学習の面白さに気づくはずです!



サンプルコードを見る


< Pandas
コラム一覧に戻る
seaborn >

レッスン概要

◯月額4,000円で質問し放題!!
◯完全オンライン
◯翌日までには必ず返信
◯挫折しない独自の学習メソッド
◯圧倒的高評価!!
◯テキストベースで時間を選ばない
◯高品質なサンプルコード
詳細はこちら
興味がある方はまず質問だけでもどうぞ!