728x90
반응형

머신러닝 20

머신러닝의 분류 모델

머신러닝의 지도학습인 대표적인 유형으로 분류 모델이 있다. 항상 뭐가 있지를 고민하고 어떨때 써야하지를 잘 모르겠어서 아주 간단하게 정리를 해보고자 한다. 굉장히 좋은 블로그를 찾았는데 이 블로그를 참고해서 작성을 진행했다. https://iphoong.tistory.com/6 [머신러닝] 분류(Classification) 알고리즘 머신러닝의 지도학습에 대표적인 유형 중 하나는 분류(Classification)이다. 분류는 주어진 데이터를 클래스 별로 구별해 내는 과정으로 다양한 분류 알고리즘을 통해 데이터와 데이터의 레이블 값 iphoong.tistory.com 머신러닝 분류 모델 로지스틱 회귀(선형회귀 방식을 분류에 적용한 알고리즘) 결정트리 앙상블 학습 랜덤 포레스트(앙상블) GBM(앙상블(부스팅)..

머신러닝 2024.03.07

RobustScaler, MaxAbsScaler

스케일링에 대해 상세하게 설명을 잘 해놓으셨다!!! https://mkjjo.github.io/python/2019/01/10/scaler.html [Python] 어떤 스케일러를 쓸 것인가? * 본 포스트는 개인연구/학습 기록 용도로 작성되고 있습니다. By MK on January 10, 2019 데이터를 모델링하기 전에는 반드시 스케일링 과정을 거쳐야 한다. 스케일링을 통해 다차원의 값들을 비교 분 mkjjo.github.io 우리는 앞에서 스케일링의 방식인 MinMaxScaler(정규화)와 StandardScaler(표준화)를 봤었다. 하지만 다른 특성 스케일을 조정하는 방법이 존재한다. 바로 RobustScaler, MaxAbsScaler이다. RobustScaler은 이상치가 많이 포함된 작은..

머신러닝 2024.03.06

OrdinalEncoder (LabelEncoder vs OrdinalEncoder)

머신러닝을 공부하면서 문자열 데이터를 숫자형으로 바꾸는 사이킷런에서 제공하는 인코딩은 LabelEncoder만 쓰면 된다고 생각했다. 하지만 찾아보니 LabelEncoder는 레이블 데이터 즉 우리가 원하는 종속변수에 대해 인코딩을 할 때만 사용하라는 권고사항을 발견했다. 그렇기에 LabelEncoder를 사용할 때는 1차원의 배열을 기대하는 것이었다!!! 종속변수 즉, 우리가 예측해야하는 레이블 데이터는 1차원의 배열로 만들어져 있기 때문에 LabelEncoder는 1차원 배열을 기대!!! 그래서 독립변수 피처 데이터들의 문자열을 정수 숫자형 데이터로 바꾸는 방법인 OrdinalEncoder를 알아보자. OrdinalEncoder또한 LabelEncoder와 비슷하다. 문자열로 되어있는 데이터들을 숫자..

머신러닝 2024.03.06

데이터 인코딩 (순서가 있는 특성 매핑)

학습 알고리즘이 순서 특성을 올바르게 인식하려면 범주형의 문자열 값을 정수로 바꾸어야 한다. 하지만 size특성의 순서를 올바르게 자동으로 바꾸어 주는 함수는 없기 때문에 우리는 매핑 함수를 만들어서 직접 만들어 주어야 한다. 예를 들어보자. XL = L+1 = M+2 라는 순서가 중요한 문자열이 있다고 가정해보자. 이것을 숫자로 인코딩을 한다면 숫자로 인코딩을 진행할 때, XL, L, M 에 할당되는 숫자가 크기에 따라 중요도가 달라질 것이다. 즉 예시로 XL =3, L=2, M=1 이런식으로 순서가 있게 만들어 져야 한다. 코드로 보자. import pandas as pd df = pd.DataFrame([ ['green', 'L', 10.1, 'class1'], ['red', 'M', 13.5, '..

머신러닝 2024.03.06

pipeline 사용법

오늘은 케글 대회를 나가면서 익숙해지게 된 pipeline의 사용법을 알아보려 한다. Pipeline이란? pipeline은 피처 처리, 인코딩, 스케일링의 변환과 ML 알고리즘 학습, 예측 등을 함께 묶어서 실행할 수 있는 유틸리티이다. 사이킷런 공식문서에서도 강력하게 사용하라고 권장하는 사항이니 만큼 잘 알아두기로 하자. 일반적으로 xgboost를 예를 들어서 코드가 만들어 지는 것을 보자. 머신러닝이 돌아가기 위해서는 모든 피처 데이터의 형태가 수치형 자료이여야 한다. 그렇기에 인코딩을 진행해줘야 하고 단위(크기)를 맞춰줘야 하기 때문에 standardscaler을 사용해줘야 한다. Pipeline을 사용하지 않은 코드(스케일링, 인코딩) import numpy as np from sklearn.p..

머신러닝 2024.02.29

피처 스케일링과 정규화(StandardScaler, MinMaxScaler), 스케일링 변환시 유의점

서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업을 피처 스케일링(feature scaling)이라고 한다. 대표적인 방법으로 표준화(Standardization)와 정규화(Normalization)가 있다. 피처 스케일링과 정규화는 기본적으로 무조건 사용한다. ML알고리즘 상관없이 무조건 디폴트 값으로 사용해야 한다. RBF 커널을 이용하는 서포트 벡터 머신, 선형 회귀, 로지스틱 회귀는 데이터가 가우시안 분포를 가지고 있다고 가정을 하고 구현했기 때문에 사전에 표준화를 적용하는 것은 예측 성능 향상에 중요한 요소가 될 수 있다. 만약 트리 계열 알고리즘이라면 굳이 스케일링과 정규화가 필요가 없긴하다. 왜냐하면 변수를 모두 동일한 크기 단위로 0~1까지 변환한다 한들 크기나 비율이 변하지 않기 ..

머신러닝 2024.02.23

Feature Engineering - 데이터 인코딩(레이블 인코딩, 원-핫 인코딩)

요번에는 머신러닝의 성능을 올릴 수 있는 두번째 방법에 대해 알아보고자 한다. Feature Engineering(데이터 전처리)에 과정에는 크게 4가지로 분류를 했다. 인코딩 변환 : 문자 컬럼을 숫자로 변경 Feature Scaling : 숫자 컬럼을 적절하게 표준화, 정규화 주성분 분석(PCA) : 숫자 컬럼을 적절하게 줄여주는 역할 ==차원축소 요인 분석(Factor Analysis) : 수자 및 문자 컬럼을 적절하게 줄여주는 역할 여기서 첫번째인 인코딩 변환을 먼저 알아보도록 하자!!! 데이터 전처리는 ML 알고리즘만큼 굉장히 중요한 것이다. ML알고리즘은 데이터에 기바 하고 있기 때문에 어떤 데이터를 입력으로 가지느냐에 따라 결과도 크게 달라지고 성능도 크게 바뀌기 때문이다. 일단 처음으로 M..

머신러닝 2024.02.23

머신러닝 회귀모델 경사하강법

회귀는 통계학에서 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법을 통칭한다. 쉽게 이해하고자 예를 들면 아파트의 방 개수, 방 크기, 주변 학군 등 여러개의 독립변수에 따라 아파트 가격이라는 종속변수가 어떤 관계를 나타내는지를 모델링하고 예측하는 것이다. Y =W1X1 + W2X2+ ••• +WnXn이라는 선형 회귀식을 만든다면 Y는 종속변수 아파트 가격이며, X1,X2,•••Xn은 방개수, 방 크기, 주변 학군 등의 독립변수이다. 그리고 W1,W2,•••Wn은 이 독립변수의 값에 영향을 미치는 회귀 계수이다. 머신러닝의 관점에서 보면 독립변수는 피처에 해당되며 종속변수는 결정 값이다. 머신러닝 휘귀 예측의 핵심은 주어진 피처와 결정 값 데이터를 기반으로 학습을 하여 가장 최적의..

머신러닝 2024.02.22

하이퍼 파라미터 튜닝(GridSearchCV, RandomSearchCV)

앞선 블로그 글에서 머신러닝의 성능을 향상시키는 여러가지 방법이 있었는데 요번에는 하이퍼 파라미터 튜닝인 GridSearchCV와 RandomSearchCV에 대해 알아보고자 한다. GridSearchCV, RandomSearchCV는 교차 검증과 최적의 하이퍼 파라미터를 한번에 찾아주는 사이킷런에서 제공하는 API이다. 아직 하이퍼 파라미터에 대해 자세하게 알지는 못하지만 하이퍼 파라미터는 머신러닝 알고리즘을 구성하는 주요 구성 요소이며, 이 값을 조정해 알고리즘의 예측 성능을 개선할 수 있다. 1. GridSearchCV GridSearchCV는 교차 검증을 기반으로 이 하이퍼 파라미터의 최적 값을 찾게 해준다. 사이킷런 GridSearchCV API를 이용해 Classifier나 Regreesor와..

머신러닝 2024.02.22

교차 검증을 보다 빠르게(cross_val_score( ))

사이킷런은 교차 검증을 좀 더 편리하게 수행할 수 있게 해주는 API를 제공한다. 대표적인 것이 cross_val_score( )이다. K Fold로 데이터를 학습하고 예측하는 코드를 보면 1. 폴드 세트를 설정하고 2. for 루프에서 반복으로 학습 및 테스트 데이터의 인덱스를 추출한 뒤 3. 반복적으로 학습과 예측을 수행하고 예측 성능을 반환했다. cross_val_score( )는 이런 일련의 과정을 한번에 하는 API다. 이것의 매개변수를 보도록 하자 cross_val_score(estimator, X, y, scoring=None, cv=None, n_jobs=1, verbose=0, params=None, pre_dispatch='2*n_jobs) 이 중에서 중요한 매개변수는 estimator..

머신러닝 2024.02.21
728x90
반응형