【1時間で習得できる】機械学習分析ツールStreamlit を簡単なWEBアプリ開発に使ってみよう!

テキストボックスやボタン動作だけの簡単なWEBアプリを作成した公開したい!

ちょっとした社内ツールをWEBで実現したい。

そんなとき、Pythonで作られている機械学習分析ツールStreamlitがオススメです。

Streamlitは、もともと機械学習の分析結果をレポートするのを目的に作られていますが、簡単なWEBアプリを作ることにも適しています。

今回は、Streamlitを使ってみたので紹介したいと思います!

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア

 

Streamlitってなに?

Streamlitとは機械学習などの分析結果をTableやグラフを可視化するのに適しています。

 

WEBの本来の機能(ブラウザーでファイルダウンロードなど)は限定されるがWEBアプリとして使うことができます。

本家サイトのAPIの使い方の説明がわかりやすいです。

1時間もあればある程度使いこなすことが可能です。

 

Streamlitの本家サイト

https://streamlit.io/docs/

 

Streamlitはどんな場面で使われるの?

Streamlitをどんな場面で使われるのか、使われないのかまとめてみました。

 

使う場面

・WEBアプリのサンプル(プロトタイプ)を作る

・特に、html,CSSの知識がいらない(html,CSSのコードを書かなくて良い!)

・機械学習のレポート作成、データ分析に役立つ

・簡単なグラフ描画をしたい

・ボタンを押したら画面内のテキストの内容が変わるような簡単な機能を作りたい

 

使わない場面

・DBを使った本格的なWEBシステムの開発

・一般ユーザが使うようなログイン機能があるWEBシステム

・ブラウザーからファイルダウンロードするようなもの(Streamlitにファイルダウンロード機能がない)

 

Streamlitの導入方法

Streamlitダウンロードとインストール

Streamlitのダウンロードとインストールは、非常に簡単です。

以下のコマンドを実行するのみでインストール可能です。

pip install streamlit

 

Streamlitの詳しい使い方は、本家サイトのマニュアルを見てください。

https://streamlit.io/docs/

 

導入手順、チュートリアルなどがあり、わかりやすく解説されています。

 

動作確認

以下のコマンドを実行すると、ブラウザーが自動的に立ち上がりデモ画面を見ることができ、いろいろ動かすことができます。Streamlitでどんなことができるのか、確認するのに役立ちます。

streamlit hello

 

自作したものを動かすときは?

以下のような形式でコマンドを実行します。

streamlit run uber_pickups.py

 

サンプルコード

コードはこんな感じで記載します。

import streamlit as st
import pandas as pd
import numpy as np

st.title('streamlitのサンプルだお')

DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
         'streamlit-demo-data/uber-raw-data-sep14.csv.gz')


@st.cache
def load_data(nrows):
    data = pd.read_csv(DATA_URL, nrows=nrows)
    lowercase = lambda x: str(x).lower()
    data.rename(lowercase, axis='columns', inplace=True)
    data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
    return data

# Create a text element and let the reader know the data is loading.
data_load_state = st.text('Loading data...')
# Load 10,000 rows of data into the dataframe.
data = load_data(10000)
# Notify the reader that the data was successfully loaded.
data_load_state.text('Loading data...done!')

if st.checkbox('Show raw data'):
    st.subheader('Raw data')
    st.write(data)



st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)



# Some number in the range 0-23
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]

st.write(hour_to_filter)

st.text('This is some text.')

#ボタン処理
if st.button('ボタンの処理も作れる'):
    #ボタン押された
    st.write('Why hello there')
else:
    st.write('Goodbye')

#テキスト入力欄も作れるよ
st.text_area('labelだお', value="")

 

こんな感じの画面を作ることができます。

 

まとめ

いかがですか?

Streamlitは、機械学習用のツールですが、ブラウザーで動作するためプロトタイプをつくるときにも適しています。

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア
最新情報をチェックしよう!