PART 08 / CHAPTER 28
28 · 공원 후보지 평가와 가중치 민감도
후보지 점수의 가정과 가중치에 따른 순위 변화를 확인합니다.
이 페이지에서
학습 목표: 후보지 점수의 가정과 가중치에 따른 순위 변화를 확인합니다.
준비: 실행 환경 · 도구와 용어. 예제 자료는 별도 표시가 없는 한 합성 자료입니다.
개념
다기준 평가는 접근성, 녹지 부족, 경사, 비용 같은 서로 다른 지표를 함께 검토하는 방법입니다. 값의 방향과 단위를 맞춘 뒤 가중합을 계산할 수 있습니다. 법적 제한·불가능 조건은 낮은 점수로 보상하기보다 사전 제외 조건으로 분리하는 편이 명확합니다.
가중치는 분석자의 가치 판단입니다. AI가 자동으로 보장하는 정답이 아니며 순위가 얼마나 쉽게 바뀌는지 민감도를 확인해야 합니다.
왜 필요한가
한 가지 가중치에서 1위라는 이유만으로 설계 후보지를 확정하면 의사결정이 불투명해집니다. 접근성을 더 중시하는 경우와 녹지 부족을 더 중시하는 경우를 비교하세요.
핵심 API
NumPy 배열의 행은 후보지, 열은 방향을 통일한 지표로 놓습니다. scores = indicators @ weights로 가중합을 계산하고, 제외 대상은 순위에서 분리합니다. min-max 정규화는 max=min일 때의 처리와 기준 모집단을 정해야 합니다.
최소 실행 예제
import numpy as np
names = np.array(["A", "B", "C"])
# Both indicators: larger = preferred; values are synthetic.
indicators = np.array([[0.9,0.2], [0.5,0.8], [0.8,0.8]])
feasible = np.array([True, True, False])
for weights in (np.array([0.7,0.3]), np.array([0.3,0.7])):
scores = indicators @ weights
scores[~feasible] = -np.inf
winner = names[scores.argmax()]
print("weights:", weights, "scores:", scores, "winner:", winner)
assert names[(indicators @ [0.7,0.3])[:2].argmax()] == "A"
assert names[(indicators @ [0.3,0.7])[:2].argmax()] == "B"
조경·도시 실무 예제
C는 점수가 좋아도 제외 조건에 걸린 합성 후보입니다. A와 B는 가중치에 따라 순위가 바뀝니다. 실제 조경 프로젝트에서는 토지 소유·현장 접근·생태 조사·계획 조건을 검토한 뒤 평가 범위를 정합니다.
시각화와 결과 읽기
후보별 두 지표 막대와 가중치별 순위 표를 함께 제시하세요. 소수점 많은 단일 점수만 지도에 보여 주면 불확실성이 가려집니다.
흔한 오류
거리처럼 작을수록 좋은 지표의 방향을 반대로 바꾸지 않으면 점수가 역전됩니다. 같은 의미의 상관 지표를 여러 개 넣으면 중복 가중이 됩니다. 결측값을 무조건 0으로 대체하지 않습니다.
연습문제
접근성 가중치를 0부터 1까지 바꾸고 A/B의 순위가 뒤집히는 지점을 계산하세요.
전체 예제 내려받기 · 실행: python chapter28.py
다음 단계
29 · NumPy에서 PyTorch 텐서로로 이어집니다.
출처
NumPy 배열 내적. 확인 2026-09-30.
