実案件/ポートフォリオ

【保存版】データ職のポートフォリオ完全ガイド|再現性・評価・LTまで

ポートフォリオって「作ったものの置き場」でしょ?

いいえ。採用側が見たいのは「意思決定に効いた証拠」と「再現性」です。

本ガイドは、未経験〜初学者が週10時間×4〜6週で、テーマ選定→要件定義→データ設計→ETL/分析→評価→可視化→README→10分LT→改善まで作り切るための“実務の型”を提供します。テンプレ/チェックリスト/コード雛形はコピペOKです。

この記事で身に付くこと

  • “刺さる”ポートフォリオの設計図(評価指標まで逆算)
  • 再現性のあるリポジトリ構成とREADMEテンプレ
  • 10分LT(ライトニングトーク)台本テンプレ

採用に刺さらない“ありがちな失敗”3つ

① Notebook1枚で完結:セル順でしか再現できず、翌月には動かない。実務では再現手順と入出力の分離が必須です。

② ビジネス非接続:AUCや精度の自慢だけ。意思決定(Top-k/コスト/リソース制約)の話がないと弱いです。

③ ストーリー不在:目的→仮説→検証→打ち手の一貫性が途切れ、説得力を失います。

解決のカギ

「パイプライン(ETL)+評価設計+10分LT」の型に乗せること。以降のテンプレをそのまま使えばOKです。

レビュー100件超で見えてきた“勝ち筋”

筆者(ふみと)は大手企業でデータ/マーケティングサイエンティスト歴10年。採用側として数十人分の課題提出やポートフォリオをレビューしてきました。刺さる作品の共通点は、(1) 課題をビジネス語で語れる、(2) 再現可能なリポジトリ、(3) 10分LTが結論→根拠→打ち手で明瞭、の3つ。そこで本記事はこの要件から逆算して作っています。

ふみとメモ:実際の面接で「このスライド1枚で何を決めてもらいたい?」と聞くと、強い候補者は一呼吸で答えます。ここが腹落ちすると通過率が一段跳ねます。

“刺さるポートフォリオ”の設計図

以降は Python 3.10+ / pandas 2.x / scikit-learn 1.x / SQLite を想定します。

まず選ぶ:3つのトラック(目的別)

  • 分析/BIトラック:売上・需要・構成比の把握→営業会議向け“意思決定1枚”
  • MLトラック:離反/需要/不良予測→CV±std / Top-k / コストまで評価
  • 自動化トラックSQLite×Python毎月回るETL→Excel納品の仕組み

どれか1つを深くやるのが最短ルート。横展開は2作目でOK。

テーマ選定テンプレ(コピペOK)

【誰の意思決定?】(例:店舗Mgr/ECMgr/人事)
【何を決める?】(例:重点店舗/在庫補充/離反対策)
【評価指標】(例:MAE/PR-AUC/Recall@5%)
【データ】(例:売上/顧客/在庫/公開データ)
【粒度/期間】(例:月次×店舗×カテゴリ、直近24ヶ月)
【納品物】(例:10分LT+Excel1冊/ダッシュボード)

リポジトリ雛形(そのまま使える)

project_name/
  ├─ data/               # 入出力(raw/processedを分けると尚良)
  │   ├─ raw/
  │   └─ processed/
  ├─ src/                # 前処理・学習・評価を関数化
  │   ├─ features.py
  │   ├─ train.py
  │   ├─ evaluate.py
  │   ├─ sql/
  │   │   ├─ create_tables.sql
  │   │   └─ queries.sql
  ├─ notebooks/          # 実験用(成果はsrcへ移す)
  ├─ reports/            # 図/Excel/PDF
  ├─ requirements.txt
  └─ README.md           # 再現手順

ルール:Notebookは試作、本流は関数化してsrc/へ。データ/コード/成果物は分離しましょう。

READMEテンプレ(採用側はまずココを見る)

# プロジェクト名:上位店舗の売上トレンドと在庫打ち手提案

## 目的(1文)

店舗Mgrが翌月の重点施策を決めるために、月次売上トレンドと構成比の変化を把握する。

## データ

* sales.csv(date, store, product, qty, price)
* stores.csv(store, area, open\_date)

## 指標と評価

* KPI:売上、構成比(Top-5カテゴリ)
* MLがある場合:PR-AUC / Recall\@5%(営業リソース5%想定)

## 使い方(再現手順)

```bash
python -m venv .venv && source .venv/bin/activate  # Windowsは .venv\Scripts\activate
pip install -r requirements.txt
python src/init_db.py  # SQLite初期化(任意)
python src/run_all.py  # ETL→集計→Excel/PDF出力
```

## 成果物

* reports/report.xlsx(Summary/Pivot/Data)
* reports/fig\_trend.png(注釈入り)
* 10分LTスライド(/reports)

## 結果サマリ(3行)

1. 4〜7月のYoY -12%(来店数要因)。
2. 新商品X導入でカテゴリYの粗利率 +2.1pt。
3. 次月:在庫調整A/Bとクーポン施策案。

>>【保存版】データレポート納品の型:要件定義→ETL→検証→可視化→Excel/PDF→引き継ぎまで、失注しないワークフロー完全版

データとETL:SQLite×pandasの骨子

重い整形はSQL、仕上げはpandasが基本です。
詳細は>>【保存版】SQLite×Pythonで作る“ローカルDWH”——ETL・集計・レポート自動化の最短手順

from pathlib import Path
import sqlite3, pandas as pd
from src.features import make_monthly

DB = Path("data/warehouse/retail.sqlite")
con = sqlite3.connect(DB)
monthly = make\_monthly(con)  # WITH monthly AS (...) を内部で実行
monthly.to\_excel("reports/report.xlsx", index=False)

可視化:1枚で伝える型

  • 図1(大):月次売上折れ線+移動平均+注釈(キャンペーン/障害)
  • 図2(小):上位10店舗の横棒(1位を上)
  • 図3(小):100%積み上げ(カテゴリ構成比)

色は2〜3色+強調1色、単位/軸/凡例は明記。[内部リンク:可視化入門]

MLを入れるなら:評価設計の必須セット

  • CV(StratifiedKFold/KFold)→平均±std
  • Top-k(営業/審査の上限に合わせる)
  • 閾値(Youden/コスト最小)
  • CI(ブートストラップで95%区間)

10分LT台本テンプレ(8〜10枚)

  1. タイトル/役割/目的(30秒):誰の意思決定を支援?
  2. データと粒度(60秒):行粒度・期間・除外ルール
  3. KPI/指標(60秒):採用理由
  4. 結果1(90秒):トレンド図+注釈→結論1行
  5. 結果2(60秒):上位店舗/カテゴリ比較
  6. ML結果(90秒):CV±std、Top-k、閾値、コスト
  7. 示唆(60秒):打ち手A/B、期待インパクト
  8. 再現性(60秒):README/コマンド/DB
  9. 今後(30秒):改善計画
  10. Q&A(60秒):想定質問に先回り回答

サンプル企画(この3本なら外さない)

おすすめ3選

  • 分析/BI:「月次×店舗の売上トレンドと構成比」— Excel+1枚スライド / 折れ線・横棒・100%積み上げ
  • ML:「離反(解約)予測と営業優先リスト」— PR-AUC / Recall@5% / Permutation重要度
  • 自動化:「SQLite×Pythonで毎月回るレポート」— 増分ロード、PRAGMA/INDEX、エラーログ

レビュー観点チェックリスト

  • 目的:誰の意思決定か。KPIと接続しているか。
  • データ:粒度/期間/欠損/重複/型の扱いが明記。
  • ETL:SQL/関数化で再現可能、READMEに手順。
  • 可視化:図選択の根拠、注釈/単位/凡例、色は2〜3色+強調1色。
  • 評価:CV±std、Top-k、閾値、CIを提示。
  • 成果物:Excel/PDF/モデル/スクリプトが揃い1コマンド実行可能。
  • 発表:結論→根拠→打ち手 の順で10分以内。

採点ルーブリック(面接官視点:100点)

  • 目的/KPIの一貫性 20点
  • 再現性(README/コマンド/構成) 20点
  • 可視化の説得力(注釈/選図/配色) 15点
  • 評価設計(CV/Top-k/閾値/CI) 20点
  • ビジネス示唆(打ち手A/Bと期待効果) 15点
  • コード品質(関数化/型/最小テスト) 10点

この配点で自己採点→不足を埋めるのが最短で合格水準に届く方法です。

仕上げまで最短到達:伴走レビューという選択

独学でも完走できますが、レビューの往復があると説得力が段違い。次の2校は質問対応/レビュー/転職支援がセットで、6週間で1本仕上げるのに相性が良いです。

TechAcademy データサイエンスコース(受講料:174,600円~ ※更に割引あり)

TechAcademy 無料相談

株式会社キカガク AI人材長期育成コース(受講料:237,600円~)

キカガク 無料相談

行動計画:30日で1本仕上げる(週10時間×4週)

Week1(設計):テーマ選定→要件票→データ確保→リポジトリ雛形→requirements.txt固定
Week2(ETL/集計):SQLite初期化→取り込み→WITH monthly→検証(全体=内訳合計)
Week3(可視化/ML):1枚スライド構成→図3点→(必要なら)CV±std/Top-k/閾値/CI
Week4(仕上げ):README/再現コマンド→Excel/PDF→10分LTリハ→自己採点(ルーブリック)

  • [ ] READMEに目的/KPI/手順が明記
  • [ ] 1コマンドで成果物が出る
  • [ ] スライドは結論→根拠→打ち手
  • [ ] (ML)CV±std/Top-k/閾値/CIあり
  • [ ] 自己採点80点以上(ルーブリック)

付録A:最小テストとデータ検査(コピペ可)

import sqlite3, pandas as pd

def test\_sales\_non\_negative():
con = sqlite3.connect("data/warehouse/retail.sqlite")
df = pd.read\_sql\_query("SELECT qty, price FROM sales", con)
assert (df.qty >= 0).all() and (df.price >= 0).all()

付録B:Issue/PRテンプレ

### 目的
### 変更点(Before/After)
### 影響範囲
### 再現手順

付録C:よくある質問(FAQ)

Q. 公開できるデータがない / A. 公開データ/合成データでOK。粒度/指標/意思決定の設計が本質。
Q. 何本作るべき? / A. 1本を深く(評価と再現性まで)。余力があれば2本目で別トラック。
Q. Kaggleだけで良い? / A. 学習には◎。ただし再現性/意思決定接続/10分LTを自作で補う。

次に読むべき記事

データレポート納品
【保存版】データレポート納品の型:要件定義→ETL→検証→可視化→Excel/PDF→引き継ぎまで、失注しないワークフロー完全版

“いい分析”より“伝わる納品”。副業や実務で評価されるのは、意思決定に効く1枚と再現できるパッケージを期限通り出せること。 本記事は、未経験〜初学者が週10時間×2〜3週で、要件定義→データ受領→ET ...

SQLite
【保存版】SQLite×Pythonで作る“ローカルDWH”——ETL・集計・レポート自動化の最短手順

ローカルでゼロ構築、ファイル1つで完結、サーバ不要。本記事はSQLite×Pythonで“毎日回る”ETL・集計・レポート自動化を最短で作るための完全ガイドです。データ設計→DB作成→ETL(取り込み ...

可視化
【保存版】可視化入門:Matplotlib/Plotlyの使い分けと“伝わるグラフ設計”10ステップ

結論:可視化は「きれいに描く」ことではなく、意思決定を動かすための設計です。本稿では、未経験〜初学者が 週10時間×1〜2週 で、Matplotlib/Plotlyを軸に “伝わるグラフ”の設計と実装 ...

機械学習
【保存版】scikit-learn基礎:回帰・分類・前処理・パイプライン・交差検証を“実務の型”で習得

機械学習で迷子になる最大の理由は、前処理→学習→評価→改善の順番が曖昧なまま個々のアルゴリズムに飛びつくこと。本記事は、未経験〜初学者が週10時間×2〜3週で到達できるscikit-learnの最短ル ...

モデル評価
【保存版】モデル評価:指標の選び方・交差検証・閾値最適化・ビジネス接続を“実務の型”で解説

精度が上がらない原因の多くは「評価設計の誤り」にあります。評価とは「何点取れたか」ではなく、意思決定に耐えるかを測る営み。この記事では、回帰/分類/ランキングの指標の選び方、交差検証の正しい使い分け、 ...

最近のコメント

    • この記事を書いた人
    • 最新記事

    ふみと

    このブログでは、データサイエンティストとして市場価値を上げる方法を独自にまとめて発信しています。

    【プロフィール】
    ・大手企業データサイエンティスト/マーケティングサイエンティスト(10年、年収900万円台)/案件100件以上
    ・資格:JDLA E資格(日本ディープラーニング協会主催)/JDLA Community(CDLE会員)/Advanced Marketer/ビジネス統計スペシャリスト/統計検定2級/TOEIC 805
    ・スキル:Python/Tableau/SQL/機械学習/Deep Learning/RPA

    -実案件/ポートフォリオ