etc

etc/머신러닝 이론

랜덤 포레스트(Random Forest)

이전 포스팅에서 분류에 널리 사용되는 머신러닝 알고리즘 의사결정나무(Decision Tree)에 대해 알아보았다. 의사결정나무는 매우 훌륭한 모델이지만, 학습 데이터에 오버피팅하는 경향이 있다. 가지치기(pruning)같은 방법을 통해 그런 부작용을 최소화하는 전략이 있긴하나 역시나 좀 부족하다. 그래서 본 포스팅에서는 의사결정트리의 오버피팅 한계를 극복하기 위한 전략으로 **랜덤 포레스트(RandomForest)라는 방법을 아주 쉽고 간단하게 소개하고자 한다. 내용이 짧으니 후딱 살펴보자. 랜덤 포레스트란 랜덤 포레스트는 분류, 회귀 분석 등에 사용되는 앙상블 학습 방법의 일종으로, 훈련 과정에서 구성한 다수의 결정 트리로부터 분류 또는 평균 예측치(회귀)를 출력함으로써 동작한다. ('무작위 숲'이라는..

etc/머신러닝 이론

나이브 베이즈(Naive Bayes)를 활용한 문서 분류 예제

이전 포스팅에서 나이브 베이즈를 사용해서 텍스트를 어떻게 분류할 수 있는지 정말 간단한 예제를 통해 살펴보았다. 이번에는 파이썬 머신러닝 라이브러리 scikit-learn에서 실제로 어떻게 구현하고 동작하는지 코드를 알아볼 차례. scikit-learn 사용법 1. CounterVectorizer scikit-learn에서 Naive Bayes 분류기를 사용하기 전에 일단 자연어(텍스트)로 이루어진 문서들을 1과 0 밖에 모르는 컴퓨터가 이해할 수 있는 형식으로 변환해야 할 거다. feature extraction, 어휘(특성) 추출 과정이라 볼 수 있다. .fit() 일단 CounterVectorizer라는 객체를 만든 후, fit() 메소드를 호출해서 학습 데이터 세트에 등장하는 어휘를 가르쳐놓아야 ..

etc/머신러닝 이론

나이브 베이즈(Naive Bayes)를 확용한 문서 분류 쉽게 이해하기

나이브 베이즈 분류기(Naive Bayes Classifier)는 '베이즈 정리'를 활용하여 분류를 수행하는 머신러닝 지도학습 알고리즘이다. 특히 텍스트(문서)의 분류에 많이 사용되는데, 실제로 어떤 계산을 통해 분류하게 되는지 그 과정을 최대한 쉽게 소개해본다. 베이즈 정리 '베이즈 정리'에 대해서는 이 포스팅을 보자. 공식을 다시 살펴보자. B라는 조건이 주어졌을 때 A의 확률을 구하는 거다. 그런데 여기서 만약 B를 데이터라고 생각하고, A를 레이블이라고 생각하면 일종의 분류기가 되는 셈이다. B라는 데이터가 주어졌을 때 A라는 레이블로 분류될 확률을 계산하는 거니까. 본 포스팅에서는 어떤 쇼핑몰에 새로 작성된 리뷰를 읽고, 그게 긍정 리뷰인지 부정 리뷰인지 분류하는 예를 살펴보자. (텍스트를 분류..

etc/머신러닝 이론

베이즈 정리 (Bayes' Theorem)

머신러닝 알고리즘 나이브 베이즈 (Naive Bayes)를 사용하기 위해서는 일단 베이즈 정리(Bayes' Theorem)라는 걸 먼저 이해해야 한다. 본 포스팅에서는 베이즈 정리의 개념만 최대한 쉽고 단순하게 설명해본다. 베이즈 정리(Bayes' Theorem)는 새로운 사건의 확률을 계산하기 전에 이미 일어난 사건을 고려하는 것을 전제로 하는 베이즈(혹은 베이지안) 통계의 근간이라 할 수 있다. 뭔가 말이 어렵긴 한데 그냥 고등학교 때 배웠던 독립 사건과 조건부 확률을 떠올리면 된다. 아래 공식이 뭔가 익숙하지 않은가 영국의 수학자 앨런 튜링(Alan Turing)은 이 베이즈 정리를 활용해서 2차 세계대전 독일의 애니그마(Enigma) 암호를 풀어냈다고 한다. 아무튼 베이즈 정리는 머신러닝, 통계적..

etc/머신러닝 이론

의사결정나무(Decision Tree)

의사결정나무(Decision Tree) 각 데이터들이 가진 속성들로부터 패턴을 찾아내서 분류 과제를 수행할 수 있도록 하는 지도학습 머신러닝 모델이다. 일단 이 모델의 개념만 최대한 쉽게 설명해본다. 목차는 아래와 같다. 의사결정나무란 무엇인가 지니 불순도 (Gini Impurity) 정보 획득량 (Information Gain) scikit-learn 사용법 재귀적(Recursive) 트리 빌딩 의사결정나무의 한계 요약 의사결정나무란 무엇인가 예를 들면 이런 거다. 시험에서 A를 받은 데이터를 초록색 동그라미로 표현했다고 하자. 의사결정나무는 대체 어떤 사람들이 그 A를 받았는지 나름의 기준이나 체크리스트같은 걸 만들어준다. 그래서 새로운 데이터가 들어오면 그 체크리스트를 바탕으로 하나씩 질문하고 (예..

etc/머신러닝 이론

서포트 벡터 머신(Support Vector Machine, SVM)

서포트 벡터 머신(SVM: Support Vector Machine)은 분류와 회귀 과제에 사용할 수 있는 강력한 머신러닝 지도학습 모델이다. 일단 이 SVM의 개념만 최대한 쉽게 설명해본다. 중간중간 파이썬 라이브러리 scikit-learn을 사용한 아주 기초적인 실습을 통해 개념 이해를 돕는다. 목차는 아래와 같다. 서포트 벡터 머신이란 최적의 결정 경계 (Decision Boundary) 마진(Margin) 이상치(Outlier)를 얼마나 허용할 것인가 커널(Kernel) 다항식(Polynomial) 방사 기저 함수(RBF: Radial Bias Function) 요약 내용이 많지 않으니 후딱 살펴보자. 1. 서포트 벡터 머신이란 서포트 벡터 머신(이하 SVM)은 결정 경계(Decision Boun..

etc/머신러닝 이론

두 점 사이의 거리 공식

본 포스팅에서는 두 점 사이의 거리를 구하는 여러가지 방법을 알아본다. 그런데 거리(distance)를 왜 구해야 할까? 거리는 일종의 유사도(similarity) 개념이기 때문이다. 거리가 가까울수록 그 특성(feature)들이 비슷하다는 뜻이니까. 그래서 머신러닝 알고리즘에서도 매우 널리 사용된다. 예를 들면 K-최근접 이웃(K-Nearest Neighbor) 알고리즘 같은 데에서.. 아무튼 그래서 거리 구하는 방법은 알고 있어야 한다. 수학적으로 막 깊이 파고들 필요는 없어도 개념은 이해하고 가야 알고리즘을 이해하고 사용할 수 있다. 일단 들어가기에 앞서 코드를 통해 점의 위치를 표현하는 방법을 알아야지. 뭐 별 건 아니다. 예를 들어, 흔히 말하는 x, y축만 있는 2차원에 점을 나타내고 싶다면 ..

etc/머신러닝 이론

머신러닝에서 학습세트, 평가세트를 나누는 이유와 방법

우리는 머신러닝을 통해서 예측이나 분류를 할 수 있다. 그런데 이 예측이나 분류가 얼마나 정확한지 자문하는 것이 중요하다. 분류 모델을 만들어놨는데, 그 예측이 얼마나 맞고 틀릴지 모르니까. 지도학습(supervised learning)에서는 다행히도 이미 레이블링 된(정답이 있는) 데이터가 있기 때문에 그걸 활용해서 알고리즘의 정확도를 테스트 할 수 있다. 머신러닝 모델의 효과성을 검증하기 위해 데이터를 나눌 때 보통 아래와 같이 세 개의 개념을 이해하면 된다. Training Set (학습 세트) Validation Set (검증 세트) Test Set (평가 세트) 이 중 검증 세트와 평가 세트는 사실 유사한 개념이다. 학습 세트(Training Set)와 검증 세트(Validation Set) 학..

hyesoup
'etc' 카테고리의 글 목록 (4 Page)