세미나

세미나

Seminar

220404

Classification strategies in machine learning techniques predicting regime changes and durations in the Lorenz system

Google Drive

원드라이브



줄리아에서 다른 파일에 정의한 함수 사용하는 법 include How to Load Functions in Other File in julia


줄리아 StatsPlot @df

https://github.com/JuliaPlots/StatsPlots.jl


줄리아에서 마커와 라인 스타일 목록


줄리아에서 문자열의 일부만 슬라이싱하는 법 성능상의 이유가 있다 https://discourse.julialang.org/t/weird-string-slicing-in-korean/92252/2


줄리아 데이터프레임에서 String7, String15 등 없애는 법 https://discourse.julialang.org/t/new-string7-type-from-result-of-csv-file-dataframe-makes-my-function-failing-which-takes-a-string-as-input/68985/2

많이 불편해보이지만 사실 성능상의 이유로 있는거니까 이해 좀 해줘


줄리아 0으로 나누었을 때 Inf와 NaN의 차이

julia> 0/0
NaN

julia> 1/0
Inf

x = rand(100) scatter(x, 2x .+ 0.1randn(100), smooth = true)


x = (; dims = 2) sum(rand(100,100); x…)

데이터과학에서 정확도가 과대평가 되는 상황

When Accuracy is Overestimated in Data Science


데이터과학에서 정밀도란? Precision in Data Science

정의

양성Positive $P$ 와 음성Negative $N$ 을 구분하는 분류문제에서 양성과 음성을 판정하는 모델이 주어져 있다고 하자. 양을 양으로 판정한 수를 참양성True Positive $TP$, 음을 음으로 판정한 수를 참음성True Negative $TN$, 양을 음으로 잘못 판정한 수를 위음성False Negative $FN$, 음을 양으로 잘못 판정한 수를 위양성False Positive $FP$ 라 하자.

수식적인 정의

다음의 수치를 모델의 정밀도Precision라 한다. $$ \textrm{Precision} := {{ TP } \over { TP + FP }} $$

설명

정밀도란 양성을 양성이라고 찍었을 때 얼마나 확실한지를 나타내는 척도다. 정확도Accuracy와 단어가 비슷하고 사전적으로는 의미도 거의 같은데, 헷갈릴 바에는 차라리 영어 발음 그대로인 애큐러시(정확도)와 프리시전(정밀도)으로 외우는 게 낫다.

정밀도가 중요한 상황

이상의 고찰에서 우리는 정확도만이 분류문제의 모델을 평가하는 지표가 아님을 납득할 수 있을 것이다. 모델이 스스로 “내 정밀도가 높다"고 말하는 것은 “내가 양성이라고 했으면 그건 확실하다"고 주장하는 것과 같다. 정밀도는 흔히 1종 오류가 더 심각한 상황에 퍼포먼스의 척도로서 고려될 수 있다:

  • 스팸 메일: 정밀도가 중요한 상황에서 가장 많이 언급되는 예시인데, 스팸 메일 여부가 양성이라면 이걸 걸러낼 때 상당한 확신이 있어야한다. 메일함에 스팸 메일 좀 쌓이는 걸로 큰 일이 나지는 않지만, 사용자에게 반드시 전달되어야 하는 정보가 스팸 필터의 오분류에 의해 전달되지 않는 것은 심각한 문제를 야기할 수 있다.
  • 법적 판결: 아직 법에 의한 판결은 기계 모델에게 완전히 대체되지 않았지만, 유죄를 양성으로 둘 때 판사는 무죄냐 유죄냐를 가리는 이진분류문제를 푸는 사람이라 보아도 무방하다. 어떤 판사 A의 정밀도라는 게 100%라고 한다면, 그건 판사가 이 사회에 풀어준 흉악범이 몇인지는 몰라도 무고한 사람을 잡아넣은 적은 없다는 말과 같다. 적어도 법에 있어서 ‘대부분의 판결이 정확한 것’은 ‘무고한 희생자를 내지 않는 것’보다 가치 있다고 말하기 어렵다.

정밀도가 과대평가되는 상황

정확도가 만능이 아니듯 정밀도 역시 만능이 아니다. 정밀도의 분모를 보면 $(TP + FP)$ 로써 참양성이든 위양성이든 ‘양성이라고 판정한 횟수’가 분모가 된다. 이는 데이터와 상관없이 분모가 작아질 수 있다는 의미로, 실제로 양성인 표본이 몇 개가 있든 양성 판정 자체를 보수적으로 내려 수치가 조작될 가능성이 있다.

예를 들어 모델 A가 100개의 양성 표본 중 9개를 양성으로 판정하고 하나를 헛짚었다면 그 정밀도는 $$ {{ 9 } \over { 9 + 1 }} = 90 \% $$ 가 된다. $90 \%$ 면 그래도 꽤 괜찮아 보이지만 나머지 91개의 양성 표본이 싸그리 무시됐다. 한편 또다른 모델 B는 90개의 양성 표본을 양성으로 판정하고 나머지 10개를 헛짚어서 정밀도가 $$ {{ 90 } \over { 90 + 10 }} = 90 \% $$ 라고 하자. A과 B는 정밀도 측면에서 동등한 퍼포먼스를 낸 것으로 평가받으며, 이는 B에게 공평하지 않아보일 수 있다. 그러나 엄밀히 말해 이들의 정밀도는 곡해되지 않았는데, 어쨌거나 양성이라고 판정 했을 때의 믿을만한 정도는 동일하게 측정된 것이고 그 해석 자체는 틀린 게 없다.

그럼에도 ‘A보다 B가 낫다’고 느껴진다면 정밀도가 어떻게 과대평가 되었는지를 이해한 것이다. 속된 말로 A는 쫄보라서, 신중은 한데 좀 답답한 것이다.


데이터과학에서 재현도란? Recall in Data Science

정의

양성Positive $P$ 와 음성Negative $N$ 을 구분하는 분류문제에서 양성과 음성을 판정하는 모델이 주어져 있다고 하자. 양을 양으로 판정한 수를 참양성True Positive $TP$, 음을 음으로 판정한 수를 참음성True Negative $TN$, 양을 음으로 잘못 판정한 수를 위음성False Negative $FN$, 음을 양으로 잘못 판정한 수를 위양성False Positive $FP$ 라 하자.

수식적인 정의

다음의 수치를 모델의 재현도Recall라 한다. $$ \textrm{Recall} := {{ TP } \over { P }} $$

설명

재현도란 양성을 얼마나 빠짐 없이 찾아내는지를 나타내는 척도로써, 모델이 양성을 찾아내는 능력의 재현성을 수치화한 것이다. 또 다른 이름으로는 민감도Sensitivity가 있다. 굳이 따지자면 통계학쪽에서는 민감도, 컴퓨터공학 및 머신러닝 쪽에서는 재현도라는 표현을 비교적 선호한다.

재현도가 중요한 상황

이상의 고찰에서 우리는 정확도만이 분류문제의 모델을 평가하는 지표가 아님을 납득할 수 있을 것이다. 모델이 스스로 “내 재현도가 높다"고 말하는 것은 “내가 못 찾은 양성은 없다"고 주장하는 것과 같다. 재현도는 흔히 2종 오류가 더 심각한 상황에 퍼포먼스의 척도로서 고려될 수 있다:

  • 정보 검색: 인터넷은 정보의 바다인데, 그 중에서 내가 관심을 가지는 문서의 양은 그 분야가 무엇이든 전체에 비해 극히 일부분이라고 확신할 수 있다. 어떤 문서가 내가 준 쿼리Query와 관련이 있을 때 양성이라고 한다면, 검색 엔진의 중요한 능력 중 하나는 그 수많은 문서 중에서 내 관심사에 맞는 양성 문서를 가능한 많이 찾아내는 것에 있다.
  • 암 진단: 요즘은 의학의 발달에 따라 나름 암을 치료할 수 있다고 하지만, 그것도 초기에 잡느냐 죽기 직전에 도박을 하느냐는 많은 부분에서 다르다. 특히 초기 암의 경우 대부분 어떤 통증이나 장애를 일으키지 않기 때문에 증상이 있든 없든 경계를 하고, 작은 증거라도 민감하게Sensitively 잡아낼 필요가 있다. 만약 위양성이라면 빠른 시일 내에 정밀 진단을 해보면 될 일이지만, 아무 증상 없는 암 환자를 놓치는 경우 다음 암 진단은 ‘증상이 생길 정도’로 암이 진행된 이후일 것이다.

재현도가 과대평가되는 상황

정확도가 만능이 아니듯 재현도 역시 만능이 아니다. 재현도의 수식을 보면 위양성 $FP$ 에 대한 어떠한 패널티도 지고 있지 않은 걸 알 수 있는데, 이는 극단적으로 말해 어떤 데이터에서든 반드시 100%의 재현도를 가지는 모델의 존재성을 내포한다. 몇 개를 틀렸든 양성만 다 찾아내는 게 지상목표라면 그냥 어떤 샘플이든 덮어놓고 양성이라 찍으면 그만이기 때문이다.

예를 들어 모델 A가 1000개의 표본 중 10개의 양성 표본이 있는 데이터에서 9개를 양성으로 판정하고 하나를 헛짚었다면 그


같이보기

댓글