・機械学習によるホタルイカの身投げ量予測・Webサイト構築の研究の引き継ぎ用ページです。

・基本的にローカル(個人のPC内)でコードを動かし、自分と同じ結果を出したり、予測API・Webサイトを動かせるようになることが目標です。

・このサイトは一般公開予定なので本番環境(https://bakuwaki.jp/)の設定などは教えれません。

・すべてDockerコンテナ内で動かすので大丈夫だと思いますが、自分の環境がMacOSなのでWindowsだとうまくいかないことがあるかもしれないです。

目次 

やること 

1. 機械学習コードを実行し、同じ結果を再現する

2. 予測APIをローカルで起動して動作確認する

3. Webサイトをローカルで起動して動作確認する

※データの収集、サーバーへのデプロイ(公開)などは大変なので行いません。

0. Dockerのインストール 

全部Dockerの仮想環境上でコードを動かすので、Dockerが入っていない場合インストールしてください。

https://zenn.dev/upgradetech/articles/8e8b82e9d5c494

Windowsの場合、この記事などを参考にしながらインストールしてください。

この記事の場合「✅ インストール完了!」というところまででいいです。

インストールしたらターミナルで

docker --version

を実行してこのようにバージョン情報が返って来れば大丈夫です。

docker_version.png

1. 機械学習コードを実行し、同じ結果を再現する 

機械学習の学習コードを動かして、自分と同じ結果が再現できるようにします。

全体構成の中のこの赤枠の部分の内容です。

str_lern.png

1.1 コードのダウンロード 

これをダウンロードして解凍してください。

1.2 学習用データの保存 

ここまでできたら自分に連絡して、学習用のjsonファイルをもらってください。

この json ファイルは外部公開・第三者への共有をしないでください!欲しい場合は必ず自分(海野)経由で入手してください。

もらったjsonファイルを、このようにdataフォルダの中に、ファイル名をhotaruika_past_data.jsonとして保存してください。

directory.png

1.3 機械学習 

vscodeでダウンロードしたフォルダを開き、ターミナルを開いてプロジェクトのルートディレクトリ(Dockerfileがある場所)で、以下の2つのコマンドを実行してください。

1. Dockerイメージのビルド

docker build -t hotaruika-ml .

2. Dockerコンテナの実行

docker run --rm -v $(pwd)/output:/app/output hotaruika-ml

2つ目のコマンドを実行すると機械学習の処理が走ります。実行には2〜3分ほどかかります。

1.4 結果の確認 

処理が終了すると、ターミナルにこのように表示されることを確認してください。

terminal_resoult.png

また、outputというフォルダが作成され、その中にこのような結果の2つのグラフが作成されていることを確認してください。

prediction_vs_true.png
feature_importance.png

2. 予測APIをローカルで起動して動作確認する 

予測APIのコードをローカル環境(Docker)で実行し、サーバーを立ち上げて正常に動作できるようにします。

全体構成の中のこの赤枠の部分の内容です。

str_api.png

2.1 コードのダウンロード 

これをダウンロードして解凍してください。

2.2 モデルファイルの保存 

ここまでできたら自分に連絡して、5つの機械学習モデルファイルをもらってください。

Webサイトは一般向けに公開予定です。このモデルファイルも外部公開・第三者への共有をしないでください!欲しい場合は必ず自分(海野)経由で入手してください。

もらった5つのファイルを、このようにml/modelフォルダの中に、このように保存してください。

directory_p_api.png

2.3 DockerでAPIサーバーの起動と動作確認 

vscodeでダウンロードしたフォルダを開き、ターミナルを開いてプロジェクトのルートディレクトリ(docker-compose.ymlファイルがある場所)で、以下のコマンドを実行ます。

コンテナのビルドと起動 

docker compose up --build -d

このコマンドを実行することでDockerコンテナ内にAPIサーバーが起動します。

コマンド実行後、コンテナを起動するまで少し時間がかかります。起動が完了したら、ブラウザで以下のURLにアクセスします。

http://localhost:8081/predict/week

アクセスし、このように7日分の予測値や、気象予報値などが返ってきたら成功です。

prediction_data.png

コンテナの停止 

基本的にDockerは自分のPCの内部に仮想の新しいPCを建てているようなものなので、Docker起動中はメモリを大量に使用するので重くなることがあります。使用していないときは以下のコマンドで停止しておくことがおすすめです。

docker compose down

※ですが、次のセクションのWebサイトの動作確認ではこのAPIのDockerが起動していないとうまくいきません。

3. Webサイトをローカルで起動して動作確認する 

Webサイトのコードをローカル環境(Docker)で起動し、サーバー(フロントエンド、バックエンド、データベース)を立ち上げて正常に動作できるようにします。

全体構成の中のこの赤枠の部分の内容です。

str_web.png

3.1 コードのダウンロード 

これをダウンロードして解凍してください。

3.2 Dockerでフロントエンド、バックエンド、データベースサーバーの起動 

vscodeでダウンロードしたフォルダを開き、ターミナルを開いてプロジェクトのルートディレクトリ(docker-compose.ymlファイルがある場所)で、以下のコマンドを実行ます。

コンテナのビルドと起動 

docker compose up --build -d

このコマンドを実行することでDockerコンテナ内に3つのサーバーが起動します。

コマンド実行後、コンテナを起動するまで少し時間がかかります。

3.3 動作確認 

※前述しましたが、このアプリは、予測APIにリクエストを送信してデータを取得するので、前回の予測APIのサーバーが起動している必要があります。

Docker Desktopでこのように今回の3つ、前回の予測APIの1つの、計4つのコンテナが起動していることを確認してください。

docker.png

起動が完了したら、ブラウザで以下のURLにアクセスします。

http://localhost:3001

Webサイトが表示され、以下のことを確認してください。

メインページ 

・ホタルイカの身投げ量予測が表示される(2〜5月以外はオフシーズン)

・口コミが表示され、自分でも投稿できる

詳細ページ 

・詳細ページに移動し、その日の詳細情報が表示される

プレビューページ 

・以下のURLでシーズン中のデモデータでのプレビューページが表示される

http://localhost:3001/preview
https://bakuwaki.jp/preview/detail/2025-05-26

管理者ページ 

・以下のURLにアクセスし、パスワード(dev_password)を入力し管理者画面にログインでき、管理者権限で口コミを投稿したり、削除したりできる

http://localhost:3001/admin

ログイン画面

admin_login.png

管理者画面

admin.png

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS