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
- GitHub に public リポジトリ を作成
- `requirements.txt` をコミット
- [share.streamlit.io](https://share.streamlit.io) で連携
- 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
関連記事
- 2026-04-30実装OpenAI API 実装入門 ─ Chat / Embeddings / Function CallingOpenAI API を使ったプロダクション開発の基礎。Chat Completion・Embedding・Function Calling・ストリーミング・コスト管理まで実装パターンを網羅。
- 2026-04-30実装Vercel で AI アプリをデプロイする ─ Next.js + AI SDK 入門Vercel にデプロイする最短ルート。Next.js の AI SDK + AI Gateway で OpenAI/Claude を統合し、ストリーミングチャット UI を 1 時間で公開する手順。
- 2026-04-30実装GitHub Actions で ML プロジェクトに CI/CD を ─ 30 分入門テスト ・ Lint ・ モデル学習 ・ 自動デプロイ を GitHub Actions で自動化する手順。Python ML プロジェクトのテンプレートをそのまま流用できる形で。