統計ロードマップ
2026-04-30·実装·⏱ 約 6

Streamlit で 1 時間で ML デモアプリ ─ 転職に効くポートフォリオ

Python だけで動くインタラクティブな ML デモを Streamlit で作る方法。データ可視化・ファイルアップロード・モデル予測 UI までの最小実装。

Streamlit は Python スクリプトを Web アプリに変えるライブラリ。データサイエンティストが React / HTML を学ばずに、1 時間で UI 付きデモ を作れます。

なぜ Streamlit がポートフォリオに効くか

  • 実装力の証明: Notebook より一段上、本番アプリより手軽
  • インタラクティブ: 採用担当者がその場で試せる
  • Streamlit Community Cloud: GitHub 連携で無料公開
  • 学習コスト ≈ ゼロ: Python 知識だけで OK

Hello World ─ 5 行で動く

app.py
import streamlit as st

st.title('統計検定 2 級 合格率予測')
name = st.text_input('お名前')
study_hours = st.slider('週の学習時間', 0, 40, 10)
st.write(f'{name} さんの予測合格率: {study_hours * 2.5}%')
実行
streamlit run app.py

実用例 ─ ML 予測アプリ

scikit-learn モデルのデモ
import streamlit as st
import pandas as pd
import joblib

st.set_page_config(page_title='住宅価格予測', page_icon='🏠')
st.title('🏠 住宅価格予測アプリ')

model = joblib.load('model.pkl')

col1, col2 = st.columns(2)
with col1:
    rooms = st.number_input('部屋数', 1, 10, 3)
    age = st.number_input('築年数', 0, 100, 10)
with col2:
    area = st.number_input('面積 (m²)', 20, 200, 70)
    distance = st.number_input('駅徒歩 (分)', 1, 30, 10)

if st.button('予測', type='primary'):
    df = pd.DataFrame([[rooms, age, area, distance]],
                       columns=['rooms', 'age', 'area', 'distance'])
    pred = model.predict(df)[0]
    st.metric('予測価格', f'{pred:,.0f} 円')
    st.balloons()

データ可視化アプリ

CSV アップロード + 可視化
import streamlit as st
import pandas as pd
import plotly.express as px

st.title('📊 CSV データ分析')

uploaded = st.file_uploader('CSV ファイル', type=['csv'])
if uploaded:
    df = pd.read_csv(uploaded)
    st.dataframe(df.head())
    st.write('統計量:', df.describe())

    col_x = st.selectbox('X 軸', df.columns)
    col_y = st.selectbox('Y 軸', df.columns)
    fig = px.scatter(df, x=col_x, y=col_y)
    st.plotly_chart(fig)

便利なウィジェット

  • `st.text_input` / `st.text_area`: テキスト入力
  • `st.number_input` / `st.slider`: 数値
  • `st.selectbox` / `st.multiselect`: 選択肢
  • `st.file_uploader`: ファイルアップロード
  • `st.dataframe` / `st.table`: 表
  • `st.plotly_chart` / `st.altair_chart`: グラフ
  • `st.metric`: 数値の強調表示
  • `st.tabs` / `st.expander`: レイアウト
  • `st.cache_data`: 高速化のためのキャッシュ

デプロイ ─ Streamlit Community Cloud

  1. GitHub に public リポジトリ を作成
  2. `requirements.txt` をコミット
  3. [share.streamlit.io](https://share.streamlit.io) で連携
  4. 5 分でデプロイ完了 ・ 無料 URL 発行

URL を 転職時の職務経歴書GitHub README に貼ると、面接官が即座に試せます。これだけで通過率が大きく変わります。

ポートフォリオで作るとよい題材

  • 住宅価格予測: 回帰問題、Boston Housing データ
  • 画像分類: CIFAR-10 で CNN デモ、Streamlit でアップロード → 予測
  • LLM チャット: OpenAI API + Streamlit で会話 UI
  • 異常検知: 時系列データ + Isolation Forest
  • EDA ダッシュボード: 任意の CSV を可視化

学習リソース

  • [scikit-learn 入門](/blog/sklearn-introduction)
  • [Pandas Tips](/blog/pandas-tips-for-ml)
  • [Vercel デプロイ](/blog/vercel-deployment-for-ai)
  • [キャリアの記事](/blog/data-scientist-career)
Related Articles

関連記事