이전 포스팅에서는 조건수가 데이터 분석에서 어떤 영향을 끼치는 지에 대해서 알아보았다. 조건수가 커지게 되면 X의 값이 조금만 변화하더라도, 예측 결과가 크게 변화하기 때문에, 조건수를 줄이는 방향으로 데이터 분석을 진행해야 한다는 것을 알아보았다. 조건수를 줄이는 방법 조건수를 줄이는 방법 중 크게 2가지에 대해서 알아볼 것이다. 1. Scaling 2. 다중 공선성 제거 1. Scaling 스케일링은 데이터의 각 Column마다 단위가 다르기 때문에, 단순히 각 Column들의 Variance를 보고 데이터를 정확하게 파악하기 힘들다. 이런 어려움을 없애기 위해서 범위를 일반적으로 0 ~ 100까지 의 비율로 통일시키는 과정을 Scaling이라고 부른다. Scaling의 방법에도 여러가지가 있다. 1..
딥러닝 검색 결과
JaidedAI/EasyOCR Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc. - JaidedAI/EasyOCR github.com OCR (Optical Character Reader/Recognition) 광학식 문자 판독기의 줄임말로 필기체 혹은 인쇄된 글자를 인식하여 텍스트 데이터로 치환하는 기술을 말한다. 필기체보다는 주로 활자로 된 문서를 인식하고 사용자가 지정한 영역의 텍스트와 데이터를 추출하는데 많이 사용한다. 삼성페이, 카카오페이 등에 카드를 등록할 때 일일이 손으로 입력할 필요 없이 ..
조건수에 대해서 알아보기 전에 기본적인 데이터 분석의 목표를 알아보자. 데이터 분석의 공통적인 목표 : Train과 Test Data의 예측 성능을 높이는 것 하지만, 실질적으로 Train과 Test 데이터의 예측 성능을 동시에 올리는 것이 쉽지 않다. (Train을 과도하게 학습하면 Overfitting이 발생하기 때문이다. ) 하지만, 최종적으로 우리가 높여야 할 성능 1순위는 Test Data의 예측 성능이다. 그렇다면, Train의 성능을 조금 희생하더라도 Test의 성능이 더 잘 나올수 있도록 하는 방향으로 분석을 진행해야 한다. 이러한 방향으로 데이터 분석을 진행하는 데에, 조건수(Condition Number)라는 개념이 사용된다. 조건 수 (Condition Number) 조건수의 감소 목..
1. 예측 모델 적용 및 평가 이전 글 [논문 Review] 콜센터 인입 콜량 예측을 위한 시계열 모델 비교 분석 1에서 소개한 것처럼, 콜센터의 콜량을 예측하는 기법은 다양하다. 하지만, 국내 데이터로 연구된 사례는 드물다. 해당 연구에서는 ARIMA, 인공신경망 등 다양한 모델 기법을 활용해서 결과를 비교한 뒤 최적의 모델을 도출하는 순서로 진행되었다. 모델 평가 지표는 MAPE(Mean Absolute Percentage Error)와 RMSE(Root Mean Square Error)를 사용했다. - MAPE : 예측 값과 실제 값의 차이의 절댓값에 대한 평균값으로 실제 값과 예측 오류 사이의 비율을 확인하는 지표다. - RMSE : MSE(Mean Square Error)의 제곱근에 해당하는 값..
해당 논문에서는 실제 콜센터의 데이터를 활용하여 콜량을 예측하기 위한 최적화된 모델을 개발해서 상담 인력의 적정 수준을 결정하도록 하는 내용을 다뤘다. 1. 선행 연구 분석 1) 2주 후의 콜량을 예측 단변량 시계열 방법을 활용하고, ARIMA와 시계열을 분해하기 위한 Holt-Winters를 통해 어느 정도는 예측할 수 있었다. 그러나, 다른 요인이나 회귀 모델 등과의 비교까지는 이루어지지 못했다. 2) 모바일 기지국에 인입되는 호출 부하 예측 반향 상태 네트워크 모델과 유전 알고리즘을 통해 파라미터 최적화에는 성공했다. 하지만, 모바일 기지국간의 콜 트래픽 예측이기 때문에 콜센터 대기 상황에서의 인입 예측이 아니라는 점에서 한계가 있었다. 3) 다양한 리드타임(경과 시간) 및 일간 혹은 일자 내의 상..
저번 실습을 진행한 결과, 간단한 모델을 사용해서 예측을 진행했음에도, R-squared의 값이 1.0이 나왔다. 이것을 조금 더 현실적인 부분을 반영해서 데이터 전처리를 진행해보자. 왜 R-squared 값이 1이 나왔을까? Test Data의 정보를 Train Data에 반영했기 때문이다. 그렇다면 Test Data는 알려지지 않은 데이터를 어떻게 가정하고 풀어야 하는가? 1. Training Data의 특성이 그대로 반복된다고 가정한다. 2. 한단위씩 예측을 수행하고, Training Data를 갱신해나가면서 학습 및 예측을 수행한다. 특히, 2번에 관해서는 1스텝 교차 검사, 2스텝 교차검사 등이 있다. 기존에 시계열 분석에서 Train Data와 Test Data를 분리하는 경우에는 특정 시점을..
이번에는 Y의 실제값과, 알고리즘을 통해서 예측한 Y값을 비교함으로써, MAE, MSE, MAPE 등을 계산하고, 시각화하는 실습을 진행한다. Y의 예측값을 산출하기 위해서는 일단 간단한 데이터 분석 알고리즘이 있어야 한다. 선형회귀 분석의 기초인 OLS를 그 예시로 활용할 계획이다. 일단 OLS에 대해서 간단하게 알아보자. OLS (Ordianry Least Square) 우리말로는 최소자승법 혹은 최소제곱법이라고 불리기도 한다. OLS는 잔차제곱합인 RSS (Residual Sum of Squares)를 최소화하는 가중치 벡터를 구하는 방법이다. 입력된 데이터를 X라고 하고, 가중치 벡터를 w라고 할 때, 잔차 : (실제 y값) - ( 예측한 y값) 여기에서 잊지말아야 할 점은, e가 상수가 아니라 ..
이전까지의 실습 내용을 통해서 데이터를 전처리하였고, 이번 실습에서는 전처리된 데이터가 어떤 그래프 형태를 지니는지, 어떤 특성을 가지고 있는지를 시각화하는 실습을 진행할 것이다. 그 후 각 Column 들 간의 상관도를 계산할 것이다. 시각화 raw_fe.describe(include = 'all').T 보통 df.describe() 혹은 df.describe().T를 통해서 데이터의 기본적인 통계적 특성을 확인한다. 여기에서 include = 'all'이라는 옵션을 설정해주게 되면, 수치로 된 데이터가 아닌, object 형태의 데이터나, category 형태의 데이터 또한, 생략하지 않고 보여준다. 히스토그램 raw_fe.hist(bins = 20, grid = True, figsize = (16,..
훈련/테스트 데이터 분리 raw_train = raw_fe.loc[raw_fe.index = '2012-07-01', :] print(raw_train.shape, raw_test.shape) 일반적인 데이터에서 훈련 데이터와 테스트 데이터를 분리하는 경우와는 달리 시간의 순서에 따라서, 훈련 데이터와 테스트 데이터를 나누어야 한다. Y_colname = ['count'] X_remove = ['datetime','DateTime','temp_group','casual','registered', 'Quarter '] X_colname = [x for x in raw_fe.columns if x not in ..
지연값 추출 (count_lag1, count_lag2) 시간의 흐름이 존재하고 있는 데이터에서, 특정한 데이터는 현재 종속변수 Y에 영향을 주는 것이 아닌, 미래의 시간의 종속변수 Y에 영향을 주는 경우가 존재한다. 예를 들어, 투자지원금을 받았다고, 받은 날부터 실적이 오르는 것보다는, 그 이후에 투자지원금을 효율적으로 쓰고, 시간이 어느정도 지난 후에 실적이 나온다는 것을 생각하면 이해하기 쉽다. 이 특성을 데이터 분석에 반영하기 위해서, Series.shift( )를 사용하면 된다. 인자로 입력되는 숫자만큼 데이터가 뒤로 밀리게 된다. 당연히, 뒤로 밀린 개수만큼의 데이터가 NaN값으로 채워지게 되고 이것은 이전에 결측치를 채웠던 방식처럼 pd.fillna( )의 method = 'bfill' ,..
최근댓글