페이지

2022년 2월 21일 월요일

PlantUML 간단하게 사용하기

PlantUML 간단하게 사용하기

UML 다이어그램을 그릴 때 사용할 수 있는 PlantUML을 PC에 설치하고 이미지 파일을 생성하는 방법을 소개합니다.

1. 설치하기

  1. Java 설치
  2. plantuml.jar 다운로드

2. 실행하기

2.1. 텍스트 파일 작성

텍스트 파일 sequenceDiagram.txt을 만들고 PlantUML 문법으로 아래와 같이 내용을 작성하여 저장합니다.

@startuml
Alice -> Box: test
@enduml

2.2. 이미지 파일 생성

위에서 작성한 텍스트파일로 다이어그램 파일을 생성하는 방법 두 가지를 소개합니다.

2.2.1. 명령 프롬프트에서 생성하는 방법

java -jar plantuml.jar sequenceDiagram.txt

텍스트 파일에서 한글을 사용하였고 UTF-8로 저장하였다면 아래와 같이 파일 인코딩 형식을 지정하여 실행하면 다이어그램에서 한글이 정상적으로 표시됩니다.

java -Dfile.encoding=UTF-8 -jar plantuml.jar sequenceDiagram.txt

위 명령을 수행하면 해당 디렉토리에 sequenceDiagram.png 이미지 파일이 생성됩니다.

2.2.2 GUI에서 생성하는 방법

java -jar plantuml.jar -gui

GUI 프로그램은 작업 디렉토리의 변경을 자동으로 감지하고 이미지 파일을 생성해 줍니다.

참고 자료

Written with StackEdit.

2022년 2월 3일 목요일

진단 성능 평가 지표

진단 성능 평가 지표

혼동행렬(Confusion Matrix)

진단 장비의 성능을 파악하기 위하여 질병의 유무를 알고 있는 사람들을 대상으로 진단을 수행하고 아래와 같이 혼동행렬을 작성합니다.

  • A: 진양성(True Positive) 수
  • B: 위양성(False Positive) 수
  • C: 위음성(False Negative) 수
  • D: 진음성(True Negative) 수

성능 평가

민감도(Sensitivity)

질병이 있는 사람을 양성으로 판정하는 정도를 민감도(sensitivity)라고 하며 아래와 같이 구합니다.

  • 민감도 = AA+C\frac{ A } { A+C }

특이도(Specificity)

질병이 없는 사람을 음성으로 판정하는 정도를 특이도(specificity)라고 하며 아래와 같이 구합니다.

  • 특이도 = DB+D\frac{ D }{ B+D }

재현율(Recall)

민감도와 같습니다.

  • 재현율 = AA+C\frac{ A }{ A+C }

정밀도(Precision)

  • 정밀도 = AA+B\frac{ A }{ A+B }

정확도(Accuracy)

  • 정확도 = A+DA+B+C+D\frac{ A+D }{ A+B+C+D }

성능 지표

AUC ROC

양성, 음성 판단 기준을 변경하면 혼동행렬에서 A, B, C, D의 값이 달라지고 이것은 민감도와 특이도가 변한다는 것을 의미합니다. 그래서 양성, 음성 판단 기준을 조정해 가면서 아래와 같은 민감도, 특이도 그래프를 그릴 수 있습니다.

  • TP 비율(True Positive Rate) = 민감도
  • FP 비율(False Positive Rate) = 1 - 특이도

그래프 곡선 아래의 면적을 구함으로써 성능 평가 지표인 AUC(Area Under the Curve) ROC(Receiver Operating Characteristic)를 구합니다. 아래 그림의 그래프를 살펴 보면 AUC가 클수록 낮은 FP 비율을 유지하면서도 더 높은 TP 비율을 보여줍니다. 즉 서로 다른 두 장비의 진단 성능을 비교할 때 AUC가 큰 쪽의 진단 성능이 더 좋다고 말할 수 있습니다.

F1 Score

양성, 음성 판단 기준을 변경하면 혼동행렬에서 A, B, C, D의 값이 달라지고 이것은 Recall과 Precision이 변한다는 것을 의미합니다. 위양성과 위음성을 모두 고려하여 성능을 평가할 때 아래와 같이 계산한 F1 Score를 사용할 수 있습니다.

  • F1 Score = 2×Recall×PrecisionRecall+Precision2 \times \frac{ Recall \times Precision }{ Recall+Precision }

이것은 재현율과 정밀도의 조화평균과 같습니다.

Written with StackEdit.

독일 V2 로켓과 런던 폭격 - 푸아송 분포 응용

독일 V2 로켓과 런던 폭격 - 푸아송 분포 응용 관심사는 V2 로켓에 의한 런던 폭격 지점의 분포와 푸아송 분포 응용 사례였는데 우연히 접한 기사를 흥미있게 읽다가 오류로 의심되는 부분을 발견하고 이를 확인하는 ...