Contents
環境構築と IDE 設定
Python データサイエンスの学習を始めるにあたって、まずは「実行環境」と「開発ツール」を整える必要があります。ここでは Anaconda と標準ライブラリだけで作れる venv の 2 通りのパターンを比較しつつ、VS Code と Jupyter Notebook を組み合わせた実践的なセットアップ手順を解説します。
Anaconda と venv の違いとインストール手順
Anaconda は科学計算向けに最適化された Python ディストリビューションで、パッケージ管理から環境作成まで一括で行える点が魅力です。一方、venv は標準ライブラリだけで仮想環境を構築できる軽量な手法です。どちらも 依存関係の衝突を防ぎ、プロジェクトごとに必要なパッケージだけをインストール できる点は共通していますが、以下のような違いがあります。
| 項目 | Anaconda | venv |
|---|---|---|
| インストーラサイズ | 約 500 MB(GUI と多数の科学計算パッケージ同梱) | 数 MB(Python 本体のみ) |
| パッケージ管理 | conda (バイナリ配布が中心) |
pip(PyPI が唯一のソース) |
| 環境作成コマンド | conda create -n <env> python=3.11 … |
python -m venv <dir> |
| GPU / C ライブラリ対応 | 事前にビルド済みパッケージが多く、設定が楽 | ソースからビルドする必要があることも |
1️⃣ Anaconda のインストールと環境作成
- 公式サイト(https://www.anaconda.com/products/distribution)から「Python 3.11」版のインストーラをダウンロードし、画面の指示に従ってインストールします。
- インストール完了後、ターミナル(Windows は Anaconda Prompt)で以下を実行して新しい環境を作ります。
|
1 2 3 4 5 6 7 |
# 環境名は ds_env としていますが、好きな名前で構いません conda create -n ds_env python=3.11 \ numpy pandas matplotlib seaborn scikit-learn jupyterlab -y # 作成した環境を有効化 conda activate ds_env |
ポイント:
-yオプションで確認メッセージを省略し、インストール時間を短縮できます。
2️⃣ venv のインストールと環境作成
Python 本体が既にインストールされている前提です。以下の手順で仮想環境を構築し、必要なパッケージを pip でインストールします。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# 仮想環境 ds_env を作成(任意のディレクトリで実行) python -m venv ds_env # 環境の有効化(OS によってコマンドが異なります) # macOS / Linux source ds_env/bin/activate # Windows (PowerShell) .\ds_env\Scripts\Activate.ps1 # Windows (cmd) ds_env\Scripts\activate.bat # 必要パッケージを一括インストール pip install --upgrade pip pip install numpy pandas matplotlib seaborn scikit-learn jupyterlab |
ポイント:
pip list --format=freeze > requirements.txtで依存関係を書き出すと、他のマシンへ環境を再現しやすくなります。
VS Code と Jupyter Notebook のセットアップ
VS Code は軽量ながら拡張性が高く、Python 拡張と Jupyter 拡張さえ入れればノートブック形式での実行・デバッグが可能です。
- VS Code を公式サイト(https://code.visualstudio.com/)からダウンロードしインストール。
- 左側の「拡張機能」パネルで Python と Jupyter を検索してインストールします。
-
画面左下に表示される Python バージョンをクリックし、先ほど作成した仮想環境(
ds_env)を選択。 -
Anaconda 環境の場合は
conda env listで確認できる名前が一覧に出ます。 -
venv の場合は
.venvディレクトリやds_envフォルダが自動検出されます。 -
新規ファイル → 「Jupyter Notebook」 を選ぶと、
.ipynbが作成され、セル単位でコードを実行できるようになります。
ポイント:VS Code のターミナルは仮想環境が自動的に有効化された状態で起動するので、
conda activateやsource …/activateを手入力する必要がありません。
Python 基礎文法とデータサイエンス向け基本操作
Python の構文を正しく理解すれば、pandas・scikit-learn といった高度なライブラリも自然に扱えるようになります。このセクションでは リスト・辞書・関数・ループ を中心に、データサイエンスで頻出するテクニックを実例とともに紹介します。
リスト・辞書・関数・ループの基礎
以下は「データ前処理」や「特徴量生成」でよく使われる基本構文です。コード中のコメントは実行結果のイメージですので、参考にしてください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# 必要なライブラリを先頭でインポート(忘れがちなので必ず書きましょう) import pandas as pd # ------------------------------------------------- # 1. リストとリスト内包表記 numbers = [1, 2, 3, 4, 5] squared = [x**2 for x in numbers] # => [1, 4, 9, 16, 25] # ------------------------------------------------- # 2. 辞書によるカテゴリ変換(キーは文字列、値は整数) sex_map = {'male': 0, 'female': 1} df['sex'] = df['sex'].map(sex_map) # 列名はすべて小文字で統一 # ------------------------------------------------- # 3. 関数定義とループ例 def greet(name: str) -> str: """名前を受け取って挨拶文を返すシンプル関数""" return f"Hello, {name}!" for i in range(3): print(greet(f'User{i+1}')) |
ポイント:DataFrame の列名はプロジェクト全体で統一(例:
sex、age)すると、キーエラーのリスクが減ります。
標準入出力と簡易デバッグ方法
print() や logging を活用すれば、変数の状態を手軽に確認できます。Jupyter Notebook ではセルごとの出力が自動的に表示されるため、インタラクティブなデバッグが可能です。
|
1 2 3 4 5 6 7 8 9 10 |
# 標準出力例(先頭 5 行だけ表示) print(df.head()) # 簡易デバッグ関数:変数名・型・中身を同時に出力 def debug(var, name='var'): print(f'{name}: type={type(var)}') print(var) debug(squared, 'squared') # リストの内容と型が確認できる |
NumPy と pandas を使ったデータ処理
大量の数値計算は NumPy が高速に、表形式データの操作は pandas が得意です。ここでは配列生成・ベクトル演算と、DataFrame の基本的な前処理手順を実践します。
NumPy 配列の作成と基本演算
NumPy のインポート忘れが起きやすいので、コードブロック冒頭に必ず import numpy as np を記述してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 |
import numpy as np # 1 次元配列(ベクトル)とスカラー演算 a = np.arange(5) # => [0 1 2 3 4] b = a * 2 # 要素ごとの乗算 → [0 2 4 6 8] # 2 次元配列(行列)と転置操作 mat = np.array([[1, 2], [3, 4], [5, 6]]) # 3×2 行列 mat_T = mat.T # 2×3 に転置 |
pandas DataFrame の読み込み・集計・欠損値処理
pandas を使用する際は必ず import pandas as pd を書き、列名の大小文字を統一しておくとエラーが防げます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import pandas as pd # CSV 読み込み(例: titanic.csv が作業ディレクトリにある前提) df = pd.read_csv('titanic.csv') # 基本情報の取得 print(df.head()) print(df.describe(include='all')) # 欠損値の確認と簡易補完 missing = df.isnull().sum() print("欠損数:\n", missing) # 年齢(Age)の欠損を中央値で埋める例 df['age'].fillna(df['age'].median(), inplace=True) # カテゴリ列のダミー変換(embarked を 0/1 のフラグに) df = pd.get_dummies(df, columns=['embarked'], drop_first=True) |
ポイント:
read_csvのdtype引数で文字列列を明示的に指定すると、予期せぬ型変換エラーを回避できます。
matplotlib / seaborn によるデータ可視化
可視化はデータの分布や相関関係を直感的に把握するための必須スキルです。ここでは matplotlib のベーシックな設定と、seaborn が提供する美しいテンプレートを組み合わせた描画例を示します。
ヒストグラムと散布図の描画
以下のコードはすべて import matplotlib.pyplot as plt と import seaborn as sns を冒頭に書くことで、実行エラーを防ぎます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import matplotlib.pyplot as plt import seaborn as sns # ヒストグラム(年齢分布)+カーネル密度推定 plt.figure(figsize=(6, 4)) sns.histplot(data=df, x='age', bins=30, kde=True, color='steelblue') plt.title('Age Distribution') plt.xlabel('Age') plt.ylabel('Count') plt.tight_layout() plt.show() # 散布図(Fare と Age の関係)+生存フラグで色分け plt.figure(figsize=(6, 4)) sns.scatterplot(data=df, x='age', y='fare', hue='survived', palette='Set1') plt.title('Fare vs Age by Survival') plt.tight_layout() plt.show() |
箱ひげ図とペアプロットで多変量を可視化
箱ひげ図は外れ値の有無や四分位範囲を、一目で把握できる便利なチャートです。ペアプロットは数値特徴量同士の相関を網羅的に確認できます。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 箱ひげ図(クラス別 Fare の比較) plt.figure(figsize=(6, 4)) sns.boxplot(data=df, x='pclass', y='fare') plt.title('Fare by Passenger Class') plt.tight_layout() plt.show() # ペアプロット(Age・Fare・Survived の関係性を可視化) sns.pairplot(df[['age', 'fare', 'survived']], hue='survived', plot_kws={'alpha':0.6}) plt.suptitle('Pairwise Relationships', y=1.02) plt.show() |
scikit-learn で始める機械学習モデル構築と評価
本章では 線形回帰 と ロジスティック回帰 を題材に、データ分割・学習・予測・評価までのフローを実装します。評価指標はそれぞれ回帰・分類タスクに適したものを選びました。
線形回帰モデルの作成と評価指標
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score # 説明変数は age と pclass(すでに数値化済み)※列名は小文字統一 X = df[['age', 'pclass']] y = df['fare'] # データ分割(ランダムシード固定で再現性確保) X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42) model_lr = LinearRegression() model_lr.fit(X_train, y_train) pred = model_lr.predict(X_test) print('MSE:', mean_squared_error(y_test, pred)) print('R² :', r2_score(y_test, pred)) |
ポイント:回帰問題では
mean_absolute_errorも併せて見ると、外れ値の影響度が分かりやすくなります。
ロジスティック回帰による分類と混同行列
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score, confusion_matrix, classification_report # 説明変数にカテゴリ情報を追加(one‑hot 化済みの列は除外) features = ['sex', 'age', 'fare', 'pclass'] X = df[features] y = df['survived'] X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=42) clf = LogisticRegression(max_iter=300) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print('Accuracy:', accuracy_score(y_test, y_pred)) print('Confusion Matrix:\n', confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred, digits=3)) |
ポイント:
classification_reportのdigits引数で小数点以下桁数を調整すると、レポートが見やすくなります。
実践チュートリアル:Titanic データで学ぶ分析フロー全体と GitHub 公開手順
実際のデータセットを使って 取得 → 前処理 → 可視化 → モデル構築 → バージョン管理 の一連の流れを体験します。最後に GitHub へコードをプッシュし、他者と共有できる形に仕上げます。
データ取得から前処理・可視化・モデル構築までの全工程
以下は Jupyter Notebook のセルごとに区切ったサンプルです。すべて import 文が先頭にあるので、実行エラーは起きません。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# ------------------------------------------------- # 1️⃣ データ取得(seaborn が提供する Titanic データセット) import seaborn as sns import pandas as pd df = sns.load_dataset('titanic') # ------------------------------------------------- # 2️⃣ 前処理:欠損値補完・カテゴリ変換 df['age'].fillna(df['age'].median(), inplace=True) df['embarked'].fillna(df['embarked'].mode()[0], inplace=True) sex_map = {'male': 0, 'female': 1} df['sex'] = df['sex'].map(sex_map) # 列名は小文字で統一 # ダミー変数化(必要なカテゴリだけ抽出) df = pd.get_dummies(df, columns=['embark_town', 'class', 'who', 'adult_male'], drop_first=True) # ------------------------------------------------- # 3️⃣ 可視化:年齢分布と生存率の関係 import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(6,4)) sns.histplot(data=df, x='age', hue='survived', bins=30, kde=True, palette='muted') plt.title('Survival by Age') plt.tight_layout() plt.show() # ------------------------------------------------- # 4️⃣ ロジスティック回帰モデル構築 from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score features = ['sex', 'age', 'fare', 'pclass'] X = df[features] y = df['survived'] X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, stratify=y, random_state=1) model = LogisticRegression(max_iter=300) model.fit(X_train, y_train) pred = model.predict(X_test) print('Accuracy:', accuracy_score(y_test, pred)) |
コードの保存方法と GitHub へのプッシュ手順
1️⃣ ローカルリポジトリの作成
ターミナルでプロジェクトディレクトリに移動し、以下を実行します。
|
1 2 3 4 |
git init # リポジトリ初期化 git add . # 作業ファイル全部をステージング git commit -m "Initial commit: Titanic tutorial notebook" |
2️⃣ GitHub に新規リポジトリ作成
GitHub の UI で 「New repository」 をクリックし、次の情報を入力します。
| 項目 | 設定例 |
|---|---|
| Repository name | titanic-tutorial |
| Description | 「Titanic データ分析チュートリアル(Python)」「Anaconda 環境構築手順付き」 |
| Public / Private | 任意(学習目的なら Public が便利) |
| Initialize with README | チェックしない(ローカルの README を使う) |
3️⃣ リモートリポジトリを紐付けてプッシュ
|
1 2 3 4 5 |
# <username> はご自身の GitHub アカウント名に置き換えてください git remote add origin https://github.com/<username>/titanic-tutorial.git git branch -M main # デフォルトブランチを main に変更 git push -u origin main # 初回プッシュ(認証が求められます) |
実例 URL:
https://github.com/yourusername/titanic-tutorial.git(yourusernameを自分のユーザー名に置き換えてください)
4️⃣ README の作成例(Markdown)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# Titanic データサイエンスチュートリアル ## 概要 - Python 3.11 + pandas / NumPy / seaborn / scikit-learn - Jupyter Notebook にすべてのコードを掲載 - Anaconda 環境構築手順、前処理・可視化・モデル構築まで一貫したフロー ## 使い方 ```bash # conda 環境の作成(environment.yml がある場合) conda env create -f environment.yml conda activate ds_env # Jupyter Lab の起動 jupyter lab |
ライセンス
MIT License
`
まとめ
- 環境構築は Anaconda と venv のどちらでも実現可能ですが、パッケージのバイナリ互換性が必要なときは Anaconda が便利です。手順を本文に示した通りに進めれば、数分で作業用仮想環境が完成します。
- VS Code + Jupyter の組み合わせは軽量かつ高機能で、セル単位の実行やデバッグが容易です。拡張機能だけ入れればすぐに使えます。
- Python 基礎文法(リスト・辞書・関数・ループ)をマスターすると、pandas の
applyや scikit-learn のパイプライン構築が自然に思えるようになります。 - NumPy と pandasで高速計算と欠損値処理を行い、matplotlib / seabornでデータの分布や相関を可視化すれば、分析の方向性が明確になります。
- scikit-learn を使った線形回帰・ロジスティック回帰は、機械学習入門として最適です。MSE・R²・accuracy・混同行列といった指標でモデル性能を客観的に評価できます。
- 実践チュートリアルでは Titanic データセットを通じて「データ取得 → 前処理 → 可視化 → モデル構築 → バージョン管理」のフロー全体を体験し、GitHub へコードを公開するまでの手順も網羅しました。
この一連の流れを自分の PC 上で再現すれば、実務でも通用する データサイエンス基礎スキル が身につきます。次は好きなデータセット(Kaggle や UCI など)に挑戦し、モデル改善やハイパーパラメータチューニングへステップアップしてみてください。