0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

bluecarbon portfolio

Last updated at Posted at 2023-05-09

https://github.com/rakawanegan/bluecarbon_portfolio

README.md

このREADME.mdファイル

requirements.txt

$ pip install requirements.txt

を行うことでバージョンを含めたPython環境を揃えることができる
・folium
・pandas
・matplotlib
・numpy
・sklearn
・functools
・math
・lightgbm
・optuna
・torch
・tqdm
・pickle
・joblib
・re

BlueCarbonダイナミクスを可視化せよ!.pdf

コンペ成果報告として発表をした際に用いたパワーポイントファイルをpdfに直したもの


official data

YouTube URL

BlueCarbonダイナミクスを可視化せよ!キックオフ動画のYouTube URL
生物多様性ビックデータに基づいたネイチャーの可視化

コンペ課題、テーマについての説明

README.md

公式README.mdファイル

feature_description.xlsx

説明変数の詳細な紹介
・被度文献データ
・海洋環境要因データ
・2019年に撮影された衛星センチネル画像テーブルデータ
・同グリッド内で撮影された被度文献データの年月日に最も近い衛星ランドサット画像テーブルデータ
・2000からの2020年までの衛星ランドサット画像テーブルデータ

train_data.csv

訓練データ。
14140個のデータ。

test_data.csv

テストデータ。
4039個のデータ。

submit_example.csv

提出サンプルファイル

image_data.txt

元衛星画像を格納したGoogle Drive URL


analyze

Ocean_map(not selfmade)

有志によって作成されたpyファイル。
データの緯度経度の分布をPytonのMapモジュールによって可視化したもの

訓練データマップ

テストデータマップ

このファイルによって、訓練データとテストデータで緯度経度に偏りがあることがわかった。
次に緯度経度によって目的変数が変わるのかを検証するためにLatlon_heatmapを実装した。

Latlon_heatmap

緯度、経度、目的変数をヒートマップとして可視化したもの

alt
alt

alt
alt

alt

このファイルによって似た緯度経度では同じ様な目的変数の分布があることがわかった。
さらに、年度と目的変数の関係を確認するためにStormを実装した。

Storm

年、月、台風の接近数、目的変数をヒートマップとして可視化したもの

alt
alt

alt
alt

alt

キックオフ動画にて、台風が来た年には大きく目的変数が減少することがあるという説明があった。
そこで、気象庁より入手したデータと目的変数の分布を検証した。
しかし、検証した所、台風はそこまで影響はないと結論づけた。
一方で目的変数と年月の関係は確認できたため、緯度・経度・年を特徴量とした最近傍法の実装に至った。

okinawa.csvは沖縄地方への接近数のデータ。気象庁より取得
https://www.data.jma.go.jp/fcd/yoho/typhoon/statistics/accession/okinawa.csv

Train_test_diff

テストデータと訓練データに偏りがないかを確認するために作成。
訓練データテストデータにそれぞれラベルを付与しLGBMに分類タスクをかけた所、スコアは0.9967であった。
つまり、訓練データとテストデータ間には偏りが見られた。
同階層のmost_gain_importance.csvは分類タスクを課したLGBMの重要度順に整列したものである。
LightGBMのゲイン重要度を確認した所海洋環境要因データの川に関係する部分に分類の重要度が高いことがわかった。
そこで、川と藻の被度で直接的に関係する部分は塩分濃度であると仮説を立てた。
塩分濃度と海藻の相関を散布図により確認したがあまり相関が見えなかった。
よって今回のコンペにおいて問題のある偏りではないと結論づけた。


main

setup.py

はじめにこのファイルを実行すること。
minimal_feature_description_for_Landsat_data.csvが生成され、read_info.pyの実行環境が構築される。
分割した公式ファイルを結合するコードも兼ねている。

main.py

実行用メインファイル

preprocessor

データの前処理

・Pre_Process_Randsat

チームメンバー藤井作成。
2000から2020年までのランドサットデータについて補完を行う。
補完は年度ごとの線形補間、昨年度の値を取り出す、統計量から補完の優先度で行う。

・Fillnan_Randsat_Series

チームメンバー藤井作成。
同グリッド内で撮影された被度文献データの年月日に最も近い衛星ランドサット画像テーブルデータの補完を行う。
調査年と同じ年の2000から2020年までのランドサット中央値データで補完を行う。

・MedianIndexFull

チームメンバー西村作成。
Fillnan_Randsat_Seriesで補完できなかったデータに対して統計量から補完を行う。
統計量=中央値

・MeanIndexFull

チームメンバー西村作成。
Fillnan_Randsat_Seriesで補完できなかったデータに対して統計量から補完を行う。
統計量=平均値
中央値で補完を行うよりも平均値で補完を行ったほうがスコアが良かった。

・StandardScaler

(x-x.mean) / x.std
平均が0、標準偏差が1となるように変換を行う。
NeuralNetworkで用いることを想定。

・MinMaxScaler

(x - x.min) / (x.max - x.min)
最大値が0、最小値が1となるように変換を行う。
NeuralNetworkで用いることを想定。

predictor

モデルの設計

・kNearestNeighbor:最近傍法

距離の近い訓練データ点を出力とするアルゴリズム。
入力は緯度、経度、年のみだが、精度向上に大きく貢献した。

・LightGBMoptuna

Microsoftによって開発された決定木型学習機
米国データサイエンスコンペKaggleでひっぱりだこのモデル
ベイズ最適化でハイパーパラメータを調整するモジュールoptunaと組み合わせて使用した。

・RandomForest

ノンパラメトリックな決定木モデル
シード値を変えた複数個で運用するバギングを想定して作成した。

・NeuralNetwork

言わずとしれた深層学習
今回のタスクがテーブルデータからの回帰であることから全結合層を採用した。
値域を割合に抑えることが難しく、時間の都合上アンサンブル学習の対象からは外した。

evaluator

モデルの評価

・make_score_rmse

本コンペでの誤差関数。
二乗誤差平均に平方をとったもの。

・submit

提出用ファイルを出力。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?