본문 바로가기

파이썬 머신러닝 완벽가이드

(18)
4.3 앙상블 학습(보팅) 이번 시간부터 이제 본격적으로 머신러닝 분류의 하이라이트 앙상블에 대하여 다뤄보도록 하겠습니다. 앙상블 학습 유형에 따라 이론과 실습을 진행하도록 하겠습니다. 해당 내용은 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 1. 앙상블 학습(Ensemble Learning) 앙상블 학습 : 여러 개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법으로, 크게 보팅(Voting), 배깅(Bagging), 부스팅(Boosting)으로 나눌 수 있다. 앙상블은 단순하게 생각해서 여러 명의 전문가가 모여 다같이 힘을 합쳐 문제를 해결하는 것이라 생각하면 됩니다. 앙상블 기법을 통해 대부분의 정형 데이터 분류 시 높은 성능을 보여줍니다. 2. 보팅(Voting) 보팅(Voting..
4.2 결정 트리 실습 - 사용자 행동 인식 데이터 세트 '사용자 행동 인식 데이터셋'을 통해 결정 트리 실습을 진행해보도록 하겠습니다. 해당 내용은 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 먼저 데이터 전처리를 해주도록 하겠습니다. 데이터 전처리는 머신러닝에서 매우 중요한 부분이지만 지금은 알고리즘을 학습시키는 방법에 집중하기로 하고 간단하게 보고만 넘어가도록 하겠습니다. 아래 코드는 pandas에서는 중복된 피처를 처리를 못하기 때문에 중복된 피처에 _1, _2와 같이 구분자를 추가하여 피처를 처리하는 과정입니다. import pandas as pd import matplotlib.pyplot as plt %matplotlib inline ### features.txt 파일에 있는 컬럼명을 입력 받아서 중복된 컬럼명은 원본 컬럼명+_1, _2와..
4.1 분류(결정트리) 4장 '분류'부터가 이제 정말 머신러닝의 시작입니다. 그전까지는 머신러닝에 대한 전반적인 과정을 다뤘다면 분류를 시작으로 머신러닝의 핵심 알고리즘을 다뤄보도록 하겠습니다. 같이 시작하시죠!! 해당 내용은 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 1. 분류 분류 : 학습 데이터로 주어진 데이터의 피처와 레이블 값을 머신러닝 알고리즘으로 학습해 모델을 생성하고, 새로운 데이터가 주어졌을 때 미지의 레이블 값을 예측하는 것 앞서 우리가 다뤘던 예제들이 모두 분류에 해당하는 문제들이었습니다. 분류에는 다양한 알고리즘이 존재하지만, 그중에서 정형 데이터에 대하여 가장 많이 사용하는 알고리즘이 바로 앙상블 기법입니다. 앙상블 기법은 뒤에서 더욱 자세하게 다루도록 하고 이번 시간에는 앙상블 기법의 가장 ..
3.3 피마 인디언 당뇨병 예측 이번 시간에는 지금까지 다룬 다양한 평가 지표를 가지고 피마 인디언 당뇨병 예측을 진행해보고 성능을 평가해보도록 하겠습니다. 지금까지 배운걸 실제로 적용해보는 것이니 가벼운 마음으로 한번 쓱 보면 될 것 같습니다. 해당 내용은 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 먼저 '피마 인디언 데이터셋'을 분석해보도록 하겠습니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, precision_score, recal..
3.2 평가(F1 스코어, ROC와 AUC) 지난 시간에 아주 재현율과 정밀도에 대해 깊이 다뤄봤습니다. 서로는 상호 보완관계로 하나만 강조할 수는 없죠 따라서 두 평가지표를 모두 고려한 F1 스코어와 ROC에 대해 다뤄보도록 하겠습니다. 이는 '파이썬 머신러닝 완벽가이드'를 정리한 내용입니다. 1. F1 스코어 F1 스코어 : 정밀도와 재현율을 결합한 지표로, 정밀도와 재현율 어느 쪽으로 치우치지 않을 때 상대적으로 높은 값을 가진다. F1 스코어 공식의 다음과 같습니다. F1 스코어는 f1_score()라는 API를 통해 구현이 가능합니다. 앞선 타이타닉 예제에서 F1 스크어를 구해보도록 하겠습니다. from sklearn.metrics import f1_score def get_clf_eval(y_test , pred): confusion =..
3.1 평가(정밀도/재현율) 머신러닝은 데이터의 가공/변환, 모델 학습/예측, 평가로 이루어집니다. 이번 시간부터는 평가에 대하여 집중적으로 배워보도록 하겠습니다. 우리는 앞서 평가 방법으로 정확도를 사용했습니다. 이번 장에서는 정확도 이외에 다른 평가방법에 대하여 한번 알아보도록 하겠습니다. 이는 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 1. 정확도 평가 방법의 첫 번째로는 그동안 우리가 계속 다뤄왔던 정확도가 있습니다. 정확도는 예측과 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수입니다. 지금까지 정확도로 평가를 진행했습니다. 하지만 정확도가 평가지표로 적절하지 않은 상황이 있습니다. 바로 데이터의 분포도가 불균형할 때입니다. 어떤 상황인지 아래 예시 코드를 통해 알아봅시다. from sklearn.datas..
2.4 사이킷런으로 수행하는 타이타닉 생존자 예측 이번 시간에는 그동안 배운 데이터 전처리, 교차검증, 학습 등의 방법을 모두 사용하여 캐글의 아주 대표적인 문제인 '타이타닉 생존자 예측'을 해보도록 하겠습니다. 자세한 이론적인 설명은 앞에서 다뤘으니 코드들 위주로 그동안 배운 이론들이 어떻게 적용되는지 간단간단하게 보고 넘어가도록 하겠습니다. 이는 '파이썬 머신러닝 완벽가이드'를 정리한 내용입니다. 먼저, 타이타닉 탑승자 데이터가 어떻게 생겼는지 살펴보도록 하겠습니다. 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') ..
2.3 데이터 전처리 이번에는 데이터 전처리에 대하여 정리해보도록 하겠습니다. 머신러닝은 데이터를 바탕으로 학습하고 예측합니다. 즉, 어떤 데이터를 가지고 학습하냐에 따라 해당 모델의 성능이 결정됩니다. 그만큼 데이터는 매우 중요합니다. 하지만 모든 데이터가 완전하지는 않습니다. 데이터에는 결손값(NaN)이 존재할 수 있습니다. 이러한 결손값은 처리되어야합니다. 또한 데이터 중에는 문자열이 존재할 수 있습니다. 하지만 문자열은 모델이 인식할 수 없기 때문에 이를 인코딩하여 숫자로 변환해야 합니다. 이번 시간에는 이러한 데이터 전처리를 어떻게 하는지에 대하여 배워보도록 하겠습니다. 이는 '파이썬 머신러닝 완벽 가이드'를 정리한 내용입니다. 1. 데이터 인코딩 데이터 인코딩은 문자열 피처를 숫자형으로 인코딩하는 것입니다. 문자열..

728x90
반응형