본문 바로가기

파이썬

(49)
릿지 회귀, 오버피팅 방지를 위한 선형회귀 모델 규제 통상적으로 모델의 복잡도가 커지면 분산은 커지고 편향은 작아진다. 반대로 모델이 단순해지면 분산은 작아지고 편향은 커진다. 이렇게 분산과 편향은 서로 트레이드 오프 관계에 있다. ★먼저 읽어보면 좋은 글 편향-분산 트레이드오프 개념과 MSE 그리드 서치로 최적의 하이퍼파라미터 찾기 머신러닝에서 경계해야 할 것 중 하나가 바로 오버피팅이다. train data에 지나치게 훈련이 되면 과대적합이 발생해 새로운 test data를 잘 예측하지 못하게 된다. 이러한 오버피팅을 방지하기 위한 방법 중 하나가 바로 모델을 규제하는 것이다. 선형 회귀 모델에서는 모델의 가중치를 제한함으로써 규제한다. 규제 방법에는 릿지, 라쏘, 엘라스틱넷 3가지가 있다. 오늘은 그 첫번째인 릿지에 대해 살펴보자. 릿지 회귀의 규제는..
편향(bias) 분산(variance) 트레이드 오프와 MSE 지도학습에서 bias, variance는 에러 처리할 때 중요하게 생각해야 하는 요소이다. bias(편향): 실제 값과 예측 값 간의 차이 variance(분산): 예측값이 흩어진 정도 (예측값의 평균과 예측값들 간의 차이) 둘다 손실(loss)이기 때문에 가능하면 bias, variance를 모두 작게 하는 것이 좋다. 하지만 기본적으로 편향과 분산은 트레이드오프 관계에 있다. low bias, low variance가 가장 이상적인 모델이다. 그림의 첫번째 high bias, low variance는 언더피팅된 경우이다. train data를 단순하게 학습하는 경우, 너무 적은 데이터로 학습하는 경우, 비선형 데이터에 선형 모델을 학습시키는 경우에는 underfitting이 발생하며 분산은 작은데 편..
지도 학습 분류와 회귀의 차이와 성능 평가 지표 지도학습은 크게 분류(classification)과 회귀(regression)으로 나뉜다. 분류 분류는 이미 정의된 class label 중 하나를 예측하는 것이다. 두 개의 클래스로 분류하는 것이 이진분류, 세 개 이상의 클래스로 분류하는 것이 다중 분류이다. 이진 분류는 양성 클래스(분류하고자 하는 대상)와 음성 클래스로 나뉘며 보통 분류하고자 하는 대상을 1로 설정한다. 회귀 회귀는 연속적인 숫자를 예측하는 것이다. 예를 들면 고객 별 연체 확률을 예측하는 것, 특정 상품의 판매량을 예측하는 것 등은 회귀 문제이다. 회귀와 분류를 구분할 때는 출력 값에 연속성이 있는지를 생각해보면 된다. 성능 평가를 지표를 선택할 때는 모델을 설계한 목적/목표를 생각해야 한다. 통상적으로 분류 모델의 성능 평가 지..
파이썬 null 처리 방법, fillna()와 dropna()로 결측치 보정하기 데이터 전처리 과정에서 중요한 것 중 하나인 결측치 보정. null값이 전혀 없는 데이터라면 참 좋겠지만 현실의 데이터에는 null값이 있는 데이터가 더 많다. titanic 데이터셋으로 실습해보았다. import pandas as pd import numpy as np data = pd.read_csv("titanic.csv") data.info() 우선 info() 함수로 null값 확인을 할 수 있다. 전체 데이터가 891개인데 보면 age, embarked, deck, embark_town 컬럼은 non-null 개수가 891보다 작으므로 null값이 있음을 알 수 있다. info 함수는 결측치뿐만 아니라 컬럼 데이터타입 확인도 가능하다. data.isnull() data.isnull().sum(..
파이썬 라이브러리 - numpy, pandas, matplotlib 등 기본 라이브러리 개념 파이썬에는 다양한 라이브러리가 있다. 보통 머신러닝 모델을 구현할 때 사이킷런을 가장 많이 사용하는데, 사이킷런 뿐만 아니라 numpy, pandas, matplotlib 등 다양한 라이브러리는 반드시 숙지하고 있어야 한다. 특히 사이킷런은 Numpy와 Scipy 기반으로 만들어졌기 때문에 이 둘은 기본적으로 알고 넘어가야 한다. Numpy Numpy는 다차원 배열을 쉽고 효율적으로 처리하게 해주며 수학 계산을 위해 반드시 필요한 파이썬 패키지이다. 넘파이의 핵심은 ndarray 클래스로 쉽게 이야기 하면 행렬이다. 사이킷런의 기본 데이터 구조는 Numpy 배열로 우리가 사용하는 데이터는 모두 넘파이 배열로 변환된다. import numpy as np a = np.array([0,1,2,3,4,5,6,7..
빅데이터 분석 기사 자격증 파헤치기! 필기, 실기 시험 유형과 응시자격 현재 퇴근 후나 주말을 이용해서 머신러닝 공부를 하고는 있지만 현재 실무에서 파이썬을 사용하고 있지 않아 단순히 개인적인 공부만 하는 것에 한계를 느끼고 있었다. 그래서 자격증을 취득하면 목표도 생기고 좀 더 몰입해서 할 수 있지 않을까해서 취득하기로 결정한 빅데이터 분석 기사 자격증. 국가공인자격증이며 한국데이터산업진흥원에서 실시한다. 원래 2020년 12월 19일에 최초 시행되기로 했었으나 코로나 확산으로 시험이 취소되어 2021년에 최초 시행되었다. 물론 이 자격증이 있다고 해서 빅데이터 분석을 자유자재로 할 수 있고 데이터분석 직무로 지원할 때 프리패스인건 너무나도 당연히 아니겠지만 최소한 내가 이 분야에 관심이 있고 이론적 베이스도 탄탄하다는 걸 증명할 수는 있다. 응시자격 응시 자격이 꽤 까다..
ROC 곡선(ROC curve)과 AUC란? 직접 그려보기 ROC곡선은 이진분류기의 성능을 측정하는 도구이다. ROC곡선의 생김새는 언뜻보면 recall-precision 곡선과 비슷해보이지만 FPR에 대한 TPR의 곡선이다. (X축이 FPR, Y축이 TPR) FPR(False Positive Rate): 거짓 양성 비율 (실제로는 음성인데 양성으로 잘못 분류) TPR(True Positive Rate): 진짜 양성 비율 (실제로도 양성이고 양성으로 잘 분류) 일단 ROC 커브에 대해 알아보기 전에 그 기본이 되는 오차행렬과 재현율, 정밀도에 대해서 먼저 짚고 넘어가자. 정확도와 F1 점수 개념 짚고 넘어가기 위 그림은 오차행렬이다. 오차행렬에서 TN, TP는 실제 음성/실제 양성 클래스를 각각 음성, 양성으로 정확하게 분류한 것이다. FP는 실제로는 음성인데 ..
베이지안 최적화(optimization) 개념 Auto Ml로 하이퍼파라미터 튜닝하기 모델 성능 향상을 위해서 필요한 하이퍼파라미터 튜닝, Auto ML로 Hyperparameter Optimization이 가능하다. Hyperparameter Optimization은 크게 그리드서치, 랜덤서치, 베이지안 옵티마이제이션 3가지가 있다. ※참고 하이퍼파라미터 튜닝 방법1. - 그리드 서치 그리드 서치는 파라미터 값을 직접 지정해줘야 한다는 번거로움이 있어 실제로는 베이지안 최적화 방식을 많이 사용한다. 물론 베이지안 옵티마이제이션이 무조건 최고다! 라는건 아니지만 Auto ML 영역에서 소요 시간이나 성능 등을 고려하면 다른 하이퍼파라미터 튜닝 방법에 비해서 좋다고 할 수 있다. 베이지안 옵티마이제이션 개념 사실 파이썬 초보인 나에게 이 개념은 너무너무 어렵고 헷갈린다.. 그래서 틀린 부분..