![見出し画像](https://assets.st-note.com/production/uploads/images/113821815/rectangle_large_type_2_554d5bb6aab4cc2f78c946d71111ccb5.jpeg?width=1200)
サンフランシスコ留学18・19日目
この記事の概要
この記事は僕のサンフランシスコ留学について書いているものです。詳細は前回の記事を参照してください。
サマーキャンプも残すところ3日となりました!
Day18
リスク計算の実装
前回の記事では分類問題に変換する的なことを書きましたが、結局やめました。その代わりに、震央と現在地の距離とマグニチュードをもとに地震のリスクを計算することにしました。簡単に言えば、マグニチュードの指数を戻したものを、距離の3乗で割って平均したものをリスクとしていて、地震のエネルギーを距離の3乗で割ることで、簡易的にその場所の受ける被害を計算できているはず。さらにこうして計算したリスクをKmeans法で3段階でクラスタリングして、リスクレベルを3段階で評価する。ちなみに、あとでグラフを作ってみると、割とちゃんとリスクが計算できてるっぽい感じだった。
プロジェクトの説明
お昼の後にiDTechの代表の人が来て、それぞれのグループのプロジェクトについて聞いて、アドバイスをするという時間があった。僕はあくまでモデルのことしか話していないのだけど、どちらかと言うと最も近い病院はどこか表示するとか、災害時でも使えるようダウンロード機能をつけるとか、どうやって普及させるかとか言った、よりユーザーを意識した話が多かった(正直全部聞き取るのは難しかった)。基本的に僕はAPIの設計のことしか考えていなかったけど、ムーンショット思考の中ではちゃんとアイデアを実現可能なところまで具体的に考えを詰めるのも重要なんだなと感じた。
あと、こういう時にちゃんと話せるレベルまで英語を鍛えるのは難しいとは思うけど、早いうちに習得したい。
![](https://assets.st-note.com/img/1692529751032-sApUYmiDIK.png?width=1200)
その後の作業
とりあえずAPIの調整がやっと終わったので、今まで他の人に任せていたプレゼン資料を編集して、英語でちゃんと説明できるように原稿を書いた。我ながら結構頑張って書いたと思う。
そして、原稿も作り終わって、久々にOS作りでもするかなと思っていた時にメンバーから「このリスクの地図にユーザーの位置を表示できない?」と言われた。確かにそれができたほうがUI的にはいいかもしれないと思い再び実装作業へ。
で、最初は別にJuliaのPlotsをGenieの中で動かせばいいだけだと思っていたのだけど、なんか謎のエラーが出て詰んだ。どうもPlotsをGenieの中で動かしているのが原因らしく、Bounds Errorを吐いてた。
明日の午前中までにはプロジェクトを終えるように言われているから、今日の夜のうちに調べて、明日の朝にはバグ修正したい。
Day19
バグ修正
まずは昨日のバグからですが、結論から言うと大したバグではなくて、シンプルに緯度経度の情報をただの数値型ではなくて配列で包んで渡せば良かったみたい。これでユーザーの位置情報を星マークとしてマップに表示できるようになった。
更に、これを直してる時に気づいたバグがあって、リスクマップの緯度と経度が逆になってた()これを直してやると、ちゃんとリスクマップがカルフォルニアの有名なサンアンドレアス断層に沿ってハイリスクが表示されて、ちゃんと計算式が機能していることがわかった。このマップができた時はかなり興奮した。
ちなみに、APIの地震予測の方もそんなに精度は高くないけど、実際に昨日予測した地震が今日起こってたらしく、結構嬉しかった。
NaN値との戦い
その後もバグ修正は続きます。どうもリスクマップを作っていて気になっていたんでけど、たまにAPIがNaN値(ゼロ除算とかで出るやつ)を吐いていて、その頻度が今日はやたらと多くなってました。
いい加減直さないとAPIとして使えないなと思い修正を試みたのですが、結構手こずりました。ChatGPT使ってもインストラクターに聞いても直接的な原因は分からず、結局どこでNaN値ができているのかはわかりませんでしたが、とりあえず影響がないことは確認できたので、適宜NaN値を0に変換する処理をはさんで、バグ修正は終わりました。
おまけ:トルネードの予測
最後に発表のデモも終わって時間があったので、Kaggleからデータを取ってきてトルネードの予測モデルを構築した。モデル構築のコードは地震予測モデルと大差ないので基本コピペで必要な分だけ修正したらAPIの実装含めて30分足らずで終わった。精度は時刻の予測は地震より少し精度が良くて、発生位置の予測モデルは少し悪かった。これは多分位置予想がトルネードの開始位置と終点を両方予測しているせいだと思う。
Javascript担当の人に使うか聞いたけど、別のページの編集で忙しくて、余裕なさそうだったから、使いたかったら教えてと言っておいた。
明日以降の予定
明日はついにサマーキャンプ最終日で、Googleの人にプレゼンする機会がある!正直英語で柔軟に話すのは無理なので、基本原稿使って発表して、質問はAI関連のことだけ答えることにしてる。
で、その後はホストファミリーに移動なんだけど、どうもここのキャンプに参加してる日本人2人と同じとこに泊まるらしい。あと少しで帰国だけど、最後まで楽しみたい。
この記事が気に入ったらサポートをしてみませんか?