머신러닝

    [PyTorch] 파이토치를 활용한 선형회귀 구현

    (본 포스팅은 PyTorch로 시작하는 딥 러닝 입문 교재를 참고하여 작성하였습니다.) 선형회귀를 구현하기에 앞서 아래 지식이 선행되면 이해하기 더 쉽습니다 :) 가설 (Hypothesis) 손실 함수 (= 목적 함수 = 비용 함수) ; loss function = objective function = cost function 경사 하강법 (Gradient Descent) 공부시간과 시험 성적에 대한 데이터가 아래 테이블처럼 나와있다고 가정해보겠습니다. Study Hours (x) Result (y) 1 20 2 40 3 60 4 ? 1시간 공부 --> 20점 2시간 공부 --> 40점 3시간 공부 --> 60점 4시간 공부 --> ??점 선형회귀를 이용하여 시험 성적을 예측한다면, 아래의 패턴을 학습하..

    [불균형 데이터] 평가지표 (Metrics)

    불균형 데이터에 대처하는 방법은 다양합니다. 오버샘플링 & 리샘플링과 같은 Resampling 기법을 활용한다던가, Cost Matrix를 만들어서 분류 모델에 클래스별 가중치를 부여하는 방법도 있습니다. 위 기법도 중요하지만, 무엇보다도 중요한 것은 "어떻게 불균형 데이터를 평가할 것인가?"입니다. (수식과 혼동행렬은 곧 업데이트 하겠습니다) Accuracy 정확도(Accuracy)를 사용하기에는 너무 편향된 결과를 야기할 수 있습니다. 예를 들어보겠습니다. 암 환자에 대해서 검사를 한다고 했을 때, 데이터 내 실제 암 환자는 1명이고, 정상인 환자가 99명 있다고 가정하겠습니다. 우리는 모든 데이터를 음성(정상)이라고 예측하면 모델의 정확도는 99/100, 즉 99%가 됩니다. 이렇게만 본다면 매우 ..

    [변수 중요도] Feature Importance와 Permutation Importance

    머신러닝/딥러닝 모델을 해석하는 방법과 시도가 점점 늘어나고 있다. 변수간의 인과관계를 알려주진 않지만, "어떤 변수가 가장 큰 변화를 만들어냈는지", "특정 변수가 결과에 긍정/부정적인 영향을 끼쳤는지" 등과 같은 결과에 대한 이유에 대해서 해석할 수 있는 방법은 다양한 기법을 통해 알 수 있다. 이번 포스팅에는 그중에서도 Feature Importance와 Permutation Importance에 대해 알아보고자 한다. Feature Importance Feature Importance는 일반적으로 Random Forest와 같은 트리 계열의 앙상블 모델을 사용하면 쉽게 얻을 수 있다. 단순 해석하면 '변수(특징) 중요도' 정도로 해석할 수 있는데, 매커니즘 자체는 불순도를 감소시키는 정보 증가량에..