라떼는말이야

핵심 머신러닝 기술 - 데이터 수집 단계, 특징 공학 본문

프로젝트/인공지능 보안을 배우다

핵심 머신러닝 기술 - 데이터 수집 단계, 특징 공학

MangBaam 2020. 7. 8. 10:00
반응형

머신러닝 프로세스

머신러닝 프로세스

 

1)    데이터 수집 단계

모든 데이터는 컴퓨터가 이해할 수 있는형식을 갖추어야 한다.

데이터 수집은 다양한 채널을 통해 이루어질 수 있다. 하드웨어로 수집 한다거나 웹 서버의 정보를 크롤링하거나, 이미 운영 중인 솔루션 또는 운영체제 자체에서 자동으로 기록하는 로그 정보도 좋은 데이터가 될 수 있다.

데이터가 어느 정도로 필요한 지 미리 규정짓는 것은 의미가 없다. 가능한 많은 데이터 확보가 우선 시 된다.

2)    특징 공학(Feature Engineering)

특징 공학 프로세스

 

특징 공학 : 모델의 성능을 좌우하는 핵심 요소로, 머신 러닝 프로세스에서 가장 중요한 역할을 담당한다.

특징 공학은 데이터의 의미를 이해하고, 조작하고, 특징을 추출하고, 변환하는 모든 과정을 포함한다.

 

 

 

(1) 관찰과 전처리:

특징 공학 프로세스 - 관찰, 전처리

 

특징 공학은 데이터 관찰에서 시작한다.

데이터 관찰:

문제 해결에 도움을 주는 정보를 찾기 위함이 아니라 데이터 자체를 이해하기 위함이다.

데이터가 어떠한 형식으로 저장되어 있는지, 누락된 값은 없는지, 데이터 분포는 어떠한지 등을 종합적으로 살펴본다.

 

전처리:

누락된 데이터나 오류 값이 있으면 수정 또는 제거해주고, 단순 텍스트 형식의 로그 파일일 경우 가독성이 높은 테이블 형태로 파싱한 후 데이터베이스 또는 파일로 저장해주는 과정.

 

데이터 관찰과 전처리 과정은 시각화와 함께 진행해야 한다.

그러나 시각화로 본 내용이 그대로 결과에 반영될 것이라고 가정하면 안된다. 그저 보조 도구일 뿐이다.

 

다양한 시각화 그림 예시 (https://matplotlib.org/gallery/index.html)

 

 

 

(2) 특징 추출:

특징 공학 프로세스 - 추출

데이터 전처리 완료 후에는 모델링에 사용될 특징을 추출해야 한다. 특징 추출에는 크게 3가지 방법이 존재한다.

 

특징 추출의 3가지 방법:

특징 추출 방법 비교

통계 수치 : 통계학에서 데이터의 분포화 경향을 표현할 때 사용하는 수치 값들을 특징에 활용하는 방법이다. 주로 시계열 데이터에 적용하는 특징이다.

 

위 3가지 방법 중 하나를 택하는 것이 아니다.

특징 추출 단계에서 해당 특징이 모델링 정확도에 주는 영향도를 고려할 필요 없이 가능한 모든 특징을 뽑아 두는 것이 좋다.

 

하나의 특징 = 하나의 정보 = 1차원

 

0차원  점 , 1차원  선분 , 2차원  사각형 , 3차원  정육면체 와 4차원  초입방체 (출처: 위키백과)

 

n개의 특징을 가진다는 것은 n차원으로 표현한다고 말할 수 있다.

, 특징이 많아질수록 복잡도는 굉장히 높아진다. 그러나 컴퓨터는 100차원을 이해할 수 있다. 그렇다고 해도 특징이 너무 많으면 모델 성능에 독이 될 수 있다. (‘차원의 저주문제라고 한다.)

 

 

(3) 특징 선택:

특징 공학 프로세스 - 선택

 

특징 선택 방법1: 최적의 조합을 찾을 때까지 특징 개수를 하나씩 늘리거나 줄이는 방법.

간단하지만 특징이 많은 경우 선택에 엄청나게 많은 시간이 소요될 수 있다.

 

특징 선택을 위한 모델링은 해결하고자 하는 문제에 적용 가능한 모델을 3~5가지 정한 다음 여기에 선택한 특징 조합을 대입해보는 방식을 말한다.

특징 추출 단계에서 뽑아낸 10개의 특징으로 악성코드와 정상 프로그램을 분류하는 것이 목표일 때 대표적인 알고리즘인 SVM, 랜덤 포레스트, 나이브 베이스 분류기, 딥 뉴럴 네트워크를 테스트 모델로 선정한다.

다음으로 특징 조합을 하나 선택한 후 네 개의 모델에 각각 넣고 정확도를 계산한다. 가능한 모든 조합에 대한 정확도를 계산한 후에 네 개 모델 정확도 평균값이 가장 높게 나온 특징 조합을 선택하면 된다.

 

 

특징 선택 방법2: 도메인 지식을 바탕으로 휴리스틱(경험에 기반한 문제 해결)에 의존해 특징을 선택하는 방법

 

분석가의 입장에서 볼 때 의미가 없고 아무런 정보도 제공하지 않는 특징이라고 해도 머신 러닝 모델에는 정확도에 크게 기여하는 좋은 특징이 될 수 있기 때문에 무작정 골라내는 것보다 후보군을 선정한 후 전진선택 또는 후진제거 방식을 적용하는 편이 좋다.

 

(4) 변환 단계

특징 공학 프로세스 - 변환

 

변환 단계:

특징 값을 모델링에 적합한 형태로 변환하는 과정이다. 정규화, 스케일링, 범주형 데이터 처리 등이 여기에 속한다.

정규화 : 모든 특징의 값 범위를 동일한 범위로 맞춰주는 과정이다.

 

스케일링 : 특정 데이터를 정규 분포 형태로 변환해주는 과정이다. 가장 일반적인 방식은 데이터를 로그 변환하는(자연 로그) 것으로, 큰 수를 같은 비율의 작은 수로 바꿔주며(정규화), 복잡한 계산을 쉽게 만들고, 왜도(skewness)와 첨도(kurtosis)를 줄여 데이터 분석 시 의미 있는 결과를 도출할 수 있도록 해준다

스케일링 후 데이터 분포의 변화(좌측: 원본 데이터, 우측: 스케일링 데이터)

특징 값이 수치형이 아닌 범주형 데이터일 경우 수치형 특징으로 변환해야 한다.

 

가장 대표적인 것은 One-Hot 인코딩이다. One-Hot 인코딩은 개별 특징 내에 포함된 유일한 문자의 개수만큼 특징을 추가한 뒤 각 특징을 0 또는 1로 표현하는 방식이다. 범주형 특징이 모델 판단에 중요한 정보를 포함하고 있을 경우 유용하게 쓰일 수 있으나, 특징의 개수가 범주의 개수만큼 증가한다는 단점이 있다.

 

One-Hot 인코딩 적용 예시

 


 

다음 글에선 모델링 과정에 대해서 다룬다.

 

 

출처: 서준석, 『인공지능, 보안을 배우다』, 비제이퍼블릭(BJ퍼블릭)(2019년 04월 17일), p.38~48.
 
반응형
Comments