ホームページ > バックエンド開発 > Python チュートリアル > Streamlit: ML アプリ作成のための魔法の杖

Streamlit: ML アプリ作成のための魔法の杖

Patricia Arquette
リリース: 2024-10-07 20:10:30
オリジナル
821 人が閲覧しました

Streamlit は、データ サイエンス機械学習 用の Web アプリケーション を作成できる強力なオープンソース フレームワークです。数行の Python コード。

シンプルで直感的で、フロントエンドの経験は必要ありません。そのため、機械学習モデルを迅速に展開したい初心者と経験豊富な開発者の両方にとって優れたツールです。

このブログでは、RandomForestClassifier で Iris データセット を使用して、基本的な Streamlit アプリと 機械学習プロジェクトを構築するための段階的なプロセスを説明します。 .

Streamlit を使ってみる

プロジェクトに入る前に、フレームワークに慣れるために、Streamlit の基本的な機能をいくつか見てみましょう。次のコマンドを使用して Streamlit をインストールできます:


pip install streamlit


ログイン後にコピー

インストールしたら、Python ファイル (app.py など) を作成し、以下を使用して実行することで、最初の Streamlit アプリを開始できます。


streamlit run app.py


ログイン後にコピー

それでは、Streamlit の中核となる機能を見ていきましょう:

1.タイトルの書き込みとテキストの表示


import streamlit as st

# Writing a title
st.title("Hello World")

# Display simple text
st.write("Displaying a simple text")


ログイン後にコピー

Streamlit: The Magic Wand for ML App Creation

2. DataFrame の表示


import pandas as pd

# Creating a DataFrame
df = pd.DataFrame({
    "first column": [1, 2, 3, 4],
    "second column": [5, 6, 7, 8]
})

# Display the DataFrame
st.write("Displaying a DataFrame")
st.write(df)


ログイン後にコピー

Streamlit: The Magic Wand for ML App Creation

3.グラフによるデータの視覚化


import numpy as np

# Generating random data
chart_data = pd.DataFrame(
    np.random.randn(20, 4), columns=['a', 'b', 'c', 'd']
)

# Display the line chart
st.line_chart(chart_data)


ログイン後にコピー

Streamlit: The Magic Wand for ML App Creation

4.ユーザーインタラクション: テキスト入力、スライダー、選択ボックス
Streamlit は、ユーザー入力に基づいて動的に更新されるテキスト入力、スライダー、選択ボックスなどのインタラクティブなウィジェットを有効にします。


# Text input
name = st.text_input("Your Name Is:")
if name:
    st.write(f'Hello, {name}')

# Slider
age = st.slider("Select Your Age:", 0, 100, 25)
if age:
    st.write(f'Your Age Is: {age}')

# Select Box
choices = ["Python", "Java", "Javascript"]
lang = st.selectbox('Favorite Programming Language', choices)
if lang:
    st.write(f'Favorite Programming Language is {lang}')


ログイン後にコピー

Streamlit: The Magic Wand for ML App Creation

5.ファイルのアップロード
ユーザーがファイルをアップロードし、Streamlit アプリでそのコンテンツを動的に表示できるようにすることができます:


# File uploader for CSV files
file = st.file_uploader('Choose a CSV file', 'csv')

if file:
    data = pd.read_csv(file)
    st.write(data)


ログイン後にコピー

Streamlit: The Magic Wand for ML App Creation

Streamlit を使用した機械学習プロジェクトの構築

基本については理解できたので、機械学習プロジェクトの作成に移りましょう。有名な Iris データセットを使用し、scikit-learn の RandomForestClassifier を使用して単純な分類 モデル を構築します。

プロジェクトの構造:

  • データセットをロードします。
  • RandomForestClassifier をトレーニングします。
  • ユーザーがスライダーを使用して特徴を入力できるようにします。
  • 入力特徴に基づいて種を予測します。

1.必要な依存関係をインストールします
まず、必要なライブラリをインストールしましょう:


pip install streamlit scikit-learn numpy pandas


ログイン後にコピー

2.ライブラリのインポートとデータのロード
必要なライブラリをインポートして、Iris データセットをロードしましょう:


import streamlit as st
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier

# Cache data for efficient loading
@st.cache_data
def load_data():
    iris = load_iris()
    df = pd.DataFrame(iris.data, columns=iris.feature_names)
    df["species"] = iris.target
    return df, iris.target_names

df, target_name = load_data()


ログイン後にコピー

3.機械学習モデルをトレーニングする
データを取得したら、RandomForestClassifier をトレーニングして、その特徴に基づいて花の種類を予測します。


# Train RandomForestClassifier
model = RandomForestClassifier()
model.fit(df.iloc[:, :-1], df["species"])


ログイン後にコピー

4.入力インターフェースの作成
次に、サイドバーにスライダーを作成して、ユーザーが予測を行うための特徴を入力できるようにします。


# Sidebar for user input
st.sidebar.title("Input Features")
sepal_length = st.sidebar.slider("Sepal length", float(df['sepal length (cm)'].min()), float(df['sepal length (cm)'].max()))
sepal_width = st.sidebar.slider("Sepal width", float(df['sepal width (cm)'].min()), float(df['sepal width (cm)'].max()))
petal_length = st.sidebar.slider("Petal length", float(df['petal length (cm)'].min()), float(df['petal length (cm)'].max()))
petal_width = st.sidebar.slider("Petal width", float(df['petal width (cm)'].min()), float(df['petal width (cm)'].max()))


ログイン後にコピー

5.種の予測
ユーザー入力を取得した後、トレーニングされたモデルを使用して予測を行います:


# Prepare the input data
input_data = [[sepal_length, sepal_width, petal_length, petal_width]]

# Prediction
prediction = model.predict(input_data)
prediction_species = target_name[prediction[0]]

# Display the prediction
st.write("Prediction:")
st.write(f'Predicted species is {prediction_species}')


ログイン後にコピー

これは次のようになります:

Streamlit: The Magic Wand for ML App Creation

Streamlit: The Magic Wand for ML App Creation

最後に、Streamlit により、最小限の労力で機械学習 Web インターフェイスの作成とデプロイが驚くほど簡単になります。 ?わずか数行のコードで、インタラクティブなアプリを構築できました。ユーザーが特徴を入力して花の種類を予測できるようにするものですか?機械学習モデルを使用します。 ??

コーディングを楽しんでください! ?

以上がStreamlit: ML アプリ作成のための魔法の杖の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート