Carpe diem

NLP 관련 석사 과정 재학 중 (2022.03 ~ )

AI/Machine Learning 8

앙상블 Voting

[개요] Hard Voting, Soft Voting이 무엇인지 알아보고, 이들을 활용하는 예제를 다뤄본다. [내용 정리] 1. Voting 0) 정의 -> 서로 다른 종류의 알고리즘들을 결합하여 다수결 방식으로 최종 결과 출력한다. 1) Hard Voting -> 다수의 추정기가 예측한 값들 중 많은 것을 선택한다. 2) Soft Voting · 서로 다른 종류의 알고리즘들을 결합하여 다수결 방식으로 최종 결과 출력 · 다수의 추정기에서 각 레이블 별 예측한 확률들의 평균을 내서 높은 레이블값을 결과값으로 선택 · Hard Voting보다 Soft Voting의 성능이 더 좋다. 3) voting 함수 sklearn.ensemble.VotingClassifier · estimators: 앙상블할 모델들..

AI/Machine Learning 2021.12.01

그리드서치와 랜덤서치

[개요] 그리드서치와 랜덤서치가 무엇인지 알아보고, 어떻게 활용하는지 살펴본다. [내용 정리] 1. 그리드서치 0) 정의 -> 모델의 성능을 가장 높게 하는 최적의 하이퍼파라미터를 찾는 방법으로, 하이퍼파라미터 후보들을 하나씩 입력해 모델의 성능이 가장 좋게 만드는 값을 찾는다. 1) 함수 sklearn.model_selection.GridSearchCV -> 시도해볼 하이퍼파라미터들을 지정하면 모든 조합에 대해 교차검증 후 제일 좋은 성능을 내는 하이퍼파라미터 조합을 찾아준다. · fit(X, y): 학습 · predict(X): 분류-추론한 class, 회귀-추론한 값 · predict_proba(X): 분류문제에서 class별 확률을 반환 · cv_results_: 파라미터 조합별 평가 결과를 Di..

AI/Machine Learning 2021.11.29

불균형 클래스 분류 다루기

[개요] 데이터 불균형이 무엇인지 알아보고, 이를 해결할 수 있는 방법들 중 Cost-sensitive Learning 기법과 SMOTE 기법에 대해 다룬다. [내용 정리] 1. 데이터 불균형 0) 정의 -> 어떤 데이터에서 각 클래스 (주로 범주형 변수)가 가지고 있는 데이터의 양에 차이가 큰 경우를 말한다. 예시) 이번 포스팅에서 다룰 대출 문제 예측 데이터셋에도 데이터 불균형이 있다. 불균형 데이터에 대해 아무런 처리도 하지 않고 예측을 수행하면, 다음과 같은 결과가 발생한다. 1번 클래스 데이터 (소수)를 0번 클래스 데이터 (다수)로 예측하는 경우가 상당히 많으며, 이에 데이터 불균형 문제를 해결해보려고 한다. 1) 해결 방법 · 언더 샘플링 -> 불균형한 데이터 셋에서 높은 비율을 차지하던 클..

AI/Machine Learning 2021.11.28

과적합과 일반화

[개요] 과적합에 대해서 알아보고, 이러한 상황에서 하이퍼파라미터 튜닝을 통해 일반화하는 방법에 대해 알아본다. [내용 정리] 1. 과적합과 일반화 1) 과대적합 (overfitting) · 모델이 훈련 데이터에 대한 예측 성능은 너무 좋지만 일반성이 떨어져 새로운 데이터 (테스트 데이터)에 대해선 성능이 좋지 않은 것 · 모델이 훈련 데이터 세트의 특징에 너무 맞춰서 학습되었기 때문에 일반화 되지 않아 발생 * 과대적합은 학습 데이터 양에 비해 모델이 너무 복잡한 경우 발생하며, 이를 해결하기 위해 데이터의 양을 늘리거나 모델을 좀 더 단순하게 만드는 방법을 사용한다. (모든 모델은 모델의 복잡도를 변경할 수 있는 규제와 관련된 하이퍼파라미터를 제공) 2) 과소적합 (underfitting) · 모델이..

AI/Machine Learning 2021.11.26

수치형 데이터 전처리

[개요] 키와 몸무게 등 수치형 데이터들을 전처리 해야 하는 이유와, 수행하는 방법에 대해 알아본다. [내용 정리] 1. Feature Scaling (정규화) 0) 정의 · 각 피처가 가지는 값들의 숫자 범위 (척도, Scale)이 다를 경우 이 값의 범위를 일정한 범위로 맞추는 작업 · 트리 계열을 제외한 대부분의 머신러닝 알고리즘들이 Feature간의 서로 다른 척도에 영향을 받음 · Scaling (정규화)은 train set으로 fitting하며, test set이나 예측할 새로운 데이터는 train set으로 fitting 한 것으로 변환 * 같은 100이라는 숫자 데이터도 키가 100cm인 것과 무게가 100g인 것은 큰 차이가 있다. 이에 이러한 범위를 일정하게 맞춘다. 1) 함수 · fi..

AI/Machine Learning 2021.11.25

One-Hot Encoding

1. One-Hot Encoding 0) 정의 · N개의 클래스를 N차원의 One-Hot 벡터로 표현되도록 변환한다. (고유값들을 피처로 만들고 정답에 해당하는 열은 1, 나머진 0으로 -) · 숫자의 차이가 모델에 영향을 미치는 선형 계열 모델에서 범주형 데이터로 변환할 때 사용한다. · Decision Tree 계열의 알고리즘은 Feature에 0이 많은 경우 성능이 떨어지기 때문에 Label Encoding을 수행한다. 1) 함수 · sklearn.preprocessing.OneHotEncoder 더보기 · fit(데이터셋): 데이터셋을 기준으로 어떻게 변환할 지 학습 · transform(데이터셋): argument로 받은 데이터셋을 원핫인코딩 처리 · fit_transform(데이터셋): 학습과..

AI/Machine Learning 2021.11.24

Label Encoding

[개요] Label Encoding이 무엇인지, 어떻게 사용되는지에 대해 알아본다. [내용 정리] 0. 범주형 데이터 -> scikit-learn의 머신러닝 API들은 Feature나 Label의 값들이 숫자 (정수 / 실수)인 것만 처리할 수 있기 때문에, 문자열일 경우 숫자형으로 변환하여 처리해야 한다. * 범주형이 아닌 단순 문자열인 경우, 일반적으로 제거함 1. 레이블 인코딩 (Label Encoding) 0) 정의 -> 문자열(범주형) 값을 오름차 순으로 정렬 후 0부터 1씩 증가하는 값으로 변환한다. 숫자의 차이가 모델에 영향을 주지 않는 트리 계열 모델(의사결정나무, 랜덤포레스트)에 적용하며, 숫자의 차이가 모델에 영향을 미치는 선형 계열 모델 (로지스틱회귀, SVM, 신경망)에는 사용할 수..

AI/Machine Learning 2021.11.23