본문 바로가기
## 오래된 게시글 (미관리) ##/Python (Linux)

6. Python - 머신러닝에 앞서서

by #Glacier 2018. 11. 23.
반응형

오늘은 데이터 탐색에 대해 공부해 보려고 합니당.

먼저 *파이프라인에 대해 알아보도록 할게요.


데이터 처리를 할 때 특히 머신러닝을 할 때에는 파이프라인을 많이 사용한다고 하는데요,


파이프라인이란?


데이터 처리 컴포넌트(Component)들이 연속되어 있는 것을 파이프라인이라고 합니다.

머신러닝 시스템은 데이터를 조작하고 변환할 일이 많기 때문입니다.

보통 컴포넌트들은 비동기적으로 동작하고, 각 컴포넌트는 많은 데이터를 추출해 처리하고 그 결과를 다른 데이터 저장소로 보냅니다.

그러면 일정 시간 후, 파이프라인의 다음 컴포넌트가 그 데이터를 추출해 자신의 출력 결과를 만드는 식입니다.

따라서 각 컴포넌트는 완전히 독립적이고, 각 컴포넌트 사이의 인터페이스는 데이터 저장소 뿐이라고 합니다.

그래서 시스템을 이해하기 쉽게 만들고, 각 팀은 각자 컴포넌트에 집중할 수 있습니다. 

한 컴포넌트가 다운되더라도 하위 컴포넌트는 문제가 생긴 컴포넌트의 마지막 출력을 사용해 

한동안은 평상시처럼 작동할 수 있습니다. 그래서 시스템이 견고해집니다. 따라서 모니터링이 잘 되어야 합니다.


**

이제 우리는 지도학습, 회귀문제를 다뤄볼 건데요, 그 전에 먼저 성능 측정 지표를 선택할 것입니다.

다음 단계는 성능 측정 지표를 선택하는 것입니다. 

회귀 문제의 전형적인 성능 지표는, 평균 제곱근 오차(Root Mean Square Error, RMSE) 입니다.


m은 데이터 샘플 수, xi는 데이터셋의 i 번째 샘플(레이블된 샘플 제외) , yi는 해당 레이블(해당 샘플의 기대 출력값)입니다.

X는 데이터셋에 있는 모든 샘플의 모든 특성값(레이블된 샘플 제외)을 포함하는 행렬입니다. 

h는 시스템의 예측 함수며 가설이라고도 합니다. 즉 시스템이 하나의 샘플 특성 벡터 xi를 받으면 

그 샘플에 대한 예측값 y햇=h(xi)를 출력합니다.


즉, 기대값과 실제 값의 차이가 주요 값이 되죠.


RMSE가 일반적으로 회귀 문제에 선호되는 성능 측정 방법이라면, 이외에도 다른 방법을 사용할 수도 있습니다. 

이상치가 많은 데이터라면 평균 절대 오차(Mean Absolute Error)를 사용하며 

평균 절대 편차(Mean Absolute Deviation)라고도 합니다.



RMSE, MAE 모두 예측값의 벡터와 타깃값의 벡터 사이의 거리를 재는 방법입니다. 

RMSE는 유클리디안 노름(Norm)에 해당하고, 도시의 구획이 직각으로 나뉘어 있을 때 

이 도시의 두 지점 사이의 거리를 측정하는 것과 같아 맨해튼 노름이라고 합니다.

노름의 지수가 클수록, 큰 값의 원소에 치우치며, 작은 값은 무시됩니다. 

그래서 RMSE가 MAE보다 조금 더 이상치에 민감하다고 할 수 있습니다.


하지만 정규분포의 끝처럼 이상치가 매우 드문 경우, RMSE가 잘 맞아 일반적으로 사용됩니다.


**

자 이제, 이전에 봤던 것을 따라하셨다면 주피터노트북이 켜져있을 겁니다.

그러면 Python3 파일을 하나 만들어서 Housing으로 이름을 바꾸어 줍니다.

처음 사용하여 어렵다면, Help를 누르고 Reference로 이동할 수 있습니다.

**


이제 jupyter notebook을 사용해야 하는데.. 

리눅스를 사용하여 진행할 것인가.. 윈도우에서 진행할 것인가 아~주 고민이 되는데요..

이왕.. 이렇게 된거.. 리눅스에서 할까 싶습니다.

리눅스 설치법은 다음 포스팅에! 하겠습니다.


반응형