머신러닝 7

[머신러닝] 앙상블 - 에이다부스트 (AdaBoost)

앙승블 학습을 읽고 와주세요 해당 내용에 나오는 사진과 내용은 meanxai - 에이다부스트[1/4] (Adaptive Boosting: AdaBoost) - 기본 알고리즘 에서 사용했습니다. 부스팅은 개별 트리의 실수(오차)를 통해 학습합니다. 이전 트리의 오차를 기반으로 새로운 트리를 훈련하는 것이 기본적인 아이디어입니다. (각각의 트리가 독립된 연산을 수행하는 '배깅'과 다르다는 것을 알 수 있습니다) 그 예로 에이다부스트가 있습니다. 에이다부스트는 전형적인 부스팅 학습의 일종으로써 오류 샘플의 가중치를 높여 잘못된 예측에 더 많은 주의를 기울입니다. 에이다부스트의 학습 과정 - 균등분포로 학습 데이터를 샘플링해서 weak learner (약한 모델)로 학습 후, error (추정오차)를 측정합니다..

[머신러닝] 결정트리 (Decision tree)

결정트리란 결정트리는 선형 회귀와 로지스틱 회귀처럼 특성을 가중치와 곱하는 대신 특성에 대한 질문에 따라 데이터를 나눕니다. 예를 들어 결정 트리가 온도 특성을 가지고 데이터를 두 그룹으로 나눌 수 있다고 칠 때 온도가 20도 이상인 그룹과 20도 이하인 그룹이 있으면, 각 그룹을 계절 기반으로 나눌 수 있습니다 겨울에 경우에는 그렇지 않은 경우(70 이하)이지만 더 정확한 데이터 분별을 위해 데이터를 네 개의 그룹(봄, 여름, 가을, 겨울)으로 나눈다면 어떨까요? 이렇게 알고리즘이 일정 수준의 정확도에 도달할 때까지 데이터를 새로운 그룹으로 나누는 과정이 계속됩니다 결정 트리는 훈련 세트에 있는 각 샘플을 정확한 타깃에 매핑할 때까지 수천 개의 그룹을 만들 수 있습니다. 훈련 세트에 대해서 100% 정..

[머신러닝] 앙상블 학습 (Ensemble Learning)

앙상블(Ensemble) 여러 분류기(Classifier)를 하나의 메타 분류기로 연결하여 개별 분류기보다 더 좋은 성능을 달성하는 학습법입니다 쉽게 말해 '집단 지성'과 같이 강력한 하나의 모델을 사용하는 대신보다 약한 모델 여러 개를 조합하여 더 정확한 예측을 합니다. 하나의 모델이 학습 데이터에 과적합(overfitting) 되는 것을 막기 위해 약한 모델을 여러 개 결합시켜 그 결과를 종합한다는 게 기본적인 앙상블의 아이디어입니다 앙상블 학습 방법 앙상블 학습은 보팅(Voting), 배깅(Bagging), 부스팅(Boosting) 스태킹(Stacking)이 있습니다. 보팅(Voting) 보팅은 서로 다른 알고리즘 모델 여러 개를 결합하여 구해진 예측값들을 투표를 통해 결정하는 방식입니다. 보팅은 ..

[머신러닝] 전처리 (pre-processing)

전처리는 데이터 분석에 적합하게 데이터를 가공, 변형, 처리, 클리닝하는 과정입니다. 데이터가 깔끔하지 않으면 그만큼 이를 처리하는 모델의 성능이 좋지 못한 경우가 많습니다. 그렇기에 머신러닝 학습 전에 전처리를 해야 합니다. 실제로 분석가의 80% 시간을 데이터 수집 및 전처리에 사용하고 있습니다. [pandas] 데이터 전처리 를 학습하고 오시기 바랍니다. 사용 데이터 (타이타닉) 결측치 NULL 데이터에서 .isnull( ) 또는 .isna( ) 함수를 사용해 쉽게 결측값을 찾을 수 있습니다. 만일 결측값의 갯수를 구하려면 .isna( ).sum( ) 을 사용하면 됩니다. 또한 dataFrame['칼럼명'].isnull( ) 을 하게 되면 해당 칼럼 값들만 찾을 수 있습니다. 이렇게 찾은 결측값은 ..

[머신러닝] 회귀(Regression) 선 그래프

[머신러닝] K - 최근접 이웃 회귀 (K-NN Regression) 01과 이어집니다. 01 때는 그래프가 산포도로만 나타나 있었습니다. 이번에는 산포도 위에 그 값에 해당하는 직선과 곡선을 그려보겠습니다. 선형회귀 (linear regression) 널리 사용되는 대표적인 회귀 알고리즘입니다 이 알고리즘을 활용하여 데이터의 a(기울기)와 b(절편)을 찾을 수 있습니다. from sklearn.linear_model import LinearRegression lr = LinearRegression() lr.fit(X_train, y_train) lr.predict([[50]]) KNeighborsRegressor 모델(1033)을 썻을 때와 결과가 다르게 나왔습니다. 이제 이를 표현한 그래프를 그려보겠..

[머신러닝] K - 최근접 이웃 회귀 (K-NN Regression) 01

회귀는 값을 예측하는 것이므로, '새로운 데이터 X가 주어졌을 때, X에 가장 가까운 K개의 데이터 값을 평균내서 값(Y)을 예측하는 알고리즘' 입니다. 실습 - 물고기 무게 예측 물고기의 길이를 입력 데이터(X)로 사용하고, 물고기의 무게를 출력 데이터(Y)로 사용하겠습니다. fish_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 30...

[머신러닝] K - 최근접 이웃 분류(K-NN Clssification)

K-최근접 이웃(K-Nearest Neighbor)은 머신러닝에서 사용되는 분류(Classification) 알고리즘입니다. 새로운 입력(분류되지 않은 검증 데이터)을 받았을 때 기존 클러스터(군집화)에서 모든 데이터와 인스턴스 기반 거리를 측정한 후 가장 많은 속성을 가진 클러스터에 할당합니다. 실습 - 도미, 빙어 분류 도미와 빙어의 길이(length) 및 무게(weight)를 학습하여 새로운 입력값(length, weight)이 들어왔을 때 도미인지, 빙어인지 분류하는 모델을 만들어보겠습니다. 데이터 생성 # 도미 bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0..