본문 바로가기

AI_basic/ML16

[ML] SVM SVM (support vector machine) -> 매우 강력하고 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용할 수 있는 다목적 머신러닝 모델 -> 특히 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합함 1. 선형 SVM 분류 왼쪽 그래프의 실선같은 경우 학습 데이터에 대해 잘 분류하고 있으나, 경계가 너무 가까워 새로운 샘플에 대해 잘 작동하지 못할 수 있음 오른쪽 그래프의 실선은 제일 가까운 훈련샘플로부터 가장 멀리 떨어져 있음 -> large margin classification 도로 경계에 위치한 샘플(오른쪽 그래프의 동그라미로 표시된 샘플)에 의해 결정됨 -> 이러한 샘플을 support vector라고 부름 ** SVM은 특징(feature)들에 스케일에 민.. 2022. 8. 1.
규제가 있는 선형 모델 1. 릿지 회귀 -> 학습 알고리즘을 데이터에 맞추면서 모델의 가중치가 가능한 작게 유지하려고 함 -> 규제항은 훈련하는 동안에만 비용 함수에 추가되고, 모델의 성능은 규제가 없는 성능 지표로 평가함 -> a는 모델을 얼마나 많이 규제할지 조절하는데, 0이면 선형회귀와 같아짐 2. 라쏘 회귀 -> 덜 중요한 특성의 가중치를 제거하려고 하는 경향 (가중치를 0으로 만듬) -> 자동으로 특성을 선택하여 sparse model을 만듬 (0이 아닌 특성의 가중치가 적음) 3. 엘라스틱넷 (라쏘 + 릿지 = 쏘릿) -> r을 통해 라쏘와 릿지 회귀의 혼합 비율을 조절함 1) 일반적으로 규제가 약간있는 것이 대부분의 경우에 좋아 평범한 선형 회귀는 피하는 것이 좋음 2) 기본적으로? -> 릿지 3) 특성이 몇 개뿐.. 2022. 7. 28.
[ML] 지도학습/회귀 회귀 평가 지표 Part.2 skit-learn 라이브러리를 사용한 회귀 평가 지표 실습 (데이터는 자전거 대여 수요예측(캐글))을 사용하였습니다. sklearn.metrics에서 mean_squared_error, mean_absolute_error를 불러와 mse와 mae를 계산할 수 있습니다. MSLE를 mean_squared_log_error를 통해 구할 수 있지만, 데이터 값의 크기에 따라 오버플로/언더플로 오류가 발생할 수 있습니다. 따라서 np.log1p()를 통해 이 문제를 해결해 줍니다. 그리고 log1p()를 통해 변환된 값은 expm1()을 통해 원래 스케일로 복구할 수 있습니다. 따라서 다음과 같은 함수를 만들어 줍니다. 위 함수를 통해 기본적인 전처리만 한 데이터셋에 대한 회귀모델 적용 후 평가입니다. 다음은.. 2021. 9. 24.
[ML] 지도학습/회귀 회귀 평가 지표 Part.1 회귀 평가 지표 회귀의 평가를 위한 지표는 실제 값과 회귀 예측값의 차이를 기반으로 합니다. 이 차이는 단순히 합산하면 오류가 0에 가깝게 나타날 수 있기 때문에 오류의 절댓값 평균이나 제곱 또는 제곱한 뒤 다시 루트를 씌운 평균값을 구합니다. 회귀 평가 지표 종류 1) MAE (Mean Absolue Error) 실제 값과 예측 값의 차이를 절댓값으로 변환해 평균한 것입니다. 2) MSE (Mean Squared Error) 실제 값과 예측 값의 차이를 제곱해 평균한 것 3) RMSE (Root Mean Squared Error) MSE 값은 오류의 제곱을 구하므로 실제 오류 평균보다 더 커지는 특성이 있어 MSE에 루트를 씌운 RMSE 값을 쓰는 것입니다. 4) MSLE (Mean Squared Lo.. 2021. 9. 24.
[ML] 비지도학습 / 군집화 / K-means K-평균은 군집화에서 일반적으로 사용되는 알고리즘입니다. K-평균은 군집 중심점이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법입니다. 위 사진처럼 임의의 점에서 가까운 점들을 군집화하고 그 군집의 중심점을 찾아 그 중심점에 가까운 점들을 다시 군집화하는 순서를 거쳐 중심점을 이동했는데 데이터의 중심점 소속 변경이 없어질 때 군집화를 종료합니다. K-평균의 장점 1. 일반적인 군집화에서 가장 많이 사용된다 2. 알고리즘이 쉽고 간결하다 K-평균의 단점 1. 군집화 정확도가 떨어진다. (PCA적용) 2. 반복횟수가 많을 경우 수행시간이 느리다. 3. 군집 개수 설정을 가이드하기 어렵다. 사이킷런 K-평균 주요 파라미터 1. n_cluster : 군집의 개수, 즉 .. 2021. 7. 30.
[ML] 데이터 전처리 - SMOTE 오버 샘플링 언더 샘플링과 오버 샘플링 언더샘플링 - 많은 레이블을 가진 데이터 세트를 적은 레이블을 가진 데이터 세트 수준으로 감소시킴 오버샘플링 - 적은 레이블을 가진 데이터 세트를 많은 레이블을 가진 데이터 세트 수준으로 증식시킴 * 오버 샘플링 방식이 예측 성능상 더 유리한 경우가 많아 주로 사용됨 SMOTE(Synthetic Minority Over-sampling Technique) SMOTE은 적은 데이터 세트에 있는 개별 데이터들의 K 최근접 이웃을 찾아서 이 데이터와 K개의 이웃들의 차이를 일정 값으로 만들어서 기존 데이터와 약간 차이가 나는 새로운 데이터들을 생성하는 방식입니다. SMOTE을 구현한 대표적인 파이썬 패키지인 imbalanced-learn은 아나콘다 프롬프트를 관리자 권한으로 실행하고.. 2021. 7. 24.
[ML] 지도학습/분류 GBM(Gradient Boosting Machine) GBM이란? GBM은 AdaBoost와 개별 약한 학습기(weak learner)가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측을 수행한다는 점에서 유사하나, 가중치 업데이트를 경사 하강법(Gradient Descent)를 이용하는 것이 큰 차이입니다. AdaBoost는 이전에 잘못 분류한 데이터에 가중치를 더 많이 주고, GBM은 각 관측치마다 잔차를 구하고, 이 잔차에 첫 번째 약한 학습기를 적합시킵니다. 적합된 결과에 따라 잔차의 예측값 (마지막 노드 (leaf)에 속한 잔차들의 평균)을 구하고 잔차 예측값 * 학습률을 이전 예측값과 더해 새롭게 예측값을 업데이트합니다 의 순서를 통해 가중치를 업데이트하게 됩니다. GBM 하이퍼 파라미터 트리 기반 파라미터는 결정트.. 2021. 7. 23.
[ML] 지도학습/분류 랜덤 포레스트(RandomForest) 랜덤 포레스트란? 랜덤포레스트는 배깅의 대표적인 알고리즘으로, 앙상블 알고리즘 중 비교적 빠른 수행속도를 가지고 있으며, 높은 예측 성능을 보이고 있습니다. 기반 알고리즘은 결정 트리로서, 결정 트리의 쉽고 직관적인 장점을 그대로 가지고 있습니다. 위와 같이 랜덤 포레스트는 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 중첩되게 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 하게 됩니다. 랜덤 포레스트의 하이퍼 파라미터 1. n_estimators : 결정 트리의 개수를 지정하고, 디폴트는 10개입니다. 2. max_features : 결정 트리와 같으나 디폴트가 "None"이 아니라 "auto"="sprt"와 같습니다. 3. max.. 2021. 7. 23.
[ML] 앙상블 학습의 종류 앙상블 학습이란? 앙상블 학습이란 여러 개의 Classification을 생성하고 그 예측을 여러 방법으로 결합함으로써 보다 정확한 최종 예측을 도출하는 기법을 말합니다. 앙상블 학습의 목표는 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것입니다. 앙상블 학습의 종류 1. 배깅(Bagging) - 각각의 분류기가 모두 같은 유형의 알고리즘 기반이지만, 데이터 샘플링을 다르게 가져가면서 학습을 수행해 보팅을 수행하는 것입니다. - 개별 분류기에 할당된 학습 데이터는 원본 학습 데이터를 샘플링해 추출하는데, 이렇게 개별 분류기에게 데이터를 샘플링해서 추출하는 방식을 부트스트래핑(Bootstrapping) 분할 방식이라고 합니다. - 교차 검증과 다르게 데이터 세트 간.. 2021. 7. 22.