Skip to content

deu30303/DistrictEffect

Repository files navigation

Learning Economic Indicators by Aggregating Multi-Level Geospatial Information (AAAI 2022)

Pytorch Implementation of Learning Economic Indicators by Aggregating Multi-Level Geospatial Information

  • Our model is a novel learning model that utilizes multiple levels of geographic information to predict economic indicators.
  • Step 1. our model measures the hyperlocal economy by inferring the relative degree of individual grid image’s economic development via ordinal regression.
  • Step 2. the interconnected relationship among small grid areas within the same district is summarized as district features.
  • Step 3. our model finally estimates economic indicators of districts by jointly utilizing the hyperlocal predictions and district features.

Model architecture

Step 1-A. Proxy Pretrain


1-proxy_pretrain.py

Training model with softlabel proxy (Ordinal Regression) or nightlight proxy (Pearson Maximization).

usage: 1-proxy_pretrain.py [-h] [--mode MODE] [--root-dir ROOT_DIR]
                           [--train-meta TRAIN_META] [--test-meta TEST_META]
                           [--thr1 THR1] [--thr2 THR2] [--lr LR]
                           [--batch-size BATCH_SIZE] [--epochs EPOCHS]
                           [--workers WORKERS]
Softlabel Proxy (Ordinal Regression) Example
python3 1-proxy_pretrain.py --mode ordinal --root-dir ./data/proxy/ 
                            --train-meta ./metadata/proxy_metadata_train.csv
                            --test-meta ./metadata/proxy_metadata_test.csv
                            --batch-size 50 --epochs 100 
Nightlight Proxy (Pearson Maximization) Example
python3 1-proxy_pretrain.py --mode nightlight --root-dir ./data/unified/ 
                            --train-meta ./metadata/korea_nightlight_proxy.csv
                            --batch-size 256 --epochs 20 

Step 1-B. Data Pruning


2-data_pruning.py

Pruning uninhabited images using Step 1 ordinal regression model

usage: 2-data_pruning.py [-h] [--model MODEL] [--thr1 THR1] [--thr2 THR2]
                         [--path PATH]
Data Pruning Example
python3 2-data_pruning.py --model ./model/proxy_ordinal.ckpt --path ./data/pruned

Step 2-A. Fine-Tuning


3-fine_tuing.py

Fine-tuning Step 1 models using deepcluster algorithm

usage: 3-fine_tuing.py [-h] [--mode MODE] [--m-path M_PATH]
                       [--proxy-meta PROXY_META] [--cluster-meta CLUSTER_META]
                       [--proxy-root PROXY_ROOT] [--cluster-root CLUSTER_ROOT]
                       [--proxy-batch PROXY_BATCH]
                       [--cluster-batch CLUSTER_BATCH] [--thr1 THR1]
                       [--thr2 THR2] [--lr LR] [--epochs EPOCHS]
                       [--c-num C_NUM]
Softlabel Proxy (Ordinal Regression) Fine-Tuning Example
python3 3-fine_tuing.py --mode ordinal --m-path ./model/proxy_ordinal.ckpt 
                        --proxy-meta ./metadata/proxy_metadata_train.csv
                        --cluster-meta ./metadata/total_metadata.csv
                        --proxy-root ./data/proxy/ --cluster-root ./data/pruned/
                        --proxy-batch 40 --cluster-batch 256 --c-num 30
Nightlight Proxy (Pearson Maximization) Fine-Tuning Example
python3 3-fine_tuing.py --mode nightlight --m-path ./model/proxy_nl.ckpt 
                        --proxy-meta ./metadata/korea_nightlight_proxy.csv
                        --cluster-meta ./metadata/total_metadata.csv
                        --proxy-root ./data/unified/ --cluster-root ./data/pruned/
                        --proxy-batch 256 --cluster-batch 256 --c-num 30

Step 2-B. Feature Extraction


4-extract_feature.py

Extractiong local level score or district embedding feature

usage: 4-extract_feature.py [-h] [--mode MODE] [--m-path M_PATH]
                            [--metadata METADATA] [--root ROOT] [--thr1 THR1]
                            [--thr2 THR2]
Score Feature Extraction Example
python3 4-extract_feature.py --mode score -m-path ./model/proxy_ordinal.ckpt
                             --metadata ./metadata/kr_entire_demographics.csv
                             --root ./data/pruned/
District Embedding Feature Extraction Example
python3 4-extract_feature.py --mode embedding -m-path ./model/FEATURE_EXTRACTION_MODEL.ckpt
                             --metadata ./metadata/kr_entire_demographics.csv
                             --root ./data/pruned/

Step 3. Economic Indicator Prediction


4-extract_feature.py

Combining local-level score and district-level factor to predict economic indicator

usage: 5-eval.py [-h] [--metadata METADATA] [--item ITEM]
                 [--ensemble-list ENSEMBLE_LIST] [--score-path SCORE_PATH]
                 [--train-ratio TRAIN_RATIO] [--train-count TRAIN_COUNT]
Economic Indicator Prediction Example
python3 5-eval.py --metadata ./metadata/kr_entire_demographics.csv
                  --item ECON_ITEM (TOTPOP_CY, PP_CY, ...)
                  --ensemble-list ./district_summary/ensemble_list.txt
                  --score-path ./local_score/local_score.csv
                  --train-ratio 0.8 --train-count 100

Result

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published