본문 바로가기

전체 글65

[1128] Confusion Matrix, Resampling, Deep Learning 이진 분류의 평가 정확도(accuracy)의 맹점 클래스가 불균형한 데이터에서 모델의 성능과 관련 없이 높은 평가를 줄 수 있다. 현실세계의 데이터는 대부분 불균형한 데이터다. 이런 사례는 Accuracy로 측정하면 99.99 % 가 나온다면 제대로 측정하기가 어렵다. ex. 제조업에서 양불검출, 스팸메일 분류, 희귀질병(암 진단여부) 검사, 게임 어뷰저 등 ex. 금융 : 은행 대출 사기, 신용카드 사기, 상장폐지종목 여부 등 ex. IT관련 => 게임 어뷰저, 광고 어뷰저, 그외 어뷰저 대회에서 어뷰저 관련 내용을 찾을 때는 Fraud 등으로 검색하면 여러 사례를 찾을 수 있다. Confusion Matrix 1종 오류 통계상 실제로는 음성인데 양성으로 결과가 나오는 것을 말한다. Precision(.. 2022. 11. 28.
Confusion Matrix과 Accuracy 1. Confusion Matrix Confusion Matrix(혼동 행렬, 오차 행렬)란 ? Confusion Matrix은 분류 문제에서 모델의 예측값($\hat{y}$)과 실제 데이터의 값($y$)을 비교하여 어떤 오류가 발생하고 있는지를 알아보고자 하는 지표이다. 다들 아시다시피, Confusion Matrix(혼동 행렬, 오차 행렬)은 그 누구보다 이름값을 잘하고 있으니 주의해서 기억하자! Actual은 실제값($y$), Predicted는 예측값($\hat{y}$)을 의미한다. 💡 True/False: 실제와 예측이 일치하는가? Positive/Negative: 무엇으로 예측했는가? TN(True Negative, Negative Negative): 실제는 Negative인데, Negativ.. 2022. 11. 24.
[1123] 부스팅 3대장과 분류의 평가지표 면접 질문 ! Cross Validation은 무엇이고 어떻게 해야하나요? 회귀 / 분류시 알맞은 metric은 무엇일까요? 알고 있는 metric에 대해 설명해주세요(ex. RMSE, MAE, recall, precision …) 정규화를 왜 해야할까요? 정규화의 방법은 무엇이 있나요? Local Minima와 Global Minima에 대해 설명해주세요. 차원의 저주에 대해 설명해주세요 dimension reduction기법으로 보통 어떤 것들이 있나요? 부스팅 알고리즘에서의 learning_rate와 n_estimators의 trade-off learning_rate를 줄인다면 가중치 갱신의 변동폭이 감소해서, 여러 학습기들의 결정 경계(decision boundary) 차이가 줄어들게 됩니다. n.. 2022. 11. 23.
[실습으로 배우는 머신러닝] 5. Support Vector Machine 본 내용은 K-MOOC 실습으로 배우는 머신러닝 강의의 내용을 듣고 작성하였습니다. 실습으로 배우는 머신러닝 www.kmooc.kr 5. Support Vector Machine 1) Support Vector Machine SVM 1995~96년에 처음 제안된 머신러닝 방법론으로 2000년대부터 2010년대까지 널리 사용되어 왔던 방법이다. 딥러닝 이전까지 가장 널리 사용된 방법론이며 여전히 많은 연구가 진행되고 있다. 선형이나 비선형 분류 등의 복잡한 분류 문제를 잘 해결하며, 회귀나 이상치 탐색에도 사용 가능하다. 수 천~수 만 개 정도의 중소 규모의 크기를 가진 데이터에 적합하다. 왼쪽 그림처럼 빨간 선으로 데이터를 분류하며 파라미터를 조절해 $x_1$과 $x_2$를 가장 잘 분류할 수 있는 선을.. 2022. 11. 22.
[실습으로 배우는 머신러닝] 4. Model Learning with Optimization -최적화와 경사하강법 본 내용은 K-MOOC 실습으로 배우는 머신러닝 강의의 내용을 듣고 작성하였습니다. 실습으로 배우는 머신러닝 www.kmooc.kr 4. Model Learning with Optimization 1) 최적화와 모형 학습 $y$와 $\hat{y}$간의 Loss 함수를 정의하고 최적화한다. Heuristic : Methods assuming the spatial properties ex. KNN, DT ➡️ 표면적인 수학적인 Loss 함수 X Numerical Optimization : The models are mathematically formulated and optimized ex. Linear Regression, Logistic Regression, SVM, Neural Networks ➡️ 수.. 2022. 11. 22.
[실습으로 배우는 머신러닝] 3. Classification - KNN과 Logistic Regression + Bias-Variance Tradeoff 본 내용은 K-MOOC 실습으로 배우는 머신러닝 강의의 내용을 듣고 작성하였습니다. 실습으로 배우는 머신러닝 www.kmooc.kr 3. Classification 1) 머신러닝 분류 모델링 A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E. - Tom Mitchell 과거에는 input을 넣었을 때 output이 나오는 일련의 logic 또는 function, pattern을 사람이 직접 입력해줬다면, 현.. 2022. 11. 21.
[실습으로 배우는 머신러닝] 1, 2. 머신러닝 소개 본 내용은 K-MOOC 실습으로 배우는 머신러닝 강의의 내용을 듣고 작성하였습니다. 실습으로 배우는 머신러닝 www.kmooc.kr 1. Introduction to Machine Leaning AI, ML, DL 결국에 머신러닝이라는 것은 함수를 학습하는 것이다. 데이터가 있고 컴퓨터를 학습시킬 수 있는 알고리즘을 컴퓨터에게 입력을 시켜주면 컴퓨터가 스스로 데이터 안에 있는 유용한 패턴을 찾아서 이와 같이 함수를 찾아준다. 그러면 실제 상황에서는 학습된 함수를 가져와서 유용한 output을 내는 함수로서 사용을 한다. 과거의 AI, Traditional AI는 Knowledge Engineering라고 불렸다.이 단어가 암시하는 바와 같이 지식을 공학, 지식을 잘 조직해서 우리가 유용한 함수로 만드는 .. 2022. 11. 21.
PyCaret을 이용한 AutoML Tutorial 아나콘다를 이용한 PyCaret 설치 주위에서 PyCaret을 설치하다가 파이썬 환경을 갈아 엎었다는 수많은 비명이 들려서, 얌전히 conda 가상환경을 이용해 진행했다. 가상환경 이름은 pycaret이라고 했다. # create a conda environment conda create --name yourenvname python=3.8 가상환경을 생성하면 해당 가상환경을 활성화해주는 것이 중요하다. 본인이 만든 가상환경으로 바뀌었는지 꼭 체크하자 사진에서는 base에서 pycaret으로 가상환경이 바뀐 것을 볼 수 있다. # activate conda environment conda activate yourenvname 아래의 코드는 pycaret의 슬림버전이며, 정식버전을 설치하기 위해선 pip .. 2022. 11. 17.
최적화와 경사하강법(Gradient Descent) 최적화와 경사하강법(Gradient Descent) 1. 손실 함수(loss function)의 최적화(Optimization) 최적화란 일상에서 우리가 익숙하게 경험하고 있는 원리다. 집에서 직장까지의 최단 경로를 고려해서 출퇴근을 하거나, 여행 계획을 짤 때 시간과 비용을 고려해서 최적의 장소를 선별하는 등 일상에서 우리는 수많은 최적화 과정을 거친다. 머신러닝 분야에서 최적화(Optimization)는 손실 함수(loss function)을 최소화하는 파라미터를 구하는 과정을 말한다. 손실 함수는 지도학습(Supervised Learning) 시 알고리즘이 예측한 값과 실제 정답의 차이를 비교하기 위한 함수이다. 즉, '학습 중에 알고리즘이 얼마나 엉터리인지를 측정하는 기준'를 확인하기 위한 함수로.. 2022. 11. 17.
[1116] Boosting Model 0801 실습 사이킷런을 이용한 원핫인코딩 cf. benz 데이터에서는 이례적으로 원핫인코딩을 전부 적용해야 성능이 잘 나옴 현실 세계에서는 train을 기준으로 학습이 진행되어야 한다 handle_unknown="ignore": test에 있으나 train에 없는 경우에는 train 없는 컬럼에 대해서 원핫인코딩을 진행하지 않고 무시 ohe는 numpy array 형태로 반환이 되는데 인덱스 정보가 없다 => 인덱스 재지정을 해주지 않으면 concat이 제대로 실행되지 않음 from sklearn.preprocessing import OneHotEncoder ohe = OneHotEncoder(handle_unknown="ignore") train_ohe = ohe.fit_transform(train... 2022. 11. 16.