はじめに
2025年、秋田県では熊の出没件数が過去最多ペースで増加しています。
ニュースを見ながら「いつ、どこで熊に遭遇するリスクが高いのか?」という疑問を感じ、
データサイエンスを活用して地域貢献できないかと考えたのが、このプロジェクトの出発点です。
にかほ市の商工会に「Corota AI Lab.」という屋号で個人事業として登録したこともあり、
地域からAIを活用した“何か”を発信したいと思っていました。
そして、地元でも関心が高いテーマである「熊出没リスク」を、
時間ごと・場所ごとに見える化するWebサイトを作りました。
使用技術
| 要素 | 使用技術・ライブラリ |
|---|---|
| データ処理 | Python, pandas |
| モデル | Logistic Regression(PyCaretで作成) |
| 可視化 | OpenStreetMap(4次メッシュを色分け) |
| デプロイ | GitHub Pages(無料でサーバーレス運用) |
| 自動更新 | ローカル環境で毎朝更新スクリプト実行 |
「サーバーを立てずに無料で運用したい」という方針から、
GitHub上で静的サイトとして公開し、
データ更新は自前の環境から毎朝自動で反映されるようにしました。
データ取得と前処理の流れ
熊の出没情報は、各自治体が公開しているオープンデータを利用しています。
また、気象データは 気象庁 から取得しました。
前処理では主に以下を行っています:
- 日時・緯度経度情報の整形
- 1〜4次メッシュ単位での熊出現カウント
- ラグ特徴量(直近の出現傾向)を追加
- 遭遇していない地点のダミーデータをランダム生成
→ 学習データのバランスを改善
リスク算出の仕組み
モデルには Logistic Regression を採用し、
その prediction_score を「リスク」として表示しています。
※ 現在は検証で使用していた PyCaret のモデルを流用しています
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
risk_score = model.predict_proba(X_test)[:, 1] # 出現確率をリスクとして使用
リスクスコアは1時間単位で算出し、
4次メッシュごとに色の濃淡で可視化しています。
UI / UX と運用上の工夫
毎日自動更新(ローカル実行で最新データを反映)
シンプルなUI設計:余計な情報を極力減らし、リスクの分布が直感的に伝わるように
リスク値の説明:定義が難しいため、今後の課題として改善予定
アクセス推移
10月に入ってからアクセスが急増し、
直近28日で822ユーザー(前月比 +1,126%) を記録しました。

今後の展望
・他県の熊出没データを追加
・サーバー上での自動更新化
・精度向上(外部データの活用)
まとめ:地域課題×データ×Webの可能性
熊の出没は「地域のリアルな課題」です。
こうしたテーマにこそ、データサイエンスやWeb技術が役立つと実感しました。
参考リンク
熊出没リスク可視化サイト「くま予報」
https://kuma-forecast.easyscraping.jp/
