내가 까먹을까봐 만든 블로그

전체 글

Data Science/Statistics

[Python] 예측 모델 평가를 위한 지표 정리(ME, MAE, MSE, MSLE, RMSE, RMSLE, MPE, MAPE, MASE)와 구현

회귀분석을 하며 여러 모델들을 만들고 실제 성능이 어느정도인지 판단하기 위한 지표들이 필요하다.위 9가지 방식의 특징을 알아보려 한다. 아래 수식들의 n은 모두 데이터 수를 의미한다. 1. ME(Mean of Error)ME(Mean of Error)는 평균 제곱 오차를 의미한다. 예측오차의 산술평균을 의미하고 다음과 같이 산정된다. $$ ME=\frac{\sum_{i=1}^n{e_i}}{n}=\frac{\sum _{i=1}^n\left(Y_i-\hat{Y_i}\right)}{n} $$ def ME(y, t): return (y-t).mean(axis=None) 2. MAE(Mean Absolute Error)MAE(Mean Absolute Erro)는 예측값과 실제값의 모든 차이의 합이다. 인간이..

Languages/Python

[Python] pandas의 Dataframe과 list의 삽입 수행 속도 차이

30만 개 정도의 데이터를 Dataframe을 이용해 append 연산을 하는 작업을 수행하다 비정상적으로 느리게 동작하는 것을 발견했다. 아무리 느린 파이썬이라 해도 이 정도로 삽입 연산이 느린 것은 잘 와닿지 않아 실험을 해보았다. 아래와 같이 7가지 테스트를 진행하였다. pandas append pandas concat pandas loc dict in list dict list comprehension list append list comprehension 1, 2, 3 번은 각각 Dataframe 첫 행 생성 후 append, concat, loc를 이용하여 데이터를 삽입한다. 4번은 dictionary를 list에 append하며 생성하고 Dataframe으로 변환시켰고, 5번은 diction..

Data Science/Statistics

[Python] 최소 자승법(Least Square Method, LSM or Ordinary Least Square, OLS)의 이해와 구현

최소 자승법(LSM or OLS)최소 제곱법, 최소 자승법, Least Square Method(LSM), Ordinary Least Square(OLS) 모두 같은 말이다. 최소자승법(Least Square Method)은 모델의 파라미터를 구하기 위한 대표적인 방법 중 하나로서 모델과 데이터와의 잔차(residual) 제곱 합 또는 평균을 최소화하도록 파라미터를 결정하는 방법이다.가장 간단한 관계식 \(f(x) = \beta x+\alpha\)이고, \( y_i = \alpha+\beta x_i+u_i \)가 있다고 가정한다.  위의 그래프 주어진 데이터 산포도를 그리고 임의의 회귀식(y=x, y=x+2, y=2x+1)을 그래프에 그린 것이다. 이 중 y+2를 기준으로 설명하자면 따라서 \( \alp..

Data Science/Statistics

회귀 분석에서 SST(Total Sum of Squares), SSR(Sum of Squares due to Regression), SSE(Sum of Squares Residual of Error)의 이해

회귀 분석을 수행하며 자주 보이는 r2 score와 관련된 지표인 SST, SSE, SSR이 가지는 의미에 대해 살펴본다.SST는 총 제곱합, SSR은 회귀식 추정 값과 관측값의 평균 간 차이인 회귀 제곱합을 나타낸다. SSE는 잔차 제곱합이다. 경우에 따라 SSE와 SSR을 바꿔 표기하는 경우도 있는데 이때 식을 잘 봐야 한다. 수식에 사용되는 값은 아래와 같다.\( {y}_i \): 관측값\( \overline{y} \): 관측값의 평균\( \hat{y_i}\): 예측값 SST(Total Sum of Squares)우선 SST(Total Sum of Squares)는 관측값에서 관측값의 평균(혹은 추정치의 평균)을 뺀 결과의 총합인 총 제곱합이다. 이는 전체(Total)에 대한 변동성을 나타낸다. 그..

Data Science/Statistics

편차(deviation), 표준편차(Standard Deviation)에 대한 이해와 오차(error), 잔차(residual)의 차이점

모든 데이터를 하나의 회귀식으로 설명하기는 힘들다. 또한 절대적인 회귀식을 도출하는 것도 쉽지 않다. 일반적으로 표본이란 것 자체가 대표성을 갖긴 하지만 모집단 그 자체가 될 순 없기 때문이다. 그러므로 관측값과 기댓값의 차이를 어느 정도 인정하고 진리에 가까울 것으로 추정되는 회귀식을 도출한다. 이때 차이를 의미하는 단어들이 있다. 편차(Deviation)와 표준편차(SD, Standard Deviation) 우선 편차(deviation)는 관측치가 평균으로 부터 떨어져 있는 정도, 즉 평균과 관측치와의 차이를 의미한다. 이 중 표준편차(SD, Standard Deviation)는 이러한 편차들의 평균값으로 평균으로부터 얼마나 떨어져 있는가에 대한 정보를 제공한다. 또한 표준편차를 통해 관측값들이 집합..

Computer Science/Software Engineering

[Design Pattern] SOLID (객체 지향 설계)란?

컴퓨터 프로그래밍에서 SOLID란 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다. SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 스파게티 코드, 에일리언 코드 또는 레거시코드가 되지 않도록 하기 위한 지침이다. 이렇게 설계된 소프트웨어는 재사용이 많아지고, 수정이 최소화되기 때문에 결국 유지 보수가 용이해진다. 물론 처음에 SOILD 원칙에 따라 소스코드를 작성하였어도 지속적으로 추가, 수정 등을 진행하며 리팩터링을 수행하여야 한다. SOILD는 아래 5가지의 원칙의 첫 글자를 따서 명명되었다...

loading