사이킷런?
파이썬 기반의 다른 머신러닝 패키지도 사이킷런 스타일의 API를 지향할 정도로 쉽고 가장 파이썬스러운 API를 제공합니다.
머신러닝을 위한 매우 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API를 제공합니다.
오랜 기간 실전 환경에서 검증됐으며, 매우 많은 환경에서 사용되는 성숙한 라이브러리입니다.
주로 Numpy와 Scipy 기반 위에서 구축한 라이브러리입니다.
피처(Feature)란?
피처는 데이터 세트의 일반 속성
예> 머신러닝은 2차원 이상의 다차원 데이터에서도 많이 사용되므로 티켓값을 제외한 나머지 속성을 모두 피처로 지칭
레이블, 클래스, 티켓값, 결정값?
티켓값 또는 결정값은 지도 학습시 데이터의 학습을 위해 주어지는 정답 데이터
지도 학습 중 분류의 경우에는 이 결정값을 레이블 또는 클래스로 지칭
지도학습-분류
분류는 대표적인 지도학습 방법의 하나입니다. 지도학습은 학습을 위한 다양한 피처와 분류 결정값인 레이블 데이터로 모델을 학습한 뒤, 별도의 테스트 데이터 세트에서 미지의 레이블을 예측합니다.
즉, 지도학습은 명확한 정답이 주어진 데이터를 먼저 학습한 뒤 미지의 정답을 예측하는 방법입니다. 이때 학습을 위해 주어진 데이터 세트를 학습 데이터 세트, 머신러닝 모델의 예측 성능을 평가하기 위해 별도로 주어진 데이터 세트를 테스트 데이터 세트로 지칭합니다.
예측 프로세스는 데이터 세트 분리 ->모델학습 -> 예측 수행 -> 평가 순으로 갑니다.
사이킷런 기반 프레임워크 - Estimator와 fit(), predict()
학습 : fit() -> 분류 Classifier -> 분류구현 클래스로 DecisionTreeClassifier, RandomForestClassifier, GradientBoostingClassifier, GaussianNB, SVC
예측 : predict() -> 회귀 Regressor -> 회귀구현 클래스로 LinearRegression, Ridge, Lasso, RandomForestRegressor, GradientBoostingRegressor
train_test_split : 데이터 나누기
교차 검증과 GridSearchCV
교차검증 -학습 데이터를 다시 분할하여 학습 데이터와 학습된 모델의 성능을 일차 평가하는 검증 데이터로 나눔
테스트 데이트 세트 - 모든 학습/검증 과정이 완료된 후 최종적으로 성능을 평가하기 위한 데이터 세트
-K폴드 교차 검증에는 일반k폴드와 Stratified폴드가 있는데,
Stratified K 폴드는 불균형한 분포도를 가진 레이블 데이터 집합을 위한 K폴드 방식
학습데이터와 검증 데이터 세트가 가지는 레이블 분포도가 유사하도록 검증 데이터 추출
-교차 검증을 보다 간편하게 : cross_val_score()
폴드 세트 추출, 학습/예측, 평가를 한번에 수행
데이터 전처리 - 데이터 인코딩 - 피처 스케일링과 정규화
데이터 전처리
-데이터 클린징
-결손값(Null/NaN) 처리
-데이터 인코딩(레이블, 원-핫 인코딩)
-데이터 스케일링
-이상치 제거
데이터 인코딩
머신러닝 알고르즘은 문자열 데이터 속성을 입력받지 않으며 모든 데이터는 숫자형으로 표현되어야 합니다. 문자형 커테고리형 속성은 모두 숫자값으로 변환/인코딩되어야 합니다.
-레이블인코딩
-원-핫 인코딩 : 원-핫 인코딩은 피처 값의 유형에 따라 새로운 피처를 추가해 고유 값에 해당하는 칼럼에만 1을 표시하고 나머지 칼럼에는 0을 표시하는 방식입니다.
-판다스 get_dummies()를 이용한 원-핫 인코딩
pd.get_dummies(DataFrame)
피처 스케일링
표준화는 데이터의 피처 각각이 평균이 0이고 분산이 1인 가우시안 정규 분포를 가진 값으로 변환하는 것을 의미합니다.
-정규화는 서로 다른 피처의 크기를 통일하기 위해 크기를 변환해주는 개념입니다.
사이킷런 피처 스케일링 지원
StandardScaler: 평균이 0이고, 분산이 1인 정규 분포 형태로 변환
MinMaxScaler : 데이터값을 0과 1 사이의 범위 값으로 변환합니다.
'머신러닝' 카테고리의 다른 글
텍스트 전처리 (0) | 2022.03.15 |
---|---|
추천시스템의 이해와 문서 유사도 (0) | 2022.02.08 |
파이썬 기반 머신러닝 생태계 이해 (0) | 2022.01.21 |
평가 (0) | 2022.01.21 |
스태킹 앙상블 모델 (0) | 2022.01.20 |