ML/사이킷런

사이킷런을 이용하여 타이타닉의 생존자 예측, 교차검증 및 GridSearchCV를 통한 하이퍼파라미터를 찾아본다. 1.타이타닉 데이터 분석 및 전처리 Kaggle에서 제공하는 타이타닉 생존자 예측하기에 앞서 제공된 타이타닉 데이터를 탐색하고 분석해보자. 먼저 타이타닉 데이터를 불러오면 데이터 셋에는 승객의 정보, 생존에 대한 정보가 들어있다. import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline titanic_df = pd.read_csv('./titanic_train.csv') titanic_df.head(3) ▶ Out 각 필드는 다음과 같은 의미를 가진다..
1. 스케일링이란? 데이터 스케일링이란 피처들마다 데이터값의 범위가 다 다르기 때문에 그 차이가 큰 경우 모델 학습 시 0 또는 무한으로 학습될 수 있다. 이러한 잘못된 학습을 피하기 위해변수의 값 범위(또는 분포)를 일정한 수준으로 조정해주는데 이러한 작업을 데이터 스케일링이라고 한다. 2.표준화 표준화는 데이터의 피처 각각이 평균이 0이고 분산이 1인 가우시안 정규 분포를 가진 값으로 변화하는 것을 의미한다. 표준화는 데이터 분포의 중심을 0으로 맞추게된다. 예를 들어 [20, 30, 40]을 가진 데이터가 있다고 가정한다. 이 데이터의 평균은 30이고 표준 편자는 8.16이다. 표준화를 구할 때는 Z-score 변환을 통해 구하게 되는데 다음과 같은 공식으로 계산이 된다. 위의 피처 데이터 중 20..
1. 데이터 인코딩 머신러닝 알고리즘은 문자열 데이터 속성을 입력 받지 않으며 모든 데이터는 숫자형으로 표현되어야 한다. 문자형 카테고리형 속성은 모두 숫자값으로 변환/인코딩 되어야한다. 머신러닝에서 사용되는 인코딩식 방식은 대표적으로 레이블 인코딩, 원-핫 인코딩 2가지 있다. 2. 레이블 인코딩 문자열코드를 숫자형으로 변환하는 방법이다. 아래에서처럼 TV는 0, 냉장고는 1 이런식으로 각각의 항목이 고유 번호를 부여 받도록 한다. 사이킷런에서는 레이블 인코딩을 적용하기 위한 LabelEncoder 클래스를 제공하고 fit(), transform()을 이용하여 변환한다. ⎷ 실습 사용 방법은 LabelEncoder를 객체로 생성한 후 , fit( ) 과 transform( ) 으로 label 인코딩 수..
1. GridSearchCV이란? GridSearchCV란 사이킷런에서 교차 검증을 기반으로 앞서 이야기했던 하이퍼파라미터의 최적 값을 찾을 수 있는 함수이다. 만약 GridSearchCV 클래스를 사용하지 않을 경우 반복문을 여러번 수행하면서 하이퍼파라미터 값을 찾아야하고 이는 찾아야할 값들이 많아질 경우 복잡도와 가독성이 매우 떨어지게 된다. GridSearchCV 함수를 간단하게 살펴보면 다음과 같다. estimator : 예측기 객체 (Classifier, Regressor, Pipeline 등) param_grid : 사용할 파라미터가 정의된 dictionary refit : 가장 좋은 파라미터 값으로 자동 재학습 처리(default True) cv : 교차검증 개수 2. GridSearchCV..
1. 파라미터란?머신러닝에서 파라미터는 모델의 구성요소이자 데이터로부터 학습되는 것을 파라미터라고 한다. 즉, 가중치나 평향과 같이 모델이 학습을 통해 최적의 값을 찾는 변수를 의미한다. 예를 들어 선형 회귀 모델에서 Y =  aX + b라는 직선의 방적식이 있고 a, b 이 두 값을 파라미터라고 한다. 머신런닝이 학습을 통해 각각  a는 -3, b는 5라는 최적의 값을 찾게된다. 2. 하이퍼파라미터란?하이퍼파라미터는 모델이 학습을 하면서 최적의 값을 자동으로 찾는 것이 아닌 사람이 직접 지정해 주어야하는 변수를 의미한다. 하이퍼파라미터의 경우 머신러닝 모델의 성능에 결정적인 영향을 끼치게 된다. 하이퍼파라미터는 여러 가지 값을 대입해보면서 최적의 값을 찾아 선택해야하는데 이렇게 최적값을 찾는 과정을 모..
1. 교차 검증의 필요성 머신 러닝 모델을 학습시킬 때 학습을 위한 학습 데이터, 그리고 예측 성능을 평가하기 위한 테스트 데이터가 있다. 그러나 이렇게 위의 방법은 과적합(Overfitting)의 위험이 있다. 과적합이란, 모델이 학습 데이터를 과도하고 학습하여 실제 데이터에 대해 오차가 증가하는 현상이다. 이로 인해 예측을 다른 데이터로 수행할 경우에는 예측 성능이 떨어지게 되는 것을 말한다. 이를 개선하기 위한 방법으로는 교차 검증이 있다. 교차검증은 학습 데이터를 다시 분할하여 학습 데이터와 학습된 모델의 성능을 일차 평가하는 검증데이터로 나눈다. 그리고 테스트 데이트 세트는 모든 학습/검증 과정이 완료된 후 최종적으로 성능을 평가하기 위한 데이터 세트이다. 수능을 예시로 들면 수능을 보기 위해 ..
야뤼송
'ML/사이킷런' 카테고리의 글 목록