목록Today I Learned (5)
소란한 블로그

1. 랜덤포레스트(Random Forest) 결정트리모델은 한 개의 트리만 사용하기 때문에 한 노드에서 오류가 발생하면 그 아래 노드에도 순차적으로 계속 영향을 준다는 단점이 있다. 또한 트리의 깊이가 깊어지면 과적합이 되는 경향이 있는데, 이런 문제들을 랜덤 포레스트 모델을 이용하여 해결할 수 있다. 랜덤포레스트는 앙상블(Ensemble) 방법이다. 앙상블은 한 종류의 데이터로 여러 머신러닝 학습모델(weak base leaner, 기본모델)을 만들고, 이 모델들의 예측결과의 평균을 계산하거나 다수결을 이용하여 예측하는 방법을 말한다. 랜덤포레스트는 결정트리를 기본모델로 하는 앙상블 방법이다. 1) Bootstrapped dataset original dataset에서 original dataset과 ..

1. 사이킷런 파이프라인 (Sklearn.pipeline.Pipeline) 사이킷런의 파이프라인 라이브러리를 이용하면 머신러닝 모델을 구현할 때 중복 코드를 최소화하여 쉽게 구현할 수 있다. 파이프라인을 이용하면 하나의 전처리 프로세스에 여러 ML 모델을 쉽게 적용시켜 볼 수 있다. 또한 그리드서치(grid search)를 통해 여러 하이퍼파라미터를 쉽게 연결할 수 있다. # 파이프라인 사용하지 않았을 때 from category_encoders import OneHotEncoder from sklearn.impute import SimpleImputer from sklearn.tree import DecisionTreeClassifier encoder = OneHotEncoder() imputer = ..
1. 데이터 세트 나누기 (train/validate/test) - Training : 모델에 학습시키기 위한 데이터. 이 데이터만을 가지고 모델을 학습시킨다. - Validation : training set을 통해 학습시킨 모델을 검증하기 위한 dataset. : test set에서 성능을 평가하기 전에 validate set을 통해 먼저 성능을 평가하고 좋지 않으면 다시 train set을 이용하여 학습 알고리즘을 수정한다. 다시말해 train set을 통해 학습시킨 모델을 test set에 적용하기 전에 validate set에 먼저 적용해 보면서 모델을 수정해 나가며 overfitting을 방지하도록 한다. - Testing : test set은 오로지 최종 성능을 평가하기 위해 쓰인다. tes..

1. Categorical data(범주형 자료)처리: One-hot encoding Categorical data는 데이터에 우선순위가 있는 경우(nominal)와 순서가 없는 경우(ordinal)으로 나뉜다. 아래의 방법은 nominal를 처리하는 방법이다. 많은 머신러닝 모델들은 문자열을 처리하지 못하기 때문에 숫자형으로 바꾸어주어야 한다.단순히 1, 2, 3, 4와 같이 양적인 측정을 할 수 있는 숫자로 바꿔줄 경우 데이터에 순위가 생겨 분석에 차질이 생길 수 있다.따라서 nominal일 경우 각 항목마다 columns을 나누어서 1, 0, 0, 0 / 0, 0, 1, 0 이런 식으로 인코딩을 해주어야한다.이것이 바로 one-hot encoding이다. - 방법1) pandas: get_dummi..