機械学習を始めたいと思ったとき、多くの人が最初に出会うのが「scikit-learn」です。Pythonで使えるこのライブラリは、シンプルなコードで機械学習モデルを試せる強力なツールです。この記事では、初心者向けにscikit-learnの基礎から使い方までをやさしく解説します。
scikit-learnとは?
scikit-learn(サイキットラーン)は、Pythonで機械学習を実装するための代表的なライブラリです。分類、回帰、クラスタリングといった多様なアルゴリズムが揃っており、データの前処理や評価まで一貫して行えます。さらに、コードの記述が統一されているため、初心者でも使いやすい設計になっています。データ分析やAIの入門に最適なライブラリといえるでしょう。
scikit-learnを始める準備
インストール方法
scikit-learnはpipで簡単にインストール可能です。すでにNumPyやPandasを利用している環境なら、次のコマンドを実行するだけで導入できます。
pip install scikit-learn
基本のインポート
利用する際は以下のようにインポートします。モデルによって異なるクラスを呼び出す仕組みです。
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
このように、目的に応じて必要なモジュールだけを読み込むのが一般的です。
scikit-learnでできること
scikit-learnには大きく分けて3つの主要な用途があります。
分類(classification)
データをカテゴリーに分類するタスクです。例えば、メールを「スパム」か「通常」かに仕分けるときに使えます。代表的なアルゴリズムにはロジスティック回帰や決定木があります。
回帰(regression)
数値を予測するタスクです。例えば、家賃や株価の予測に応用されます。線形回帰やランダムフォレスト回帰などがよく使われます。
クラスタリング(clustering)
教師データなしでグループ分けをする手法です。顧客を購買傾向で自動的にグループ化するなど、マーケティング分野で活用されています。
実際に使ってみよう:線形回帰モデル
ここでは、簡単な線形回帰を例にしてscikit-learnの流れを体験してみましょう。
# データの準備
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 3, 2, 3, 5])
# 学習用とテスト用に分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# モデルの学習
model = LinearRegression()
model.fit(X_train, y_train)
# 予測
pred = model.predict(X_test)
print(pred)
このように、学習(fit)と予測(predict)の流れが共通しているため、アルゴリズムを切り替えて試すのも簡単です。
データの前処理と評価
標準化(Standardization)
scikit-learnでは「StandardScaler」を使うと、データを平均0、分散1に正規化できます。特にSVMやニューラルネットワークを使う際には欠かせません。
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
モデルの評価
学習したモデルの性能を確認することも重要です。回帰なら決定係数(R²)、分類なら正解率(accuracy_score)などの指標を使います。
from sklearn.metrics import r2_score
print(r2_score(y_test, pred))
応用テクニック
パイプライン(Pipeline)の活用
scikit-learnでは「Pipeline」を使うことで、前処理からモデル学習までを一括で実行できます。これによりコードが整理され、再利用性も高まります。
from sklearn.pipeline import Pipeline
pipeline = Pipeline([
('scaler', StandardScaler()),
('model', LinearRegression())
])
pipeline.fit(X_train, y_train)
グリッドサーチによるハイパーパラメータ調整
モデルの性能を高めたいときには「GridSearchCV」が役立ちます。候補のパラメータを指定して最適解を自動で探索してくれます。
from sklearn.model_selection import GridSearchCV
params = {'fit_intercept':[True, False]}
grid = GridSearchCV(LinearRegression(), params)
grid.fit(X_train, y_train)
print(grid.best_params_)
よくあるエラーと注意点
初心者がつまずきやすいのは「データの形状」に関するエラーです。NumPy配列を扱うときは、1次元か2次元かによってエラーが出ることがあります。また、train_test_splitの引数「test_size」を0〜1の範囲で指定しないとエラーになります。さらに、最新バージョンで非推奨になった関数もあるため、公式ドキュメントを確認しながら進めるのがおすすめです。
Python初心者におすすめのサービス
「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、
テックアカデミーがおすすめです。
AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。
さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。
また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。
書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。
また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。
こちらのリンクから詳細をチェックしてみてください。
まとめ
scikit-learnはPythonで機械学習を学ぶうえで最適なライブラリです。基本的な流れを理解すれば、分類や回帰などさまざまなタスクに応用できます。小さなデータから試して、自分の分析やサービスに活用してみましょう。
以下のリンクから、
SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。
SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

コメント