기본 콘텐츠로 건너뛰기

머신러닝 학습과정 with [개발자를 위한 머신러닝] (1/2)

머신 러닝 학습 과정 (1/2)

1. 문제이해

문제를 풀 때 데이터와 가능한 작업량을 미리 분석하는 것 
  • 문제의 정의
  • 데이터 수집과정
  • 데이터 수집의 시간
  • 전처리의 유무

2. 데이터셋 정의 및 획득

ETL 프로세스

ETL(Extract, transform, load)은 단어대로 추출, 변환, 적재를 하는 프로세스빅데이터를 분석하기 위해서 필요한 전처리 과정 
데이터를 추출 후 분석할수 있게 변환하여 적재하는 과정 
전통적인 ETL 다이어그램

SciPy 및 pandas 를 사용한 데이터셋 로드 및 탐색 분석

3. 피처 엔지니어링

  • 가공전 데이터를 가져와서 모델이 일반화 하기 쉬운 형태로 변환하는 과정
  • 예측 모델의 정밀도를 향상시키기 위해 학습용 원시 데이터를 기반으로 피처를 변환, 추출, 선택하거나 새로운 피처를 생성하는 작업

누릭된 데이터 다루기

불완전한 데이터셋이 있을때 누락된 부분은 모델에 도움이 되지 않는다. 따라 결측치를 처리하는 방법이 필요함
기본적으로 아래의 방법을 행함
  • 해당 결측치행을 제거하여 학습에 사용하지 않는것
  • 데이터의 평균을 사용하여 결측치에 넣는것
  • 해당 열의 중앙값 사용
  • 해당 열의 빈번한 값을 사용
하지만 위의 방법으로 학습이 안될 가능성이 있기 때문에 적중률을 높이기 위해 좀더 고급기술을 사용한다.  누락된 값(결측치)에 대한 상세한 처리 방법은 결측치 처리 블로그 에서 확인해주시기 바랍니다.

원핫 인코딩 (One-Hot Encoding)

하나의 값만 True(1)이고 나머지는 모두 False(0)인 인코딩
머신러닝에서는 수치로된 데이터만 이해할수 있기 때문
보통 자연어 처리 부분에서 사용함


4. 데이터셋 전처리

정규화 및 피처 크기 조정

데이터 정규화를 통해 최적화 기법, 특히 반복적인 기법을 사용할 때보다 잘 수렴하고 데이터를 쉽게 관리할 수 있음
정규화를 했으면 모델 정의후 평가 시 결과 데이터를 역정규화를 해서 데이터의 특성을 잃지 않게 하는 것이 중요
  • 정규화 또는 표준화
데이터셋에 정규 분포의 특성, 즉 평균 0과 표준 편차 1을 부여하는 것을 목표로 함
수식 : (각데이터값 - 평균) / 표준편차

정규화와 표준화에 대해 간락히 소개한 블로그


참고










댓글

이 블로그의 인기 게시물

Message Queue 란 무엇인가

Message Queue 란 무엇인가?? 메시지 지향 미들웨어(Meesage Oriented Middleware: MOM)은 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터 송수신을 의미 MOM을 구현한 시스템을 메시지 큐(MessageQueue: MQ)라 함 Producer(sender) 가 메시지를 큐에 전송하면 Consumer(receiver) 가 처리하는 방식으로, producer 와 consumer 에 message 프로세스가 추가되는 것이 특징 메시지 큐의 장점 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다. 비동조(Decoupling): 애츨리케이션과 분리할 수 있습니다. 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다. 과잉(Redundancy): 실패할 경우 재실행 가능합니다. 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다. 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다. 메시지 큐 종류 Apache ActiveMQ, Apache Kafka, Apache Qpid, Apache RocketMQ, Beanstalkd, Enduro/X, HTTPSQS, JBoss Messaging, JORAM, RabbitMQ, Sun Open Message Queue, and Tarantool 등 Apache ActiveMQ Java Message Service (JMS)를 사용하는 오픈소스 MQ Java, C, C ++, C #, Ruby, Perl, Python, PHP 등 다양한 크로스 언어 클라이언트 및 프로토콜 지원 Spring 지원으로 Spring xml config 메커니즘 이용 가능 JDBC 지원으로 DB 높은 퍼포먼스 가능 높은 퍼포먼스를 위해 클러스터링 구성 가능 Restful API 제공 단 모니터링 도구제공하지 않음 ...