-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.yaml
More file actions
290 lines (245 loc) · 10.4 KB
/
Copy pathconfig.yaml
File metadata and controls
290 lines (245 loc) · 10.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
# Bridge Importance Scoring MVP Configuration
# 山口市1316橋の重要度スコアリング設定
# データパス設定
data:
bridge_list: "data/Bridge_xy_location/YamaguchiPrefBridgeListOpen251122_154891.xlsx"
river_data: "data/RiverDataKokudo/W05-08_35_GML"
coastline_data: "data/KaigansenDataKokudo/C23-06_35_GML"
output_dir: "output/bridge_importance"
# データフィルタリング設定
filter:
# 市町村でフィルタリング(Noneで全件、文字列で特定市町村のみ)
city: "山口市" # 例: "山口市", None(全件)
city_column: "所在地" # 市町村を示す列名
# OSM データ取得設定(山口市の範囲)
osm:
# 山口市の概算範囲(EPSG:4326)
bbox:
min_lon: 131.3
min_lat: 34.1
max_lon: 131.6
max_lat: 34.3
# または市境界ポリゴンファイルを指定
# boundary_file: "data/yamaguchi_boundary.geojson"
# 境界生成設定
boundary:
buffer_km: 1.0 # 橋梁範囲からのバッファ距離(km)
# CRS設定
crs:
geographic: "EPSG:4326" # WGS84
projected: "EPSG:6671" # JGD2011 / 平面直角座標系 第3系 (距離計算用)
# グラフ構築設定
graph:
# データ取得設定
fetch:
buildings: true # 建物データを取得するか
bus_stops: true # バス停データを取得するか
residences: true # v1.5: 住居データを取得するか
medical: true # v1.5: 医療施設データを取得するか
shops: true # v1.5.6: 商店データを取得するか(経済指標用)
parks: true # v1.5.7: 公園データを取得するか(環境指標用)
# 道路ネットワーク
street:
network_type: "drive" # 自動車通行可能な道路
simplify: true
# 近接関係の閾値(メートル)
proximity:
bridge_to_street: 30 # 橋梁→道路スナップ距離
bridge_to_building: 1000 # 橋梁→建物の影響範囲
bridge_to_bus_stop: 800 # 橋梁→バス停の影響範囲
bridge_to_public: 1500 # 橋梁→公共施設の影響範囲
bridge_to_residence: 1000 # 橋梁→住居の影響範囲(v1.5新規)
bridge_to_medical: 1500 # 橋梁→医療施設の影響範囲(v1.5新規)
bridge_to_river: 50 # 橋梁→河川の近接判定
bridge_to_coast: 5000 # 橋梁→海岸線(塩害リスク)
bridge_to_shop: 1000 # 橋梁→商店 v1.5.6 新規
bridge_to_park: 1500 # 橋梁→公園 v1.5.7 新規
# 建物分類タグ
building_categories:
residential:
- "house"
- "residential"
- "apartments"
hospital:
- "hospital"
- "clinic"
school:
- "school"
- "university"
- "kindergarten"
public:
- "townhall"
- "library"
- "community_centre"
emergency:
- "fire_station"
- "police"
# POI取得タグ
poi_tags:
bus_stop:
highway: "bus_stop"
residence: # v1.5新規: 住居建物
building:
- "residential"
- "house"
- "apartments"
medical: # v1.5新規: 医療施設
amenity:
- "hospital"
- "clinic"
- "doctors"
shop: # v1.5.6新規: 商店(経済指標用) ← 追加
shop: True # 全商店タイプを取得 ← 追加
park: # v1.5.7新規: 公園・緑地(環境指標用) ← 追加
leisure: # ← 追加
- "park" # ← 追加
- "garden" # ← 追加
- "nature_reserve" # ← 追加
- "playground" # 追加
hospital:
amenity: "hospital"
school:
amenity:
- "school"
- "university"
- "kindergarten"
public_facility:
amenity:
- "townhall"
- "library"
- "community_centre"
emergency:
amenity:
- "fire_station"
- "police"
# 媒介中心性計算設定
centrality:
normalized: true
endpoints: false
# サンプリング設定(大規模グラフの場合)
k: 500 # サンプルノード数(Noneで全ノード)
# 並列計算設定(パフォーマンス最適化)
# ⚠️ 注意: 小~中規模グラフではオーバーヘッドが大きく、並列版の方が遅い可能性あり
# 実グラフ(117,582ノード)での効果は要検証(benchmark_real_graph_centrality.py で測定)
use_parallel: false # true: 並列版を使用, false: 標準版(NetworkX)を使用
n_jobs: -1 # 並列ワーカー数(-1で全CPU使用)
# スコアリング設定
scoring:
# スコア範囲
min_score: 0
max_score: 100
# 重みづけ(将来的な拡張用)
weights:
betweenness: 0.6 # 媒介中心性
public_access: 0.2 # 公共施設アクセス
traffic_volume: 0.2 # 交通量(代理変数)
# 説明文生成設定
narrative:
# スコア閾値による分類
thresholds:
critical: 90 # 最上位クラス
high: 70 # 高重要度
medium: 50 # 中程度
# v1.5 社会的影響指標設定
social_impact:
# 社会的影響スコアリングの有効化(true/false)
enable: true # v1.5機能を有効化(住居・医療データ取得済み)
# 並列処理設定
n_jobs: -1 # 並列ワーカー数(-1で全CPU使用)
# サンプリング設定(パフォーマンス最適化)
residence_sample_size: 300 # 交通砂漠計算時の住居サンプル数(全3,276件から300件に削減→11倍高速化)
# 🚀 空間限定パラメータ(v1.5.1: 99.5%計算量削減)
bridge_impact_radius_km: 5.0 # 橋梁影響範囲の半径(km)各橋から半径内の住居のみ計算
k_nearest_bus_stops: 5 # 各住居から確認する最近傍バス停数(k-NN)
# 🚀 v1.5.2: 医療アクセス空間最適化パラメータ(93%計算量削減)
k_nearest_hospitals: 3 # 各住居から確認する最近傍病院数(空間距離で事前選定)
# 🚀 v1.5.3: 孤立リスク空間最適化パラメータ(99.3%計算削減)
# 🚀 v1.5.5: 影響範囲を3kmに縮小(サブグラフサイズ60%削減、4-6倍高速化)
isolation_check_radius_km: 3.0 # 孤立リスク評価の影響範囲(橋梁から半径3km)
# 🆕 v1.5.6: 経済指標(物流サプライチェーン)パラメータ
supply_chain_radius_km: 3.0 # 国道→商店のサプライチェーン影響範囲(km)
k_nearest_highways: 3 # 各商店から確認する最近傍国道ノード数
# 🆕 v1.5.7: 環境指標(緑地アクセス)パラメータ
green_space_radius_km: 3.0 # 住居→公園のアクセス影響範囲(km)
k_nearest_parks: 3 # 各住居から確認する最近傍公園数
# 徒歩移動設定
walking_speed_kmh: 3.0 # 高齢者を考慮した徒歩速度(km/h)
transit_desert_threshold_km: 1.0 # 交通砂漠判定閾値(徒歩20分相当)
# 郊外・山間部の定義
rural_population_density: 200 # 人口密度閾値(人/km²)
rural_elevation_threshold: 100 # 標高閾値(m)
# 人口推定設定
household_size: 2.5 # 平均世帯人数(人/世帯)
# 医療アクセス設定
hospital_metapath_num_targets: 3 # 各住居から最寄りN病院を対象
# スコア重み(5指標の合算)v1.5.6/v1.5.7で拡張
weights:
transit_desert: 0.20 # 生活指標(交通砂漠)
hospital_access: 0.20 # 医療指標(病院アクセス)
isolation_risk: 0.20 # 防災指標(孤立集落リスク)
supply_chain_impact: 0.20 # 経済指標(物流サプライチェーン)v1.5.6
green_space_access: 0.20 # 環境指標(緑地アクセス)v1.5.7
# 標高データ設定
elevation_dir: "data/Topographical_Altitude_YamaguchiCity"
elevation_max_distance_m: 50.0 # 標高付与時の最大検索距離(m)
# HGNN設定(v1.1+)
hgnn:
# v1.6 実験名(output/<experiment_name>/ に保存)
experiment_name: "hgnn_v1_6_exp13_metapath_attention"
# モデルタイプ: 'standard' or 'simple'
model_type: "standard"
# v1.6 ターゲット変数(間接被害スコア)
target_column: "indirect_damage_score"
# v1.3 k-NN特徴量設定
knn_k: 64
knn_max_distance_m: 1000
# v1.4 Exp-2: bridge-streetエッジ再定義
bridge_edge_mode: "knn" # "graph"(既存) or "knn"
bridge_edge_knn_k: 3
use_edge_attr: false
edge_distance_scale_m: 500.0
# v1.6 メタパス特徴量
use_metapath_features: true # グラフトポロジーに基づくメタパス特徴量を使用
# 特徴量処理
normalize_features: true # 特徴量を正規化(StandardScaler)
remove_zero_variance: true # 分散ゼロの特徴を除去
# モデルハイパーパラメータ
hidden_channels: 128 # BEST: 精度とメモリ効率の最適バランス
num_layers: 3 # BEST: 3層が最適(4層は過学習、5層は回復だがコスト高)
conv_type: "SAGE" # 'GAT' or 'SAGE' (SAGEが圧倒的優位)
sage_aggr: "max" # BEST★: max aggregationが最重要(R²=0.8939達成)
dropout: 0.3 # BEST: 過学習防止と性能のバランス
heads: 4 # GAT attention heads
# v1.6 exp11-13: SAGE + Attention実験
attention_type: "metapath" # 'none', 'simple' (exp11), 'gatv2' (exp12), 'metapath' (exp13)
# トレーニング設定
num_epochs: 300
learning_rate: 0.001
weight_decay: 0.0005
patience: 50 # Early stopping patience
use_log1p_target: false # v1.6: indirect_damage_scoreは生スケールで学習(0-89範囲)
loss_function: "huber" # 損失関数: "mse" or "huber"
use_weighted_loss: true # Exp-4再調整で有効
weight_alpha: 3.0 # 重みの強度: weight = 1 + alpha * y_normalized
weight_scheme: "quantile" # linear or quantile
quantile_edges: [0.5, 0.8, 0.9]
quantile_weights: [1.0, 1.2, 1.6, 2.2]
# データ分割
train_ratio: 0.7
val_ratio: 0.15
test_ratio: 0.15
random_seed: 42
# 公共施設の閾値
public_facility_threshold: 3 # この数以上で「集中」と判定
# リスク判定
risk:
salt_damage_distance: 3000 # 海岸線からこの距離以内で塩害リスク
flood_risk: true # 河川近接で洪水リスク
# ログ設定
logging:
level: "INFO"
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
# 処理設定
processing:
parallel: true
n_jobs: -1 # -1で全コア使用