서론
머신러닝(Machine Learning)은 전산을 이용한 빅데이터가 발전하면서 함께 부상하였습니다. 축적되는 데이터를 바탕으로 미래를 예측할 수 있는 모델을 이용하여 다양한 산업에 사용되고 있으며, 이로 인해 우리의 생활 양식에 큰 영향을 주고 있습니다. 오늘은 머신러닝(Machine Learning)의 절차와 이해를 위해 1,2편에 걸쳐 글을 작성하겠습니다.
머신러닝(Machine Learning)의 절차
머신러닝은 다음과 같은 통상적인 절차로 진행됩니다.
1. 분석 문제 정의 → 2. 데이터 수집 → 3. 탐색적 데이터 분석(EDA) → 4. 피처 엔지니어링 → 5. 예측 모델 개발 → 6. 서비스 적용
염두해야할 점은 해당 절차에서는 데이터 축적과 같은 데이터 엔지니어링은 별도로 수행되어야합니다. 데이터 엔지니어링은 각종 센서 혹은 오감을 이용한 관측을 통해 쌓이는 데이터들을 효율적으로 수납하는 것이라고 이해할 수 있습니다. 이것은 한정된 데이터 저장 공간을 활용하려는 목적 뿐 아니라, 이후 데이터를 활용하기 위해 수집할 때 꺼내기 쉽게 해놓는 것이 그 목적입니다. 이것은 별도의 전문적인 영역이며, 주로 SQL이라는 언어가 사용됩니다. 오늘 다루는 절차는 데이터 엔지니어링은 생략한 것이라고 볼 수 있습니다.
머신러닝의 궁극적인 목적은 예측이라고 볼 수 있으며, 이를 염두에 두고 각 단계를 수행해야합니다. 때문에, 문제 정의 단계에서 어떤 것을 예측할지와 예측을 위해 어떤 도구를 사용하는 것이 좋을지 정하는 것이 정말 중요합니다.
분석 문제 정의
분석 문제 정의는 머신러닝 프로젝트에서 가장 중요한 초기 단계입니다. 이 단계에서는 분석의 목표와 방향을 설정하며, 그에 따라 프로젝트의 전체 흐름이 결정됩니다. 아래는 분석 문제 정의 단계에서 중요하게 고려해야 할 사항들입니다.
1. 문제의 명확한 이해: 분석 문제를 정의하기 위해서는 해당 문제에 대한 깊이 있는 이해가 필요합니다. 이는 문제의 배경, 관련 분야의 지식, 그리고 문제 해결을 통해 얻고자 하는 결과 등을 포함합니다. 이를 통해 문제의 본질을 파악하고, 머신러닝을 통해 어떤 결과를 도출하려고 하는지 명확하게 정의할 수 있습니다.
2. 목표 설정: 분석의 목표를 명확하게 설정하는 것이 중요합니다. 이는 머신러닝 모델이 예측하거나 분류해야 하는 대상이며, 이를 통해 모델의 성능을 평가하는 기준이 설정됩니다. 예를 들어, 고객 이탈 예측 모델의 경우, 목표는 고객의 이탈 여부를 예측하는 것이 될 수 있습니다.
3. 적절한 머신러닝 기법 선택: 문제의 목표와 특성에 따라 적절한 머신러닝 기법을 선택하는 것이 필요합니다. 예를 들어, 이진 분류 문제의 경우 로지스틱 회귀나 결정 트리 등의 알고리즘이 적합할 수 있습니다. 반면, 연속적인 수치를 예측하는 회귀 문제의 경우 선형 회귀나 랜덤 포레스트 등이 적합할 수 있습니다.
4. 성능 평가 지표 설정: 모델의 성능을 평가하기 위한 지표를 설정하는 것도 중요합니다. 이는 문제의 특성과 목표에 따라 다르며, 분류 문제의 경우 정확도, 정밀도, 재현율 등이, 회귀 문제의 경우 평균 제곱 오차(MSE)나 평균 절대 오차(MAE) 등이 사용될 수 있습니다. 이렇게 정의된 분석 문제는 프로젝트의 전체 흐름을 결정하며, 후속 단계에서의 데이터 수집, 탐색적 데이터 분석, 피처 엔지니어링, 모델 개발 등의 작업에 영향을 미칩니다. 따라서 분석 문제 정의 단계에서는 충분한 시간을 할애하여 문제를 깊이 있게 이해하고, 명확한 목표를 설정하는 것이 중요합니다.
데이터 수집
데이터 수집은 머신러닝 프로젝트의 핵심 요소 중 하나로, 분석 문제에 적합한 데이터를 찾아 수집하는 과정입니다. 아래는 데이터 수집 단계에서 중요하게 고려해야 할 사항들입니다.
1. 데이터 소스 선정: 분석 문제와 목표를 바탕으로 적절한 데이터 소스를 선정해야 합니다. 이는 공개 데이터셋, 기업 내부 데이터, 소셜 미디어 데이터, 센서 데이터 등 다양한 형태가 될 수 있습니다. 이때 데이터의 품질, 신뢰성, 관련성 등을 고려해야 합니다.
2. 데이터 수집 방법 결정: 데이터 소스에 따라 적절한 데이터 수집 방법을 결정해야 합니다. 이는 파일 다운로드, 웹 스크레이핑, API 사용 등 다양한 방법이 될 수 있습니다. 데이터 수집 방법은 데이터의 형태와 크기, 수집 가능한 시간 등에 따라 선택됩니다.
3. 데이터의 법적/윤리적 고려: 데이터 수집은 관련 법규와 윤리적인 문제를 고려해야 합니다. 개인 정보 보호법, 저작권 등 법적 제약을 준수하며, 데이터의 원천, 접근 권한, 사용 목적 등을 명확히 해야 합니다.
4. 데이터 저장 및 관리 방법 결정: 수집된 데이터는 안전하게 저장하고 관리해야 합니다. 데이터베이스, 클라우드 저장소 등 적절한 저장 수단을 선택하고, 데이터의 품질을 유지하며 필요할 때 접근할 수 있도록 관리해야 합니다. 데이터 수집 단계는 머신러닝 모델의 성능에 큰 영향을 미치므로, 충분한 시간과 노력을 투자해야 합니다. 특히, 고품질의 데이터를 수집하는 것은 모델의 성능을 크게 향상시키는 방법 중 하나입니다.
탐색적 데이터 분석(Exploratory Data Analysis, EDA)
탐색적 데이터 분석(Exploratory Data Analysis, EDA)는 수집한 데이터를 다양한 방법으로 살펴보고 이해하는 과정입니다. 이 단계에서는 데이터의 특성을 파악하고, 데이터의 문제를 발견하며, 데이터에 숨겨진 패턴이나 관계를 찾는 등의 작업을 수행합니다. 아래는 EDA 단계에서 중요하게 고려해야 할 사항들입니다.
1. 데이터의 구조 파악: 데이터의 크기, 변수의 수, 변수의 타입(수치형, 범주형 등) 등 데이터의 기본적인 구조를 파악하는 것이 중요합니다. 이를 통해 데이터 처리 방법이나 모델 선택 등의 전략을 결정할 수 있습니다.
2. 기술통계량 분석: 평균, 중앙값, 표준편차, 범위 등의 기술통계량을 분석하여 데이터의 중심 경향성, 분산도 등을 파악합니다. 또, 최빈값, 사분위수 등을 통해 데이터의 분포를 이해하고 이상치 여부를 확인할 수 있습니다.
3. 데이터의 시각화: 히스토그램, 박스 플롯, 산점도 등 다양한 시각화 기법을 사용하여 데이터의 분포, 변수 간의 관계, 이상치 등을 직관적으로 파악합니다.
4. 결측치 및 이상치 처리: 결측치는 삭제, 평균값 대체, 중앙값 대체 등의 방법으로 처리하며, 이상치는 도메인 지식을 바탕으로 적절히 처리해야 합니다.
5. 변수 간의 상관관계 분석: 변수 간의 상관계수를 계산하여 변수 간의 관계를 파악합니다. 이는 피처 선택이나 다중공선성 문제를 해결하는 데 도움이 됩니다. EDA는 데이터를 깊이 있게 이해하고, 데이터의 문제를 발견하며, 머신러닝 모델 개발에 앞서 필요한 데이터 전처리 전략을 세우는 데 중요한 단계입니다. 따라서 EDA 단계에서는 충분한 시간을 할애하여 데이터를 꼼꼼하게 살펴보는 것이 필요합니다.
결론
오늘은 머신러닝(Machine Learning)의 절차와 이해-1편을 작성했습니다. 머신러닝 수행 절차를 살펴보다보면 우리에게도 적용할 수 있는 부분들이 있고, 우리의 사고를 적용한 방식도 눈에 들어옵니다. 과거의 경험을 통해 행동을 수정하거나, 미래를 예상하는 우리의 평소 모습을 기계에게 접목시켰다고 볼 수 있습니다. 우리가 겪었던 과거에 대해서 생각을 깊이하고, 분석함으로써 나름의 해답을 찾아가듯이 머신러닝의 절차도 동일한 면이 있습니다. 차이점이라면 우리에게는 다양한 형태로 있는 경험을 컴퓨터에게는 수치로 표현해주어야 된다는 점이 있습니다.
함께 읽으면 좋은 글 ↓
'데이터 사이언스 > 머신러닝 절차와 이해' 카테고리의 다른 글
머신러닝(Machine Learning)의 절차와 이해 - 피처 엔지니어링(feature engineering) (56) | 2023.11.18 |
---|---|
머신러닝Machine Learning의 절차와 이해 - 탐색적 데이터 분석Exploratory Data Analysis, EDA (46) | 2023.11.17 |
머신러닝(Machine Learning)의 절차와 이해 - 데이터 수집 (52) | 2023.11.16 |
머신러닝(Machine Learning)의 절차와 이해 - 분석 문제 정의 (48) | 2023.11.15 |
머신러닝(Machine Learning)의 절차와 이해 - 2편 (44) | 2023.11.14 |