데이터 스터디/Stats\ML 13

[코드 분석] Time Series Regression - Predict Future Sales 커널 필사

Regression : time-series regression 시계열 작성자 : 14기 김유민 Kaggle : Predict Future Sales 커널 필사 대회 소개 링크 : https://www.kaggle.com/c/competitive-data-science-predict-future-sales 비즈니스 소프트웨어 기업 1c company의 일별 판매 내역 데이터가 제공됨 다음 달 해당 스토어에서 판매되는 제품량 예측 상점 및 제품 목록은 매월 약간씩 변경되며 이러한 상황을 처리할 수 있는 강력한 모델을 만들자. 데이터 파일 sales_train.csv - 2013년 1월부터 2015년 10월까지의 일일 과거 데이터. train set test.csv - 상점과 제품의 2015년 11월 판매량..

08-1. 정규화 : L2 정규화, Ridge regression

07. 과적합(Overfitting)과 정규화(Regularization) 07. 과적합(Overfitting)과 정규화(Regularization) ❕ 오버피팅을 조심하자 ❕ (feature 수가 너무 많아서와 같은 이유로) 모델이 복잡해 variance가 커진 것을 오버피팅 overfitting 이라고 부른다. 우리가 모.. uumini.tistory.com 앞서 오버피팅과 정규화의 원리에 대해 알아보았다. 이번엔 정규화 중 L2-norm 형식을 살펴보자. ❕ 정규화 (1) - L2 정규화 : Ridge regression ❕ L2 정규화는 "회귀 계수 β에 대한 제곱값"에 대한 제약조건을 취한 것이다. 그리고 이를 선형 회귀모델에 적용한 것이 Ridge regression이다. Ridge regre..

07. 과적합(Overfitting)과 정규화(Regularization)

07. 과적합(Overfitting)과 정규화(Regularization) ❕ 오버피팅을 조심하자 ❕ (feature 수가 너무 많아서와 같은 이유로) 모델이 복잡해 variance가 커진 것을 오버피팅 overfitting 이라고 부른다. 우리가 모델링을 할 때 가장 두려워하는 것이 바로 오버피팅일 것이다. train set에만 정확하고 최종적인 목표인 test set에서는 성능이 낮게 나오면 말짱도루묵이기 때문이다. 물론 train set에서 성능이 잘나오면 엄청나게 나쁜 모델이 탄생하진 않겠지만 그래도 우리의 목표는 test set에도 만족하는 일반화를 이루어내야한다는 점 !! 여기서 짚고 넘어가야 할 점은, 우리의 손실함수인 mse를 최소화하려고 할 때 bias와 variance 사이에 trade..

[?!] learning rate

[물음표/느낌표] 02. learning rate learning rate은 수렴 속도를 결정하는데, 만약 크다면 -> 수렴 속도가 빨라서 local minimum을 무시하고 지나칠 수 있지만, global minimum에 도달하지 못하고 계속 맴돌기만 해. 대신 작다면 -> 언젠가 global minimum에 도달할 순 있겠지만 local minimum에 빠질 위험이 있다. => 따라서 흔히는 , 초반에는 크게크게 가다가 조금조금씩 가도록 조절을 해준다. => 초반에는 학습률을 크게 설정해서 지역 최소값에 빠지지 않게 하고, 점진적으로 학습률을 줄여가면서 전역 최소값에 도달하게 하는 방법을 사용하기도 한다. (learning rate annealing)

06. Gradient Descent

앞서서 Loss Function에 대해 알아보았다. 이젠 Regression과 Classification 모델들의 Loss Function을 Optimization 하는 방법을 알아보자. *최적화(optimization) 란 어떤 목적함수(objective function)의 함수값을 최적화(최대화 또는 최소화)시키는 파라미터(변수) 조합을 찾는 문제를 말한다. 06. Gradient Descent 만약 선형모형처럼 손실함수가 1차함수, 2차함수로 간단히 표현되는 경우라면 한 파라미터에 대해 미분해서 0이 되는 지점을 찾아 최소값을 바로 찾을 수 있다. 하지만, 우리가 마주치는 손실함수(cross entropy 등)는 간단한 형태가 아니어서 미분방정식을 푸는데 한계가 있다. 명확한 해답이 없기에 수치적 ..

05. Loss function(손실함수) - 회귀&분류

05. Loss function(손실함수) - 회귀&분류 이때까지 입이 닳도록 말해온 것이 바로, 예측값과 실제값 사이의 차이, 즉 LOSS를 최소화하는 방향으로 학습은 진행되어야한다. loss function과 cost function, 그리고 이들을 아우르는 objective function은 이전 글에서 다룬 적도 있다. [물음표/느낌표] 01. cost function과 loss function 차이 [물음표/느낌표] 01. cost function과 loss function 차이 우리는 앞서 머신러닝에선 손실, 즉 loss function을 최소화하는 방향으로 학습해야한다는 것을 알았다. 이때 많이들 혼란스러워하는 용어가 바 uumini.tistory.com 정리하자면, 통계적 머신러닝의 목적은..

04-2. Regression(회귀) - 로지스틱회귀

앞선 선형회귀에선 연속형 수치y값에 대한 예측이 진행되었다면, 로지스틱 회귀의 예측값은 수치가 아닌 범주(Category)이다. ❕ 로지스틱 회귀는 이항분포를 따른다 ❕ 이 범주(Category)는 연령, 신장, 몸무게 처럼 연속형 수치로 나타내 수 있는 것이 아니라 성별, 국가, 인종과 같은 범주형 값이고, 이때 로지스틱 회귀는 0또는 1의 값만을 갖게 된다. 여기서 0과 1은 수치적 의미를 갖는다기 보다 오직 범주를 구분하기 위한 0(해당 없음), 1(해당 있음)을 뜻한다. 다시 말해 로지스틱 회귀는 선형 회귀와 다르게 종속 변수(예측하고자 하는 값)가 Bernoulli Distribution = 이항 분포를 따르는 것이다. ❕ 로지스틱 회귀에서 로짓변환 ❕ 수치형 변수 또는 범주형 변수를 input..

04-1. Regression(회귀) - 선형회귀

❔ 회귀분석에서 '회귀'라는 말이 왜 들어가는 걸까 ❔ 먼저 회귀분석이 뭔지부터 짚고 넘어가자. 회귀분석의 예제와 기법에 익숙한 사람이라면 한 번도 의문을 가지지 않았을지도 모른다. 단순히 각자가 이해한 회귀분석의 의미를 이름과 연결시켰을 테니까 말이다. 하지만 이 '회귀'라는 단어가 들어가게끔 회귀분석을 설명해보자. 단어 그대로 리터럴리하게 ! 회귀라는 말은 돌아올 회, 돌아갈 귀 를 사용해 어딘가로 '되돌아간다'는 뜻이다. 회귀분석의 기원은 영국의 우생학자인 프랜시스 갤턴(Francis Galton)이 내세운 평균으로의 회귀(Regression toward the mean) 에서 왔다. 갤턴은 아버지의 키와 아들의 키 사이의 관계를 조사한 결과, 키가 큰 아버지를 둔 아들은 아버지보단 키가 작고, 키..

[?!] cost function과 loss function 차이

[물음표/느낌표] 01. cost function과 loss function 차이 우리는 앞서 머신러닝에선 손실, 즉 loss function을 최소화하는 방향으로 학습해야한다는 것을 알았다. 이때 많이들 혼란스러워하는 용어가 바로 cost function과 loss function인 듯하다. 거기에 더해 objective function도 낄 수 있겠다. 다 똑같은 말들이라고 해도, 디테일의 차이를 잊지 말자굽쇼잉. 사소한 용어라도 확실하게 짚고 넘어가보자. 일단 손실 함수(Loss Function)와 비용 함수(Cost Function)은 혼용해서 사용 가능하다. 다만 사소한 차이가 있다함은, 손실 함수(Loss Function) : 개별적인 차이를 정의 비용 함수(Cost Function) : 손실..

03 + 머신러닝의 목표

03 + 머신러닝의 목표 머신러닝에서의 가장 중요한 목표는 "generalization 일반화" 이다. generalization, 즉 일반화는 이전에 '관측되지 않은' 데이터에 대해 높은 성능으로 적용할 수 있는 능력을 말한다. 그리고 이를 다른 말로 풀어써보자면, 만약 성능측정의 지표로 error rate을 사용한다고 했을 때, E_gen(=train에 사용하지 않은 이외의 모든 data들) = 0 이 됐을 때를 목표로 한다는 것이다. 하지만, 우리는 E_gen(=generaization error)를 갖고 있는 데이터로 측정할 수 없기 때문에(전체 데이터는 모르는 상태이기 때문) better proxy로서 E_test(=test error)를 사용한다. 따라서 목표는 E_gen=0 에서 다시 E_t..