본문 바로가기

머신러닝

(118)
특이값 분해(Singular Vector Decomposition, SVD) 머신러닝을 공부하다 보면 고등학생 시절, 현실과 동떨어져있다고 생각해왔던 수학이, 정말 여러 방면으로 쓰이고 있음을 깨닫습니다. 그 중 하나가 특이값 분해(Singular Vector Decomposition, SVD)입니다. 일전에 기업 협력 프로그램을 진행해보면서 한 번 사용했던 개념이었는데, 이해하는데 골머리를 썩혔던 기억이 있습니다. 유튜브를 보던 중, 최대한 수학적인 내용을 배제하고 효용있는 내용을 잘 설명하는 영상을 발견하여 공유드립니다. [SVD(Singular Vector Decomposition) 이해하기 쉽게 설명드려요!] [Stanford AI recture] 복잡한 개념인데다 수식으로 표현할 것이 많아 일단 영상만 링크해두려다, 복습도 할 겸 정말 간단히만 요약해보겠습니다. 1. 특..
머신러닝 개발의 과정 저 같은 경우에는 머신러닝을 공부하기 시작한지 약 9개월 정도가 되었는데, 운이 좋게도 공모전 2개와 기업 협력 프로그램 1개에 참여해보았습니다. 그렇게 팀을 구성하여 프로그램을 진행할 때마다 느꼈던 점은, 머신러닝을 진행하는 코드는 왠만하면 어영부영 누구든 짤 수 있지만, 어떤 방향성의 코드를 개발해나가야하는가는 굉장히 어려워했다는 점입니다. 그러던 중 발견했던 아래의 내용들이, 개인적으로는 방향성을 잡아나갈 때 항상 좋은 힌트가 되었던 것 같아, 공유하고자 합니다. 1. 데이터에 대한 탐색 - 첫째로 법적 허용에 관한 문제입니다. 데이터를 수집하다보면 정말 다양한 종류의 데이터가 존재합니다. 공공기관에서 제공하는 데이터, 인스타그램 등의 SNS에서 스크래핑해올 수 있는 데이터, 네이버 검색 기록 데이..
특성 선택(Feature Selection) 모델의 학습하는데 있어 X(특성, Feature)와 y(정답, target) 데이터셋을 사용해 훈련하는 감독 학습(Supervised learning)의 기준에서 바라볼 때, X의 개수가 다양하다는 것은 y를 예측할 힌트가 많아진다는 말 같습니다. 그러면 특성의 개수는 무작정 많다고해서 좋은것인가- 한다면, 그것은 아닙니다. 그저 많기만한 특성은 모델을 과대적합시킬 뿐일 것입니다. 머신러닝은 분명 빅데이터를 필요로 하지만, 어느정도 스케일이 갖춰졌다면, 이후부터는 항상 시나리오에 적합한 데이터의 품질(Quality)과의 싸움이 됩니다. 때문에 다양한 특성을 가진 데이터셋을 확보했다면, 그 다음은 가장 유용한 특성을 선별(Selection)하는 과정이 필요합니다. 이제, 그 선별을 어떻게 하는지, 살펴보겠..
분류 성능평가 우리가 어떤 데이터셋에 대한 모델을 구축한 뒤 가장 중요한 것은 모델의 적합성을 구체적인 수치로써 평가하는 것입니다. 그러나 대부분의 초심자들은 단순한 정확도(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) ..
결측치(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 아웃풋을 얻고자 한다. 이를 위한 함수는 어떻게 정의하여야 하는가 기존의 컴퓨터를 이용한 문제 해결 방식인 컴퓨터 사이언스는 위의 문제를 해결할 함수를 사람이 직접 수식을 코드로써 구현하면 다음부터는 해당 계산을 컴퓨터가 처리할 뿐이었습니다. 사람이 함수를 구성해주어야만 ..