-
머신러닝 프로젝트 처음부터 끝까지전공 서적/핸즈온 머신러닝 2018. 8. 22. 13:06
- 큰 그림 보기
- 문제 정의
- 비즈니스 목적을 정확히 아는 것이 중요하다.
비즈니스의 목적이 문제의 구성, 알고리즘의 선택, 평가 시 사용할 성능 지표, 모델 튜닝을 위한 자원 을 결정한다. - 파이프라인
- 데이터 처리 컴포넌트들이 연속되어 있는 것
- 시스템을 이해하기 쉽게 만들고, 각자의 컴포넌트에 집중할 수 있다.
- 한 컴포넌트가 고장 날 경우 하위 컴포넌트는 문제가 생긴 컴포넌트의 마지막 출력을 사용해 평상시처럼 동작할 수 있다.
- 성능 측정 지표 선택
- 평균 제곱근 오차(RMSE)
- 예측에 얼마나 많은 오류가 있는지 알 수 있음
- 평균 절대 오차(MAE)
- 데이터 가져오기
- 테스트 세트 만들기
- 데이터 스누핑 편향
- 테스트 세트를 볼 경우 테스트 세트에서 겉으로 드러난 패턴에 속아 특정 머신러닝 모델을 선택할 수도 있다.
- 계층적 샘플링
- 테스트 세트가 전체 데이터를 대표하도록 나누는 방법
- 데이터 이해를 위한 탐색과 시각화
- 상관관계 조사
- 상관관계의 범위는 -1 ~
1 이다.
1에 가까우면 양의 상관관계를 가지고, -1에 가까우면 음의 상관관계를 나타낸다.
0에 가까울 경우 선형 상관관계가 없다. - 머신러닝 알고리즘을 위한 데이터 준비
- 데이터 정제
- 누락된 특성을 처리하는 방법
- 해당 행을 제거
- 전체 열을 제거
- 값으로 채움 (0, 평균, 중간값)
- 사이킷런의 설계 철학
- 일관성
- 추정기
- 데이터셋을 기반으로 일련의 모델 파라미터들을 추정하는 객체
- fit 메서드에 의해 수행된다.
- 변환기
- 데이터셋을 변환하는 추정기
- transform 메서드를 이용해 변환한다.
- 예측기
- 주어진 데이터셋에 대해 예측을 할 수 있는 추정기
- predict 메서드를 사용해 예측을 수행한다.
- 테스트 세트를 사용해 예측의 품질을 수행하는 score 메서드를 가진다.
- 검사 가능
- 모든 추정기의 하이퍼파라미터는 직접 접근할 수 있다.
- 클래스 남용 방지
- 데이터셋을 numpy 배열이나 scipy 희소행렬로 표현한다.
- 조합성
- 기존의 구성요소를 최대한 재사용한다.
- 합리적인 기본값
- 대부분의 매개변수에 합리적인 기본값을 미리 지정해두었다.
- 텍스트와 범주형 특성 다루기
- 머신러닝 알고리즘은 숫자형을 다루므로 텍스트 카테고리는 숫자로 변환해야 한다.
- 각 카테고리를 다른 정수값으로 매핑하는 방법을 사용할 경우
머신러닝 알고리즘이 가까이 있는 값들이 비슷하다고 생각하는 문제가 있다. - 카테고리별 이진 특성을 만드는 원-핫 인코딩을 사용하여 문제를 해결한다.
- 특성 스케일링
- 머신러닝 알고리즘은 일반적으로 특성의 스케일이 많이 다를 경우 잘 작동하지 않는다.
- 모든 특성의 범위를 같게 만드는 방법으로 min-max 스케일링, 표준화가 있다.
- min-max 스케일링
- 정규화라고도 한다.
- 모든 데이터를 0~1 범위에 들도록 값을 조정한다.
- 표준화
- 결과 분포의 분산이 1이 되도록 한다.
- 범위의 상한과 하한이 존재하지 않는다.
- 모델 세부 튜닝
- 랜덤 탐색
- 하이퍼파라미터 탐색공간이 커질 경우 랜덤 탐색을 사용하는 편이 더 좋다.
- 장점
- 반복 횟수 조절만으로 하이퍼파라미터 탐색에 투입할 컴퓨팅 자원을 제어할 수 있다.
각 컴포넌트는 완전히 독립적이며, 컴포넌트 사이의 인터페이스는 데이터 저장소 밖에 없다.
댓글