일단 머신러닝 모델을 최소한의 역량과 지식으로 사용하기 위해서는, 어떤 주어진 문제를 해결하려 할 때 어떤 모델을 적합하게 사용할 수 있을지 알아야 합니다. 일단 수식이나 복잡한 세부 내용은 조금 나중으로 미뤄두고, 각 모델들이 어떤 컨셉을 가지고 있고 어떤 문제를 해결할 때 적용하는 것이 좋은지 이해하는 것이 좋습니다. 사실 데이터셋이 있고 툴(예를 들어 태블로)만 있어도 구체적인 계산법은 몰라도 됩니다. 하지만 어떤 문제에 있어 어떤 모델로 적용해야 할 지는 잘 알아야 합니다. 그리고 우리는 툴로만 간단하게 처리하는 수준의 인사이트를 원하지는 않을 것입니다. 따라서 더 Deep하게 가고 정교하게 다듬기 위해서는 통계, 수학, 프로그래밍을 반드시 알아야 하며 더욱 세부적인 공부가 필요합니다.
일단 대략적으로 머신러닝의 회귀 모델을 이해하기 위해서 회귀 모델들의 실 사용 예시, 쉬운 개념 설명으로 이해해보도록 하겠습니다.
회귀 (Regression)는 주로 머신러닝을 배울 때, 맨 첫 부분에 위치합니다. 전체적인 로드맵을 보기 위해서는 아래 링크를 클릭하세요 :)
왼쪽(단순) 오른쪽(다항식)
단순 선형 회귀 분석은 단일 독립 변수를 사용하여 종속 변수를 예측하는 통계적 방법입니다. 한 변수가 다른 변수에 종속되어 있는 두 변수 간의 관계를 확인하는 데 사용됩니다.
예를 들어, 크기를 기준으로 주택 가격을 예측하려는 경우 단순 선형 회귀 분석을 사용할 수 있습니다. 이때 우리는 집의 크기와 집을 판 가격에 대한 데이터를 수집할 것입니다. 그런 다음 선형 회귀 모형을 사용하여 두 변수 간의 관계를 확인할 수 있습니다. 그런 다음 모델은 크기를 기준으로 주택 가격을 예측하는 데 사용될 수 있습니다.
다중 선형 회귀 분석은 여러 입력 변수를 사용하여 단일 출력 변수를 예측하는 선형 회귀 분석의 한 변형입니다. 머신 러닝에서 다중 선형 회귀의 실제 사용 시나리오는 중고차 가격을 예측하기 위해 모델을 사용하는 자동차 딜러점일 것입니다. 딜러점은 제조업체, 모델, 연도, 주행 거리 및 사고 기록과 같은 정보를 포함하여 과거 중고차 판매에 대한 데이터를 수집합니다. 그런 다음 이 데이터를 사용하여 다중 선형 회귀 모형을 학습합니다. 모델은 이러한 입력 변수와 자동차 가격 사이의 관계를 학습합니다. 그런 다음 딜러점은 모델의 제조업체, 모델, 연도, 주행 거리 및 사고 기록에 대한 정보를 제공하여 새 중고차의 가격을 예측하는 데 모델을 사용할 수 있습니다.
간단히 말해서, 다중 선형 회귀 분석은 데이터 점을 통과하는 최적 적합선을 찾아 여러 입력 변수를 기반으로 값을 예측하는 데 사용됩니다. 선형 회귀 분석과 비슷하지만 더 많은 변수가 포함되어 있어 더 나은 예측을 할 수 있습니다.
다항식 회귀 분석은 입력 변수와 출력 변수 사이의 관계가 n차 다항식으로 모델링되는 선형 회귀 분석의 변형입니다. 기계 학습에서 다항식 회귀의 실제 사용 시나리오는 모델을 사용하여 "제품의 판매가 시간이 지남에 따라 어떻게 변화할지 예측하는 제품을 생산하고 판매하는 회사로 예를 들 수 있습니다." 이 회사는 시간 경과에 따른 과거 판매 수치에 대한 데이터를 수집한 다음 이 데이터를 사용하여 다항식 회귀 모형을 학습합니다. 이 모형은 시간과 매출 간의 관계를 학습한 다음, 회사는 이 모형을 사용하여 시간을 기반으로 미래의 매출을 예측할 수 있습니다.
간단히 말해서, 다항식 회귀 분석은 단일 입력 변수를 기반으로 값을 예측하는 데 사용되며 그 관계는 직선이 아닌 n차 다항식으로(다항식이므로, 흐물흐물 거리는 곡선의 모양이 됩니다.) 모델링됩니다. 이렇게 하면 모형이 더 복잡한 관계를 적합시킬 수 있으며 입력 변수와 출력 변수 간의 관계가 선형이 아닐 때 유용할 수 있습니다.
SVR(Support Vector Regression)은 연속 변수에 대한 예측을 위해 기계 학습에 사용되는 알고리즘의 한 유형입니다. SVR에 대한 한 가지 일반적인 사용 시나리오는 주식 시장 예측입니다.
자, 내가 주식 거래자라고 상상해보세요. 그리고 우리는 미래에 어떤 주식이 어떻게 작동할지 예측하고 싶습니다. 이때 우리는 주식의 가격 및 거래량에 대한 과거 데이터와 전체 시장의 실적 또는 회사에 대한 뉴스와 같은 기타 관련 정보를 사용할 수 있습니다.
SVR을 사용하여 이 데이터를 분석하고 주식의 향후 성과를 예측할 수 있습니다. 이 알고리즘은 정확한 예측을 하는 데 가장 중요한 데이터 지점인 "Support Vector"를 찾을 것입니다. 그런 다음 이러한 벡터를 사용하여 주식의 미래 가격을 예측하는 데 사용할 수 있는 모델을 만듭니다.
간단히 말해서, SVR은 과거 데이터를 기반으로 연속 변수의 미래 값을 예측하는 데 사용될 수 있으며, 이 예제에서는 주가를 예측하는 데 적용되었습니다.
SVR의 목표는 데이터를 다른 클래스 또는 그룹으로 가장 잘 구분하는 선 또는 "hyperplane"을 찾는 것입니다. 선 또는 초평면은 선 또는 초평면과 양쪽에서 가장 가까운 데이터 점 사이의 거리가 최대가 되도록 선택됩니다. 이러한 점을 지지 벡터(Support Vector)라고 합니다.
* hyperplane 즉, 초평면은 데이터 포인트를 분류하는 데 도움이 되는 결정 경계입니다. 초평면의 양쪽에 있는 데이터 포인트는 다른 클래스에 기인할 수 있습니다. 간단히 말해서 서로 다른 데이터 그룹을 올바르게 구분/분리/분류하는 것은 기계 학습 모델의 기능입니다. (추가: 초평면의 크기는 특징(변수) 수에 정비례합니다. 간단한 선형 회귀 모델의 경우 데이터가 단일 기능을 기반으로 하는 경우 평면/결정 경계는 왼쪽 이미지처럼 선으로 보입니다. 1개 이상의 기능(변수)이 있는 경우 데이터 포인트가 이제 3D 벡터에 있기 때문에 평면을 초평면이라고 합니다. 기능이 증가함에 따라 그림으로 표현하기 어려운 ML 모델의 차원 수가 10, 20 또는 100 차원이라고 할 수 있습니다. 또한 너무 차원이 많을 경우 모델링하고 분류하는 데 계산 비용이 많이 들기 때문에 PCA, Backward/Forward Feature Elimination, High Correlation / Low Variance Filters 등과 같은 차원을 줄이는 기술을 사용합니다.)
최적의 선이나 초평면을 찾으면 SVR은 이 정보를 사용하여 새 데이터를 예측하는 데 사용할 수 있는 모델을 만듭니다. 예를 들어, 크기와 위치를 기준으로 주택 가격을 예측하려는 경우 주택 가격과 크기에 대한 과거 데이터를 사용하여 SVR 모형을 교육할 수 있습니다. 일단 모델이 훈련되면, 그 모델은 그 크기와 위치에 기초하여 새로운 집의 가격을 예측하는 데 사용될 수 있습니다.
즉, SVR은 과거 데이터를 사용하여 데이터를 여러 그룹으로 구분하는 최적의 선을 찾아 연속 변수의 미래 값을 예측하는 데 사용되며 이러한 점(지지 벡터)은 미래 값을 예측하는 모델을 만드는 데 사용됩니다.
의사 결정 트리 회귀 분석은 연속 변수에 대한 예측을 위해 기계 학습에 사용되는 알고리즘의 한 유형입니다. 데이터 세트를 더 작은 하위 집합으로 분해하는 동시에 관련 의사 결정 트리가 점진적으로 개발됩니다. 트리의 각 내부 노드는 속성에 해당하고, 각 리프 노드는 클래스 레이블에 해당합니다. 의사 결정 트리의 맨 위에 있는 노드를 루트 노드라고 합니다. 속성 값 테스트를 기반으로 데이터를 하위 집합으로 분할하는 방법을 학습합니다.
자, 크기, 위치 및 침실 수를 기준으로 주택 가격을 예측한다고 가정해 봅시다. 의사 결정 트리 회귀 알고리즘은 데이터 세트의 모든 주택을 살펴보고 주택 가격과 주택의 크기, 위치 및 침실 수 사이의 패턴 또는 관계를 찾는 것으로 시작됩니다.
알고리즘은 "집이 도시에 있나요, 시골에 있나요?" 또는 "집에 침실이 3개 이하인가요?"와 같은 데이터에 대한 일련의 질문을 하는 것으로 시작합니다. 답을 기반으로 데이터를 부분 집합으로 나누고 알고리즘이 새 집의 가격을 예측할 수 있을 때까지 프로세스를 계속합니다. (크기, 위치, 침실 수를 기준으로)
간단히 말해, 의사결정 트리 회귀 분석은 데이터 집합을 더 작은 부분 집합으로 분해하고 데이터의 속성을 기반으로 예측하기 위해 트리와 같은 구조를 만들어 연속 변수를 예측하는 방법입니다. (더 쉽게 말하면, 머신한테 이상형 월드컵을 시킨다고 말 할 수 있습니다 :))
랜덤 포레스트 회귀 분석은 여러 의사결정 트리를 결합하여 보다 강력한 모델을 만드는 앙상블 기법입니다. 랜덤 포레스트 회귀 분석의 아이디어는 다양한 랜덤 하위 집합을 사용하여 다수의 의사 결정 트리를 만든 다음 모든 트리의 결과를 평균화하여 보다 정확한 예측을 얻는 것입니다.
예를 들어, 크기, 위치 및 기타 특성을 기준으로 주택 가격을 예측하려고 한다고 가정해 보겠습니다. 랜덤 포리스트 회귀 분석을 사용하여 각 기능의 하위 집합이 서로 다른 여러 의사 결정 트리를 만들 수 있습니다. 각 나무의 산출물은 집값을 예측하는 것이 될 것입니다. 최종 예측은 모든 나무의 평균입니다. 이렇게 하면 단일 의사 결정 트리를 사용하는 것보다 더 정확한 예측을 할 수 있습니다.
또 다른 예로 도시의 주택 가격에 대한 데이터 세트가 있다고 가정해 보겠습니다. 랜덤 포레스트 회귀 분석을 사용하여 크기, 위치 및 기타 특성을 기반으로 주택 가격을 예측하려고 합니다.
먼저 데이터 세트를 교육 및 테스트 세트로 나눕니다. 그런 다음 크기, 위치 및 기타 기능을 입력 변수로 사용하여 훈련 세트에서 랜덤 포레스트 회귀자를 훈련합니다. 그런 다음 모형은 검정 세트의 각 주택에 대한 예측 가격을 출력합니다. 마지막으로, 예측 가격을 테스트 세트의 실제 가격과 비교하여 모델의 성능을 평가합니다.
회귀 모형 성능 평가는 회귀 모형이 주어진 데이터 집합의 결과를 얼마나 잘 예측할 수 있는지 평가하는 과정입니다. 이 작업은 모형의 예측 값을 데이터 집합의 실제 값과 비교하여 수행됩니다. 예를 들어, 회귀 모형을 사용하여 주택 가격을 예측하는 경우 예측 가격을 데이터 집합의 실제 가격과 비교하여 모형의 성능을 평가할 수 있습니다.
RMSE
회귀 모형의 성능을 평가하는 한 가지 예는 RMSE(근 평균 제곱 오차)를 계산하는 것입니다. RMSE는 예측 값과 실제 값 사이의 차이를 나타내는 측도입니다. 예측 값과 실제 값 사이의 차이 제곱의 평균 제곱근을 사용하여 계산됩니다. RMSE가 낮을수록 모형이 데이터에 더 잘 적합된다는 것을 나타냅니다. (이외에도 MSE, MAPE, R-square이 있습니다.)
회귀 모형 성능을 평가하는 실제 사례는 주식 시장을 예측하는 것입니다. 회귀 모형을 사용하여 과거 데이터를 기반으로 회사의 미래 주가를 예측할 수 있습니다. 모델의 성능은 예측 주가와 실제 주가를 비교하여 평가할 수 있습니다. 예측 주가가 실제 주가에 근접하면 모델이 잘 작동하는 것입니다. 예상 주가가 실제 주가와 동떨어져 있다면 모델의 실적이 좋지 않아 개선이 필요하다는 뜻입니다.
다음은 제가 프로젝트에서 많이 쓰는 Classification(분류) 의 Overview를 알아보도록 하겠습니다.
(해당 포스팅은 개념을 이해할 수 있게끔 최소한 쉽게 설명했기에 수식, 파생되는 종류, 수학적, 프로그래밍적 개념 등 많은 정보가 생략되어 있을 수 있습니다. 양해부탁드립니다.)