본문 바로가기
IT공부/인공지능-딥러닝,머신러닝

머신러닝 학습방법 파이프라인 및 데이터 전처리

by 초보전산 2023. 4. 25.
반응형

*머신러닝 학습방법

  a. 지도학습: 문제,정답을 알려주고 학습
    -분류: 학습데이터를 이용하여 입력값이 어떤 종류인지 분류.  ex) AI 스피커, 음성인식
               로지스틱회귀, SVM, KNN, 결정트리, 랜덤포레스트, 퍼셉트론, 신경망
    -예측: 학습데이터를 이용하여 연속적인 숫자 값을 예측.
            선형회귀, 다항식회귀, 릿지회귀, 라쏘회귀, 일래스틱넷


  b. 비지도학습: 답을 알려주지 않고 학습
    -군집: 학습데이터 특성에 따라 유사한 것으로 군집.
             계층적군집화, K-means, SOM, EM 알고리즘
    -연관규칙: 특정 사건들의 발생빈도를 통해 상호연관성을 표현하는 규칙. ex)추천
             지지도, 신뢰도, 향상도, Apriori

  c. 강화학습: 보상을 통해 상을 최대화하는 방향으로 행위를 강화하는 학습

*머신러닝 파이프라인


머신러닝에서 데이터를 처리함에 있어 전처리는 매우 중요하다. 학습을 하기 전 전처리를 어떻게 했는가에 따라 결과는 천차만별이기 때문이다. 

 

*탐색적 데이터 분석(EDA, Exploratory Analysis)

  데이터에 직관을 얻기위해 데이터 시각화, 요약정보를 활용하여 데이터 분포를 이해하는 방법

  기본도구: 도표, 그래프, 요약통계

  관계파악: 산점도 행렬을 이용하여 변수들의 관계 파악

  분포파악: 평균, 최소값, 최대값, 사분위수를 통한 분포 파악

  도표화: 모든 변수의 분포 도표화, 시계열데이터 도표화

  데이터분석: 모든 변수의 요약통계를 생성, 이상값 발견

  데이터전처리: 데이터 타입변환, 데이터 그룹핑

 

*결측치 처리(null)

  완전제거법: 결측치 존재시 분석대상에서 제외

  평균대체법: 관측자료 평균값으로 대체

  연역적 대체법: 다른 기록에 의거하여 결측값을 논리적으로 유추

  일치대응대체: 동일 조사단위에 해당하는 다른 외부자료의 값으로 대체

  핫덱대체: 동일한 특성 응답값중에 랜덤추출하여 대체

  회귀대체: 회귀분석을 실시하여 얻은 추청치로 대체

  다중대체: 대체한 완전한 데이터 세트를 m개 만들어 모수측정 후, 추정치와 표준오차를 결합하여 모형개발

 

*이상치 제거

  Knowledge 기반: 지식 기반 에상치 제거

  Percentile 기반: 백분위 수에 따라 이상치 제거

 

*데이터 분할

  학습용데이터와 테스트용데이터로 분리

  -학습용데이터(Training set): 인공지능 모델을 학습시키기 위한 데이터 

                                     : 경우에 따라 일부를 검증용데이터(Validation set)로 이용 --하이퍼파라미터 최적화

  -테스트용데이터(Testing set): 학습 완료된 모델의 정확도 판단을 위한 데이터

 

*과적합(Overfitting): 학습데이터 성능은 좋지만 실제 데이터에서 성능이 떨어지는 현상

                         : 해결-교차검증, 조기종료, Drop out, Weight decay

*부적합(Underfitting): 적정수준의 학습을 하지못해 실제 성능이 떨어지는 현상

 

*데이터 분할방법

 a. 예비법: 전체 데이터를 겹치지않은 두 집합(학습용,테스트용)으로 비복원 추출

 b. 교차검증: 학습용, 검증용 데이터를 교차

    K-fold 교차검증: 데이터를 k개로 분할-> 1/k 에 해당되는 데이터를 검증용, 나머지는 학습용으로 사용-> k번 수행

 c. 붓스트랩(Bootstrap)

    학습용 데이터를 복원추출(표본추출)

 

*데이터 인코딩

  레이블인코딩: 문자형으로 지정된 카테고리를 숫자로 변환 [강아지,고양이]-> [1,2] 

                   : 숫자로 오인지하여 예측성능 떨어지는 경우 발생

  원-핫인코딩: 데이터 차원만큼 0과 1로 구성된 벡터로 변환 [강아지,고양이] -> [01,10]

 

*정규화

  sklearn.preprocessing 의 MinMaxScaler 이용

  가능하다면 전체데이터의 스케일링 변환 적용 후 학습,테스트데이터 분리하는 것이 좋음

반응형

댓글