본문 바로가기

데이터 분석75

Boosting 알고리즘(AdaBoost, GBM, XGBoost, LightGBM, CatBoost) 이번 포스팅은 부스팅 알고리즘에 대해 이야기 해보겠습니다. Boosting 알고리즘은 최근 Kaggle 대회에서 Deep Learning 다음으로 높은 수상 비중을 차지하고 있습니다. 그 이유는 우선 다른 모델보다 정확도가 비교적 높으며, 회귀(Regression), 분류(Classification), 순위 학습(Ranking), 텍스트 분석(NLP), 이미지 분석 등 여러가지 머신 러닝 문제를 해결하는데 사용됩니다. 다양한 오픈 소스 라이브러리와 도구를 활용할 수 있습니다. XGBoost, LightGBM, CatBoost 등이 Kaggle에서 특히 인기 라이브러리들 입니다. 또 부스팅 알고리즘은 병렬 처리와 GPU를 효과적으로 활용할 수 있는 모델 중 하나입니다. 이제 Boosting 알고리즘에 대해.. 2023. 9. 23.
랜덤 포레스트(Random Forest) 장단점 - 특성(변수) 중요도 랜덤 포레스트(random forest)에서 특성 중요도를 쉽게 측정할 수가 있는데요. 어떤 특징 때문에 가능한 것일가요? 그리고 장단점은 무엇인지 알아보도록 하겠습니다. 만약 Random Forest의 동작 원리에 대해 글을 읽지 않으셨다면 링크의 글을 읽어 보시는 것을 추천드립니다. 특성 중요도 랜덤 포레스트는 작은 트리들(trees)을 이용하는 방법을 사용해 특성의 상대적 중요도를 측정하기 쉽다는 특징이 있습니다. 랜덤 포레스트 특성 중요도는 Decision Tree 보다 더 신뢰할 만합니다. 이유는 여러 Tree를 통해 일반화 했기 때문이죠. 평균적인 불순도가 얼마나 감소하는지를 확인해 특성 중요도를 측정 가능합니다. 더 정확히 말하면 각 노드(node)의 속한 샘플의 가중치 평균이라고 계산한다고.. 2023. 9. 22.
랜덤 포레스트(Random Forest) 동작 원리 및 OOB, Random Subspace 저번 포스팅에서 Random Forest의 특징에 대해 살펴봤다면 이번 포스팅에서는  그 동작원리와 OOB 개념, 그리고 파라미터 튜닝 등에 대해 알아보도록 하겠습니다. 『 '데이널'의 컨텐츠에 포함된 정보는? 』 알고리즘 동작 원리Random Forest 알고리즘은 Bootstrap 기법(복원 추출)을 이용하여 다수 훈련 데이터 생성합니다. 이것을 이전 포스팅에서 이야기 했듯이 배깅(Bagging)이라고 합니다. 생성된 훈련 데이터로 무작위 변수를 이용한 의사결정나무 모델 구축합니다. 이것을 Random Subspace 방식이라고 하는데, 아래에 다시 다루겠습니다. 마지막으로 예측 종합(Final predicted value) 과정을 거칩니다. Bootstrap 기법으로 데이터 추출무작위 변수를 이용한.. 2023. 9. 21.
랜덤 포레스트(Random Forest) 특징 - 앙상블 이번 글에서는 랜덤 포레스트 알고리즘에 대해 알아보도록 하겠습니다. Random Forest는 앙상블 모델로 Decision Tree의 문제점을 보완하기 위해 나왔습니다. Decision Tree의 문제점은 훈련 데이터에 대해 과대적합(Overfitting) 되는 경향이 있었습니다. 데이터가 갖는 high variance 문제가 있을 때 발생하게 됩니다. 훈련 데이터에 민감한 것도 문제입니다. 계층적 구조로 인해 중간에 에러가 발생하면 다음 단계로 에러 전파 됩니다. 결국 학습 데이터의 미세한 변동에도 최종 결과에 크게 영향을 받게 됩니다. 결론적으로 일반화 과정이 필요하게 되며, Decision Tree 묶음이 바로 Random Forest입니다.  『 '데이널'의 컨텐츠에 포함된 정보는? 』 Rand.. 2023. 9. 20.
의사결정나무(Decision Tree) 종류 및 학습 - 장단점 이전 포스팅에서 의사결정나무의 특징 및 동작 원리에 대해서 알아보았다면, 이번 포스팅에서는 어떤 종류가 있고 학습은 어떻게 하는지 알아보겠습니다. 마지막에는 Decision Tree 알고리즘의 장단점에 대해 살펴 보겠습니다. 의사결정나무 모델 종류 Decision Tree는 흔히 재귀적 분할 알고리즘이라고 합니다. 재귀적이라는 말은 자기자신을 사용한다는 의미입니다. 우선 자신의 하나의 노드 내에서 하나의 변수 값을 기준으로 분기합니다. 그리고 새롭게 생성된 자식 노드들의 동질성이 최대화되도록 분기점 선택하는 원리입니다. 여기서 동질성이 불순도와 같은 개념입니다. 이전 불순도 알고리즘에서 배웠던 것처럼 불순도를 최소화하는 일을 합니다. Decision Tree 불순도 알고리즘에 대한 내용은 링크를 참고하세.. 2023. 9. 19.
의사결정나무(Decision Tree) 특징 및 동작 원리 - 불순도 알고리즘 이 글에서는 의사결정나무 알고리즘에 대해 설명해 보도록 하겠습니다. Tree 모델 중에 가장 기본이 되는 모델이기 때문에 원리를 알아 놓으면 다른 모델들의 동작원리를 유추할 수 있습니다. 우리가 많이 사용하고 있는 XGBoost, LightGBM, CatBoost 등도 모두 Tree 모델들입니다. 『 '데이널'의 컨텐츠에 포함된 정보는? 』 Decision Tree의 특징은?의사결정나무 알고리즘은 데이터 사이에 존재하는 패턴을 찾아 예측 가능한 규칙들의 조합으로 나타냅니다. 한마디로 잘게 분해한다는 이야기죠. 그 분해하는 모양이 ‘나무’와 같아서 Decision Tree라고 불립니다. 패턴을 찾아 동작하는 방식은 질문을 던져 대상을 좁혀나가는 ‘스무고개’ 놀이와 비슷한 개념으로 이해하면 좋습니다. 이러한.. 2023. 9. 18.
K-NN(Nearest Neighbor) 차원의 저주, 장단점, weighted K-NN 이전 포스팅에서 K-NN 알고리즘의 특정에 대해서 살펴 보았다면 이번 포스팅에서는 장단점과 K-NN에서 왜 차원에 저주가 나타나는지에서 대해 포스팅해 보겠습니다. K-NN에서 전처리(pre-processing) 작업은 필수적입니다. 왜냐하면 값의 범위가 큰 feature 일수록 거리 계산에 영향을 많이 주기 때문에 더 중요한 변수로 인식될 수 있습니다. 따라서 값의 범위를 맞추어 주는 Scaling, Normalization, Standardinzation 등의 방법을 적용해 주는 것이 중요합니다. K-NN의 주요 하이퍼파라미터 중 하니인 거리(distance)는 두가지 정도를 많이 사용합니다. 첫째, 유클리디안 거리(Euclidean Distance)는 두 점 사이의 최단 거리를 이용하는 것입니다. 우.. 2023. 9. 17.
K-NN(Nearest Neighbor) 알고리즘 - 사례 기반 학습 이번 포스팅은 K-Nearest Neighbor(K-최근접 이웃) 알고리즘에 대해 특징과 학습 방법에 대해 알아보도록 하겠습니다. K-NN은 K-means  알고리즘과 많이 헷갈리는데요. 이번 기회에 정확이 알고 갈 수 있었으면 합니다.   『 '데이널'의 컨텐츠에 포함된 정보는? 』 K-NN의 특징은?K-means는 비지도 학습이지만 K-NN 알고리즘은 지도학습 입니다. k-means처럼 Clustering 알고리즘이 아닙니다. 이 두 알고리즘을 혼동하기 때문에 시험에 자주 출제됩니다.  K-NN의 아이디어는 유사한 특징을 가진 데이터는 유사한 범주에 속하는 경향이 있다고 가정하는데 부터 시작되었습니다. K-NN 로직을 살펴보면 첫째, 새로운 데이터와 가장 인접한 데이터 k개를 선정합니다. 둘째, k개.. 2023. 9. 15.
[머신러닝] 로지스틱 회귀 학습 - Log Loss, 크로스 엔트로피 이번 포스팅에서는 로지스틱 회귀의 학습에 대해 설명을 드리도록 하겠습니다. 로지스틱 회귀에서 손실함수는 어떤 것을 사용할까요? 참고로 선형 회귀에 사용했던 손실함수인 최소제곱법(MSE)은 사용하지 않습니다. MSE를 사용할 경우 비선형 부분 때문에 중간에 학습을 멈추게 될 수도 있습니다. 로지스틱 회귀에서는 Log Loss(log likelihood)을 사용하여 파라미터를 최적화합니다. 보통 손실함수를 크로스엔트로피를 사용한다고 하는데, 크로스엔트로피(Cross entropy)는 negative log likelihood 입니다. Log Loss 개념 Log Loss의 개념은 모델이 예측한 확률 값을 직접적으로 반영하여 평가하는 원리 입니다. 확률 값을 음의 log 함수에 넣어 변환시킨 값으로 평가를 하.. 2023. 9. 14.