こんにちは!しゅんです!
今回はstreamlitでクラスタリングwebアプリを作ってみたのでそれを実際に使ってみようと思います。
これまでは組合せ最適化の色んな問題やデータ分析の手法をpythonで扱う方法などを紹介していましたが、コードを書かなくても皆さんが使えるようなwebアプリを作ろうかな~と思い、streamlitを使ってwebアプリを作ってみました。
今回作ったものはこちらからアクセスできます。良ければ使ってみてください。
Streamlit (clustering-sy.streamlit.app)
webアプリ開発に関してはまだまだ初心者で解説できるレベルではないので、今回作ったアプリのコード解説とかはしません。githubにソースコードを公開しているので気になる人はそれを見てみてください。
それではやっていきましょう!
普段は組合せ最適化の記事を書いてたりします。
ぜひ他の記事も読んでみてください!
このブログの簡単な紹介はこちらに書いてあります。
興味があったら見てみてください。
このブログでは経営工学を勉強している現役理系大学生が、経営工学に関することを色々話していきます!
ぼくが経営工学を勉強している中で感じたことや、興味深かったことを皆さんと共有出来たら良いなと思っています。
そもそも経営工学とは何なのでしょうか。Wikipediaによると
経営工学(けいえいこうがく、英: engineering management)は、人・材料・装置・情報・エネルギーを総合したシステムの設計・改善・確立に関する活動である。そのシステムから得られる結果を明示し、予測し、評価するために、工学的な分析・設計の原理・方法とともに、数学、物理および社会科学の専門知識と経験を利用する。
引用元 : 経営工学 – Wikipedia
長々と書いてありますが、要は経営、経済の課題を理系的な観点から解決する学問です。
クラスタリングってなに?
ザックリ説明するとクラスタリングは似てるデータを同じグループに分類することです。下の図を見てみましょう。
このデータはある学校における生徒9人の英語と数学のテスト点数のデータです。散布図にしてみてみましょう。
横軸が英語のテストで縦軸が数学のテストです。この散布図を見ると9つのデータを3つのグループに分けることができそうです。
上のグラフのように赤、青、緑の3つのグループに分類できそうですね。このように似たようなデータを同じグループに分類することをクラスタリングと言います。
webアプリの概観
アプリを開くと上記のような画面が出てきます。一応このサイトの使い方ページも用意しました。左側のページ選択の所から「このサイトの使い方」ボタンを押せば以下のようなページに飛ばされます。
それでは実際にパラメータを入力して配送計画問題を解いてみたいと思います。
実際にクラスタリングしてみる
STEP 1 : クラスタリングしたいデータを用意する
まず最初にクラスタリングしたいデータをcsvファイル形式で用意します。webサイトにテンプレートcsvファイルがあるのでそれをダウンロードして、Feature_1、Feature_2の列にデータを入力してください。
STEP 2 : csvファイルをアップロードする
データを入力たcsvファイルをアップロードします。アップロードすると上図のようにcsvファイルが表示され、その横に「グラフを表示」ボタンと「クラスタリングを実行」ボタンが表示されます。
STEP 3 : グラフを表示する
グラフを表示ボタンを押すと上図のようにグラフが表示されます。これを見ると3つのクラスタに分けられそうですね。
STEP 4 : クラスタ数を入力してクラスタリングを実行する
最後にクラスタ数を入力して「クラスタリングを実行」ボタンを押します。ボタンを押すと上図のようにクラスタリングの実行結果が表示されます。想定通りの色分けがされていますね。
おわりに
いかがでしたか。
今回の記事では自作したクラスタリングをしてくれるwebアプリを実際に使ってみました。プログラミングができない人でもクラスタリングができるアプリを作れて大満足です。
今後も少しずつこのようなデータ分析のアプリを作っていきたいな~って思っています。
最後までこの記事を読んでくれてありがとうございました。