Python

PythonとStreamlitで簡単な機械学習WEBアプリを作ってみる

Pythonで簡単なデモアプリを作りたいことはあるかと思います。

データサイエンティストなどがモデリングをした際に、そのモデリング結果を使ってアプリの本番まではいかなくともデモのアプリが作れるとだいぶ幅が広がるでしょう。

もちろんしっかりとアプリを作るならばDjangoとかFlaskとかを使うかと思いますが、もっとライトにもっと簡単に作れたらなぁと思うので僕だけではないのではないでしょうか。

そこで今回はStreamlitというライブラリを使って、簡単な機械学習アプリを作ってみたいと思います。

Pythonで簡単にアプリが作れるライブラリはStreamlitとかDashとかいろいろありますが、とりあえずその中でも一番簡単なレベルだと思うStreamlitを使ってみます。

 

機械学習WEBアプリの作成

今回作ってみるのは、Irisのデータを使って花弁の長さ等をインプットしたら、予測されるIrisの種類を返してもらうという簡単なアプリです。

ではこちら初めていきましょう!

 

データの読み込み

Irisのデータはsklearnのdatasetからインポートします。

 

 

モデリング

データの準備ができたので、機械学習アプリのためのモデリングをしていきます。

本当はアプリとは別でモデリングをして、その結果のみを読み込むようにすれば良いと思いますが、今回はわかりやすさのために、アプリと同じコードの中でモデリングもしたいと思います。

なので、モデリング自体には全然精度は求めず、とりあえずロジスティック回帰でモデリングだけします。

 

 

アプリ部分のコーディング

これでモデリングができましたので、重要なアプリ部分のコーディングをしていきましょう。

Streamlitを使ったアプリでは、大きくサイドパネル部分とメインパネルの部分があります。

今回はサイドパネルでがく弁の長さ(sepal length)、花弁の長さ(petal length)を決められるようにし、その結果を読み込んで、画面上にIrisの種類の予測結果を返します。

 

 

予測と結果出力

インプットデータができましたので、このデータを使って予測をします。

そして予測結果を出力してみましょう!

 

 

サイドパネルで決めた値をメインパネルのInput Valueに反映させるようにし、その予測結果を確率で出すようにします。

そして一番確率が高いIrisの種類を結果のところに表示させます。

"st.write"でアプリ画面に文字表示ができるのですが、マークダウン形式で表示できますので、好きな感じにインデントとか文字サイズとか決めます。

これで無事コードができたので、ターミナルでpython app.py とすると、ちゃんとコードが正しいことがわかります。

 command
python app.py

下の方に、"Streamlit run app.py"をしろと出るのでそれに従って実行すると、このようにブラウザにアプリが表示されます。

 command
streamlit run app.py

サイドパネルのスライダーを動かすと、結果にあるIris種類の予測結果が変わることがわかりますね!

このように今回は単純な例でしたが、Streamlitを使えば簡単にWEBアプリを作れることがわかりました。

もう少しがんばれば、いろいろとカスタマイズができそうです!

おすすめ記事

1

こんにちわ、サトシです。33歳です。 今回は、データサイエンティストの3年間に3社で働いた僕が、データサイエンティストとしての転職活動についてまとめて書きたいと思います。 これまでSE→博士研究員→ポ ...

2

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

3

こんにちわ、サトシです。 今回は、企業でデータサイエンティストとして働いていた僕が、フリーランスとしてどのような手順で独立していったかについて書いていきたいと思います。 僕はSIer SE→博士過程→ ...

-Python

Copyright© さとぶろぐ , 2024 All Rights Reserved Powered by AFFINGER5.