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
でライブラリをインストールし、公式ドキュメントやチュートリアルを参考に、色々なアルゴリズムを試してみてください。きっと、機械学習の面白さに気づくはずです!
コラム一覧
◯for文
◯関数
◯配列
◯文字列
◯正規表現
◯ファイル入出力
◯openpyxl
◯Numpy
◯Matplotlib
◯Pandas
◯scikit-learn
◯seaborn
◯beautifulsoup
◯tkinter
◯OpenCV
◯pygame
◯メイン関数
◯自作ライブラリ
◯画像処理
◯機械学習
◯スクレイピング
◯データ分析
◯グラフ作成
◯API
◯可読性
◯デバッグ
◯例外処理
◯コメント
◯組み込み関数
◯flask
◯学び方
◯ビット演算
◯マルチスレッドプログラミング
◯参照渡し
◯pyenv
◯エディタ
◯生成AI
◯画像認識
◯Streamlit
◯lambda式
◯物理演算シミュレーション
◯命名規則
◯遺伝的アルゴリズム
◯関数型プログラミング
◯オブジェクト指向
◯ツリー図