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

機械学習分析ツールStreamlit を簡単なWEBアプリ開発に使ってみよう

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

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

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

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

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

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は、機械学習用のツールと言えますが、ブラウザーで動作するためプロトタイプなどつくるときに適しています。

評判も見えるPGスクール検索・比較表

どのプログラミングスクールがいいんだろう?
そんな疑問をお持ちの方に、評判も見えるプログラミングスクール検索・一括比較サービスをリリースしました。

条件を指定することにより、気になるプログラミングスクールを一発で比較できます。
きっと、条件にあったスクールが見つかるかと思います!
詳細は、以下の画像をクリック!

プログラミングスクール検索・比較のペン太ブル
スポンサーリンク
PR




PR




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
PR