ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
結論: 推奨手順
# 1. Python 確認 (3.9 以上が望ましい)
python3 --version
# 2. 仮想環境作成
python3 -m venv .venv
source .venv/bin/activate
# 3. pip 最新化
python -m pip install --upgrade pip
# 4. scikit-learn インストール
pip install scikit-learn
# 5. 確認
python -c "import sklearn; print(sklearn.__version__)"
# → 1.5.0 など
なぜ venv (仮想環境) が必要か
Linux のシステム Python は OS や他ツールが使っているため、グローバルに pip install するとシステム破壊や依存衝突を起こします。Ubuntu 23.04+ ではそもそも pip install が externally-managed-environment エラーで弾かれます。
# ❌ システム Python 直 (Ubuntu 23.04+ では弾かれる)
pip install scikit-learn
# error: externally-managed-environment
# ✅ 必ず venv
python3 -m venv ~/.venvs/ml
source ~/.venvs/ml/bin/activate
pip install scikit-learn
# ✅ または pipx (CLI ツール用)
pipx install scikit-learn
ディストリビューション別の準備
Ubuntu / Debian
# Python と venv モジュール
sudo apt update
sudo apt install -y python3 python3-venv python3-pip
# BLAS / LAPACK は wheel 同梱なので追加不要
# ソースビルドする場合のみ
sudo apt install -y python3-dev build-essential libopenblas-dev liblapack-dev
# venv + scikit-learn
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install scikit-learn pandas matplotlib jupyterlab
RHEL / CentOS / Rocky Linux
sudo dnf install -y python3 python3-pip python3-virtualenv
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install scikit-learn
Alpine Linux
# Alpine は musl libc のため、wheel が無い場合はビルドが走る
apk add python3 py3-pip py3-virtualenv
apk add gcc g++ musl-dev linux-headers openblas-dev lapack-dev
python3 -m venv /opt/venv
source /opt/venv/bin/activate
pip install --upgrade pip
pip install scikit-learn # 数分〜10分のビルドが入る場合あり
Conda 経由 (Anaconda / Miniconda / Mamba)
データサイエンス用途では Conda が最も簡単です。BLAS / LAPACK を Conda が同梱の最適化版で配布するため、計算も速くなりやすいです。
# Miniconda インストール (Linux x86_64)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
# 環境作成
conda create -n ml python=3.11
conda activate ml
# インストール (conda-forge 推奨)
conda install -c conda-forge scikit-learn pandas matplotlib jupyterlab
# 確認
python -c "import sklearn; print(sklearn.__version__)"
依存パッケージ
| パッケージ | 役割 | 備考 |
|---|---|---|
numpy | 多次元配列 | 必須 |
scipy | 科学計算 | 必須 |
joblib | 並列処理 / モデル永続化 | 必須 |
threadpoolctl | BLAS スレッド制御 | 必須 |
pandas | DataFrame | ★ 実務ではほぼ必須 |
matplotlib | 可視化 | 推奨 |
seaborn | 統計可視化 | 任意 |
jupyterlab | ノートブック | 強く推奨 |
pip install scikit-learn pandas matplotlib seaborn jupyterlab
ARM64 (Raspberry Pi / Apple Silicon Linux VM)
scikit-learn は ARM64 用の wheel を PyPI に公開しているため、Pi 4 / Pi 5 / Ampere / Apple Silicon の Linux VM でも特別な作業なくインストールできます。古い Pi (armv7) のみソースビルドが走ります。
# Raspberry Pi 64-bit OS
sudo apt install -y python3-venv python3-pip
python3 -m venv ~/.venvs/ml
source ~/.venvs/ml/bin/activate
pip install --upgrade pip
pip install scikit-learn
# 32-bit Pi (armv7) でビルドが重い場合
# piwheels (Pi 用 wheel ミラー) を使う
pip install --extra-index-url https://www.piwheels.org/simple scikit-learn
バージョン指定 / アップグレード
# 特定バージョン
pip install scikit-learn==1.4.2
# 範囲指定
pip install "scikit-learn>=1.3,<1.6"
# 最新化
pip install -U scikit-learn
# 開発版 (注意)
pip install --pre scikit-learn
# requirements.txt で固定
echo "scikit-learn==1.5.0" >> requirements.txt
pip install -r requirements.txt
動作確認スクリプト
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=0)
clf = LogisticRegression(max_iter=200).fit(X_train, y_train)
pred = clf.predict(X_test)
print(f"accuracy = {accuracy_score(y_test, pred):.3f}")
# → accuracy = 1.000
GPU で機械学習したい場合
scikit-learn はCPU 専用で GPU 対応版はありません。GPU を活かしたい場合は別ライブラリを検討します。
| ライブラリ | GPU | scikit-learn 互換 |
|---|---|---|
| XGBoost | ★ CUDA | fit/predict 互換 |
| LightGBM | ★ CUDA (要ビルド) | fit/predict 互換 |
| NVIDIA RAPIDS cuML | ★ CUDA | scikit-learn API 模倣 |
| PyTorch / TensorFlow | ★ CUDA / ROCm | 非互換 (DL 用) |
FAQ
Q: ModuleNotFoundError: No module named 'sklearn'
A: venv をアクティベートしていない / 別の Python 環境を呼んでいる。which python; pip list | grep scikit で確認。
Q: BLAS スレッドが暴走する
A: export OMP_NUM_THREADS=4 や OPENBLAS_NUM_THREADS=4 でスレッド数を制限してください。
Q: Python 3.13 で動かない
A: 最新の scikit-learn が対応しているか PyPI の Classifier を確認。対応していなければ 3.11/3.12 を使うのが無難です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストール方法(Linux)
- 入門者向けクイックスタート
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?