본문 바로가기

파이썬/파이썬 기초

(8)
하이퍼파라미터와 파라미터의 차이 정확히 짚고 넘어가자 머신러닝에서 자주 나오는 용어인 하이퍼파라미터와 파라미터. 많은 사람들이 두 개념을 혼동해서 사용하지만 엄밀히 말하면 완전히 다른 개념이기 때문에 사용에 주의해야 한다. 나도 여태까지 정확한 차이를 몰라서 혼동해서 사용했었다ㅜ 이번 기회에 제대로 짚고 넘어가자! 1. 파라미터 파라미터는 매개변수라고도 한다. 모델 내부에서 결정되는 값으로 모델링 과정에서 자동으로 정해지며 사용자가 조정하는 값이 아니다. 새로운 샘플이 주어지면 예측하기 위해서 파라미터가 필요하다. 파라미터는 데이터로부터 추정/학습되는 것이며 학습된 모델의 일부로 저장된다. 파라미터 예시 -선형회귀나 로지스틱회귀에서 결정계수 -SVM의 서포트 백터 2. 하이퍼파라미터 파라미터는 모델링 과정에서는 매우 중요한 요소이지만 우리가 직접 값을 지정..
릿지 회귀, 오버피팅 방지를 위한 선형회귀 모델 규제 통상적으로 모델의 복잡도가 커지면 분산은 커지고 편향은 작아진다. 반대로 모델이 단순해지면 분산은 작아지고 편향은 커진다. 이렇게 분산과 편향은 서로 트레이드 오프 관계에 있다. ★먼저 읽어보면 좋은 글 편향-분산 트레이드오프 개념과 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로 설정한다. 회귀 회귀는 연속적인 숫자를 예측하는 것이다. 예를 들면 고객 별 연체 확률을 예측하는 것, 특정 상품의 판매량을 예측하는 것 등은 회귀 문제이다. 회귀와 분류를 구분할 때는 출력 값에 연속성이 있는지를 생각해보면 된다. 성능 평가를 지표를 선택할 때는 모델을 설계한 목적/목표를 생각해야 한다. 통상적으로 분류 모델의 성능 평가 지..
파이썬 라이브러리 - 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년에 최초 시행되었다. 물론 이 자격증이 있다고 해서 빅데이터 분석을 자유자재로 할 수 있고 데이터분석 직무로 지원할 때 프리패스인건 너무나도 당연히 아니겠지만 최소한 내가 이 분야에 관심이 있고 이론적 베이스도 탄탄하다는 걸 증명할 수는 있다. 응시자격 응시 자격이 꽤 까다..
사이킷런 분류기의 예측 불확실성 추정 함수 - decision_functon과 predict_proba *이 글은 파이썬 라이브러리를 활용한 머신러닝 책을 기반으로 작성되었습니다. 분류기에서 예측의 불확실성을 추정하는 함수는 decision_function과 predict_proba 크게 두가지가 있다. 대부분의 분류 클래스가 두 함수(최소 한개)를 제공한다. 이진분류뿐만 아니라 다중 분류에도 사용할 수 있다. 예측을 만들어내는 것은 decision_function과 predict_proba 출력의 임계값을 검증하는 것인데, 이진탐색에서 임계값은 각각 0과 0.5이다. 이진 분류에서 decision_function 결과값은 n_samples이며 각 샘플이 하나의 실수 값을 반환한다. decision_function 값의 범위는 데이터와 모델 파라미터에 따라 달라진다. 반면, predict_proba는 각 ..
axis=1 뜻, 판다스 drop함수로 간단하게 알아보기 판다스에서 평균을 계산하거나 drop 함수 등을 사용할 때 파라미터에 axis=1을 넣는 경우가 많다. 습관적으로, 혹은 남들이 쓰는 코드에 그렇게 되어 있어서 똑같이 따라 쓰는 경우가 많았는데 이번 기회에 제대로 axis=1의 뜻을 알아보자. drop함수의 파라미터 중 하나인 axis에 대한 설명이다. 보면 index를 drop하려면 axis=0으로 설정하고, 컬럼을 drop하려면 axis=1로 설정하라고 써있다. 즉, aix=0은 행을 기준으로 동작하는 것이고 axis=1은 열을 기준으로 동작하는 것이다. heart.csv파일에서 타겟 변수는 output이고 나머지 변수들은 모두 X변수이다. train, test 분리를 위해서 X,y를 지정해줘야 하는데 이 때 X는 heart 데이터에서 output ..