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

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

2

こんにちわ、さとしです! 気がつけばこのデータサイエンティスト転職から、1年が経とうとしています。 今はご時世的に外にも出られず、変化があまりない生活を送ったせいもあってか、なんかあっという間に1年が ...

3

データサイエンティストに転職して1年が経ち、いろいろな業務を経験させてもらいつつ、自分でもある程度本を読んできました。 仕事の話は下記の記事で書きましたが、自分で読んだ本については書いていないのでこの ...

-Python

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