본문 바로가기

전체 글

(125)
P-NP 문제 캐글의 유명한 예제 중 하나인 타이타닉 문제에 대한 커널을 정리하다 NP라는 용어를 다시 접하게 되어, 다시 한 번 내용을 정리하기 위해 찾아보던 도중 이곳의 글을 읽게 되었습니다. 내용의 설명이 제가 봤던 어느 것보다 명쾌하면서 깔끔했기에 아래의 글들은 그저 다시 한 번 내 손으로 타이핑할 목적으로 정리하였습니다. 때문에 해당 링크로 가시면 가장 좋은 P-NP문제에 대한 답을 얻을 수 있을 것 같습니다. 현실적 알고리즘을 사용함에 있어서 드는 그 비용이 현실적으로 가능하다면, 그 알고리즘을 현실적인 알고리즘이라고 칭합니다. 알고리즘의 실행비용, 그러니까 복잡도가 입력 크기($ n $)에 대해 상수($ k $)승을 가진다면($ n^k $) 현실적이라고 합니다. 예를 들어, $ O(n^2) $ 혹은 $ O..
분류 성능평가 우리가 어떤 데이터셋에 대한 모델을 구축한 뒤 가장 중요한 것은 모델의 적합성을 구체적인 수치로써 평가하는 것입니다. 그러나 대부분의 초심자들은 단순한 정확도(Accuracy)에만 집중할 뿐, 자신의 시나리오에 가장 적절한 메저(Measure)를 선택해야함을 잊곤합니다. 때문에 오늘은 모델의 성능을 평가에 대한 내용을 다뤄보겠습니다. Confusion Matrix 분류 모델의 성능을 평가하는 메저는 여러가지가 있습니다만, 그것들을 계산하는 기반이 되는 것은 아래의 Confusion Matrix입니다. Predicted class P N Actual Class P True Positive (TP) False Negative (FN) N False Positive (FP) True Negative (TN) ..
휴리스틱(Heuristic) 머신러닝을 공부하다보면 이따금 휴리스틱(Heuristic)이라는 단어를 접하곤 합니다. 때문에 이번에는 휴리스틱이 무엇인지, 어떻게 쓰이고 있는지에 대해 정리해보고자 합니다. 휴리스틱? 찾아내다(find out) 그리고 발견하다(discover) 라는 의미를 가진 휴리스틱이라는 단어는 다른말로 발견법이라고도 불립니다. 휴리스틱이란 어떤 문제가 있을 경우, 해당 문제를 해결할 수 있는 방법이 증명되지 않았을 때, 시행착오를 거쳐가며 경험 또는 직관을 활용해 충분히 효율적인 해답을 유추해나가는 기법을 의미합니다. (말인 즉슨 누군가 어떤 문제에 대한 해결책을 제시하였지만, 올바른 것인지에 대한 수학적 증명이 없다면 그것은 휴리스틱한 것이고, 증명이 된다면 그것은 휴리스틱하지 않은 것입니다.) 이는 사실 인간..
결측치(Missing Value) 처리 데이터를 다루다보면 필연적으로 결측치(Null, NaN, Na 등)를 만나게 됩니다. 학습초기에는 그저 이렇게하면 되지 않을까 싶은데로 데이터를 처리해왔었는데 관련된 가이드라인이 있어 정리하고자 합니다. 결측치의 처리는 대개 아래의 과정을 쫓게됩니다. 결측치 유형 파악 결측치 유형에 따른 처리 방법 선택 1.결측치 유형 파악 우선, 결측치는 아래 3개의 종류으로 분류됩니다. 완전 무작위 결측(MCAR: Missing Completely At Random) : X1, X2, X3라는 특성이 있다고 가정합시다. 이 때, X2열의 결측치가 X1, X2, X3열의 다른 값들과 아무런 상관관계가 없을 경우, 이를 완전 무작위 결측이라고 합니다. 대부분의 결측치 처리 패키지는 이러한 유형의 결측치를 대상으로 하고 ..
머신러닝(Machine Learning) 과 딥러닝(Deep Learning) 머신러닝 vs 딥러닝? 빅데이터와 인공지능. 이 두가지 키워드를 공부하기 시작한지 벌써 1년이 다되어 갑니다. 그럼에도 불구하고 가끔 저 둘의 핵심적인 차이가 혼동되는 경우가 생겨 오늘을 빌어 깔끔이 정리를 해두고자 합니다. 시작부터 주제를 벗어나는 것일 수 있겠습니다만, 딥러닝, 머신러닝의 차이에 대해 생각해 보기전 컴퓨터 사이언스와 데이터 사이언스를 비교해보겠습니다. 다음과 같은 문제를 떠올려 봅시다. a,b 인풋을 사용하여 a+b 아웃풋을 얻고자 한다. 이를 위한 함수는 어떻게 정의하여야 하는가 기존의 컴퓨터를 이용한 문제 해결 방식인 컴퓨터 사이언스는 위의 문제를 해결할 함수를 사람이 직접 수식을 코드로써 구현하면 다음부터는 해당 계산을 컴퓨터가 처리할 뿐이었습니다. 사람이 함수를 구성해주어야만 ..