본문 바로가기

소스코드가있는글21

cubic spline interpolation cubic spline은 주어진 점을 매끄럽게 연결하는 알고리즘이다. 왜 cubic 이냐 하면, 두 점을 잇는 곡선을 3차 다항식(a0 + a1x + a2x2 + a3x3)으로 사용하기 때문이다. 즉, 다시 말해, 서로 떨어져 있는 두 점 사이를 연결해야 하는데(그래서 interpolation), 그 연결하는 선을 3차 다항식으로 만들고자 하는 것이다. 이와 같은 목적에 부합하는 알고리즘 중 널리 사용되는 것의 원리는 다음과 같다. 우리가 갖고 있는 점은 위의 녹색점 뿐이라고 하자. 그 중간을 곡선으로 매끄럽게 연결하고 싶다. 즉, 각 데이터 xi, xi+1은 곡선 Si로 연결을 시키는데, 각 Si가 3차 다항식이라고 가정하는 것이다. 이 상황에서, 각 xi+1에서 두 곡선 Si와 Si+1이 부드럽게 연.. 2010. 1. 11.
파일 목록 가져 오기 일반화 시키기 python의 glob과 같은 기능, 즉 정해진 경로 안에 있는 파일 목록을 모두 얻어 오는 기능은 빈번하게 사용되는 기능임에도 불구하고 STL이나 MFC/API에는 이에 관한 기능이 하나의 함수로 제공되지 않는 것으로 보인다. 대신 FindFirstFile, FindNextFile API를 이용하여 파일 목록을 얻어갈 수는 있다. 파일 목록을 얻어갈 때, 얻어 갈 파일의 속성으로 주로 확장자를 사용하는 경우가 많다. 즉, 확장자가 jpg 인 것이나 txt 인 것들을 얻어가는 경우처럼. 또는 특정 파일 속성, 가령 FILE_ATTRIBUTE_ARCHIVE와 같은 속성을 검사할 수도 있기는 한데, 어쨌거나 파일의 특성에 대하여 확장자나 이러한 속성만을 사용하여 파일 목록을 얻어간다는 것은 융통성이 없다. .. 2010. 1. 9.
outlier 빼고 상관계수 구하기 : Mahalanobis 거리 데이터를 분석할 때 거의 항상 문제가 되는 것이 '튀는 점', 즉 outlier 이다. 보통 1차원이고 정규분포를 따르는 데이터일 때는 아주 간단하게는 평균 ± d*표준편차 밖에 있는 점들을 outlier 라고, d 는 2나 1.96 등의 값을 사용한다. 그런데 만약 2차원 이상의 데이터라면 계산값이 조금 달라진다. 데이터 분포가 다음과 같을 때를 생각해 보자. 데이터가 위와 같은 분포를 보일 때, 중심에서의 거리는 파란색 점보다는 녹색 점이 더 먼 것으로 생각할 수 있다. 왜냐 하면, 분산이 파란색 점이 있는 축이 더 작기 때문이다. 즉, 적게 퍼져 있는 분포에서 1 먼 것과, 많이 퍼져 있는 분포에서 1 먼 것은, 상대적으로 비교해 보면 많이 퍼져 있는 곳에서 1 먼 것이 좀 더 가깝다고 할 수 있기.. 2010. 1. 4.
ROC의 AUC 구하기 1. ROC Curve란. 2. AUC 구하는 방법. 요약: 진단 방법의 효율성을 판단하는 방법 중 널리 사용되는 것이 ROC curve 이다. 민감도(sensitivity)와 특이도(specificity)가 어떤 관계를 갖고 변하는지를 이차원 평면 상에 표현한 것이 ROC curve인데, ROC curve 아래의 면적(AUC, area under curve) 이 넓을수록 좋은 진단 방법이라 할 수 있다. 이 글은 ROC curve의 AUC를 구하는 간단한 방법을 설명한다. 1. ROC Curve란. ROC Curve는 Receiver-Operating Characteristic curve의 줄임말로, 특정 진단 방법의 민감도와 특이도가 어떤 관계를 갖고 있는지를 표현한 그래프이다. 진단 방법에 의한 환.. 2010. 1. 4.