머신러닝 수행 절차
머신러닝은 데이터로부터 모델을 만드는 단계와 만들어진 모델을 적용하는 단계로 나눌 수 있습니다. 모델을 만드는 단계는 예를 들자면 고양이가 있는 사진으로 고양이를 판별하는 모델을 만드는 단계를 말합니다. 만들어진 모델을 적용한는 단계는 말그대로 새로운 데이터가 들어왔을 때 결과를 내주는 단계입니다. 예를 들자면, 새로운 고양이 사진으로 고양이인지 아닌지를 판별하는 단계입니다.
데이터로부터 모델을 만드는 단계를 조금 더 세분화하면 아래 4단계로 나눌 수 있습니다. 데이터 수집은 말그대로 고양이가 포함된 사진 혹은 고양이가 포함되지 않은 사진을 수집하는 단계입니다. 데이터 전처리는 수집된 데이터를 학습하기에 적당한 데이터로 전처리하는 단계입니다. 이후에 데이터를 학습시키고 모델을 만들고 만들어진 모델을 평가합니다.
데이터 수집 → 데이터 전처리 → 데이터 학습 → 모델 평가
머신러닝의 수행 절차에서 데이터로 부터 모델을 만드는 단계가 중요하기 때문에 모델을 만드는 방법에 대해 하나씩 자세히 설명해보겠습니다.
데이터 수집
머신러닝의 첫번째 단계는 문제를 정의하는 것입니다. 해결하고자 하는 문제가 무엇인지, 문제의 답을 얻기 위해 필요한 데이터는 무엇인지, 데이터와 결과 사이에는 어떤 상관관계가 있는지에 대한 정의가 필요합니다. 데이터와 결과 사이에는 어떤 상관관계는 머신러닝을 통해서 컴퓨터가 판단하지만, 데이터의 특성에 따라서 적합한 알고리즘을 적용하면 정확도가 높은 모델을 생성할 수 있습니다. 머신러닝 수행 전 아래와 같은 정의가 필요합니다.
- 해결하고자 하는 문제는 무엇?
- 답을 얻기 위한 데이터는 무엇?
- 데이터와 결과는 어떤 상관관계?
데이터는 공개되어 있는 데이터 소스에서 원하는 데이터를 가져올 수도 있고 직접 데이터를 수집해서 사용할 수 있습니다. 또한, 직접 조사, 실험, 시뮬레이션을 통해서 원하는 데이터를 생성할 수 있는데 저는 시뮬레이션 업무를 하고 있기 때문에 직접 데이터를 생성해서 사용하곤 합니다. 공공적으로 공개되어 있는 데이터는 국가에서 운영하고 있는 데이터베이스에서 확인 가능합니다.
데이터 전처리
데이터가 수집됐을 때, 수집된 데이터를 바로 머신러닝 학습에 활용하는 방법보다는 먼저 좋지 못한 데이터를 스크리닝하거나 누락된 데이터를 채워주는 등의 정리를 해주는 데이터 전처리 작업을 해주는 것이 좋습니다. 데이터가 너무 많으면 값이 누락된 데이터를 제거하는 방향으로 가는 것이 좋으며, 데이터가 없다면 누락된 데이터를 채워주는 것이 좋습니다.
- 데이터 충분 : 누락된 데이터 제거
- 데이터 제한적 : 누락된 값 채워줌
첫번째 데이터 전처리 방법에 특이점 제거가 있습니다. 특이점은 머신러닝 결과에 영향을 미칠 수 있기 때문에 제거해야하며, 신뢰 구간을 정하고 학습 데이터 중 범위를 벗어난 값을 제거하는 것이 좋습니다. 신뢰 구간을 벗어나는 데이터를 처리함으로써 머신러닝 수행 시간이 단축됩니다. 아래와 같이 이상치(Outlier) 들을 적절한 방법을 사용해서 제거해주면 좋은데, 이상치 제거 방법에 대해서는 차후에 포스팅하여 공유하겠습니다.
두번째로 데이터 변환 방법입니다. 수집된 데이터를 머신러닝에 적합한 값으로 변환합니다. 데이터 변환을 통해 데이터 처리를 위한 연산시간을 축소할 수 있습니다. 데이터 변환 기술로는 표준화, 정규화, 이산화 등이 있습니다. 표준화는 데이터가 가우시안 분포를 따르고, 평균의 0, 편차는 1이라는 가정을 따릅니다. 정규화는 데이터 범위를 0과 1 사이로 한정하는 방법입니다.
이산화는 의사 결정 트리, 나이브 베이즈 기법 등에서 이산화된 값을 사용하는 것이 유리합니다. 구간 선택 방법으로는 동등 폭, 동등 빈도, 민 엔트로피가 있습니다. 동등 폭은 구간을 동등하게, 동등 빈도는 구간에 동등한 개수가 들어가게 만드는 방법이며, 민 엔트로피는 데이터의 무질서도가 가장 낮은 수준까지 나눠주는 방법입니다.
세번째로 데이터 축소 방법입니다. 데이터의 속성 중 예측력이 떨어지는 속성은 전체 모델에 기여하는 바가 적을 뿐 아니라 신뢰성을 떨어뜨리는 요소가 되기 때문에 데이터를 축소해줘야합니다. 이를 위해서 예측력이 떨어지는 속성 자체를 제거하거나 고차원의 데이터를 저차원으로 변환해줘야 합니다. 너무 많은 데이터가 존재하는 경우 데이터가 중복되거나 불필요한 반복이 발생하는 문제가 있을 수 있기 때문에 원본 데이터 분포를 그대로 유지하는 하위 집합을 선택할 수 있습니다. 표본을 축소하는 방식으로는 무작위 데이터 추출과 성층법이 있습니다.
데이터 학습 및 평가
학습 방법과 알고리즘의 선택이 먼저 선택되어야 합니다. 문제의 종류와 수집된 데이터의 유형에 때라 적절한 학습 방법과 알고리즘이 선택되어야 합니다. 학습 방법으로 지도학습, 자율학습(비지도학습), 강화학습 등이 있습니다. 알고리즘에는 회귀분석, 분류, 클러스터링, 서포트 벡터 머신, 의사결정트리, 나이브 베이즈 분류 등이 있습니다.
모델이 완성된 뒤에 모델을 평가하기 위해 데이터를 학습데이터와 검증데이터 두 가지로 나눠줘야 합니다. 학습데이터와 검증데이터의 비율은 7:3이 국룰이기 때문에 적당합니다. 학습데이터로 모델을 만들고 평가데이터로 모델을 평가하게 됩니다. 만약, 데이터가 충분하지 못한 경우에 교차 평가를 시행합니다. 교차 방법은 데이터를 k개의 동일한 크기로 분할하고, 분할된 데이터 중 하나를 검증 데이터로 쓰고 나머지를 학습 데이터로 사용하며, 검증 데이터를 바꿔가면서 k번 반복합니다. 교차 평가 방법은 데이터가 적을 때 유용하게 사용할 수 있습니다.
댓글