こんにちは!PyQチームのnao_yです。
機械学習を使ったWebアプリケーションの作成を体験できるパートをリリースしました。
機械学習を勉強しているけど、どう使っていいかわからないという人も多いと思います。Webアプリケーションは自分の作った機械学習モデルを応用するのにぴったりです。その基礎をこのパートで学びましょう。
このパートはPyCon APAC 2018で機械学習とWebアプリケーションの組み合わせについてのトーク「Build a Data-Driven Web App That Everyone Can Use」を聴いたことがきっかけで生まれました。
参考: PyCon APAC 2018 in シンガポールに行ってきました! - PyQオフィシャルブログ
機械学習+Webパートで体験できることは?
このパートでは、クラフトビールのデータ(アルコール度数・苦さ指標)を用いて機械学習モデルを作成し、クラフトビールをおすすめするWebアプリケーションを作ります。
※ クラフトビールとは小さいビール醸造所で作られるビールのことで、風味や苦さの異なる様々なビールがあります
このパートには2つのクエストがあります。
- 機械学習モデルの作成
- 機械学習Webアプリの作成
機械学習モデルの作成
このクエストでは「データセットの前処理」と「機械学習モデルの作成」を体験します。
データセットの前処理をしよう
pandasを使ってデータの抜け(欠損値)の処理と文字列で表された特徴を数値に置き換えるコード化を行います。
欠損値処理とコード化の例:
ビールの名前 | アルコール度数 | 苦さ指標 | 種類 |
---|---|---|---|
PyQ Lager | 5.6 | 20.6 | Lager |
PyQ Ale | 6.1 | Ale | |
pandas Ale | 5.7 | 23.5 | Ale |
Python Stout | 5.8 | 22.5 | Stout |
↓
ビールの名前 | アルコール度数 | 苦さ指標 | 種類 |
---|---|---|---|
PyQ Lager | 5.6 | 20.6 | 1 |
pandas Ale | 5.7 | 23.5 | 2 |
Python Stout | 5.8 | 22.5 | 3 |
前処理したデータセットはWebアプリケーションで使うために保存しておきます。
機械学習モデルを作成しよう
scikit-learnを使って機械学習モデルを作成します。
ここではクラス分類という手法を使います。クラス分類では学習データをもとに、入力値がどのクラスに属すかを予測します。ここではクラフトビールデータセットを学習して、入力値 (アルコール度数と苦さ指標)からビールの種類を予測します。クラス分類アルゴリズムにはk近傍法
を使います。
また、Webアプリで使うために機械学習モデルをファイルとして保存します。
機械学習Webアプリの作成
軽量WebフレームワークFlaskを使ってWebアプリケーションを作ります。
このWebアプリでは入力されたアルコール度数・苦さ指標からビールの種類だけでなく、その種類の中から銘柄を5つおすすめします。
このようなWebアプリケーションができあがります。
いかがでしょうか?
このように、機械学習とWeb開発が融合したパートになっています。
PyQで機械学習を学んだあとは、このパートで機械学習の応用を体験してみませんか?