linear regression 의 손실에 계수 크기에 대한 벌점을 더한 모델이다. 벌점으로 계수 제곱합, 즉 L2-norm 의 제곱을 쓴다.

기호의미
, 데이터 개수, 설명변수 개수
번째 변수의 계수
절편. 벌점 항에 넣지 않는다
벌점의 세기. 값이 클수록 계수를 더 강하게 0 쪽으로 민다

이면 ordinary least squares 와 같아지고, 를 무한히 키우면 모든 계수가 0 으로 간다.

왜 벌점을 거나

변수들이 서로 강하게 상관되어 있을 때 계수가 폭주하는 것을 막는다. 두 변수가 거의 같은 정보를 담고 있으면, 한쪽 계수를 크게 키우고 다른 쪽을 그만큼 음수로 키워도 예측값이 거의 같다. 최소제곱만으로는 이 둘을 구분할 근거가 없어 계수가 불안정해지는데(collinearity), 계수 크기 자체에 벌점을 걸면 그런 해가 배제된다.

수식으로 보면 해가 이다. singular 이라 역행렬이 없는 경우에도 대각선에 를 더하면 역행렬이 생긴다. 변수 수가 데이터 수보다 많아 최소제곱해가 하나로 정해지지 않는 상황에서도 쓸 수 있는 이유다.

분산을 줄이는 대신 편향을 받는다. 계수를 0 쪽으로 당기므로 추정값은 참값에서 조금 치우치지만, 데이터가 바뀔 때 계수가 흔들리는 정도가 크게 줄어든다. 를 고르는 일은 이 둘 사이의 절충점을 찾는 것이고, 보통 교차검증으로 정한다.

Lasso 와의 차이

lasso regression 은 같은 자리에 계수 절댓값의 합(L1-norm)을 쓴다. 제약 영역의 모양이 달라서 결과가 갈린다. L1 의 제약 영역은 축 위에 뾰족한 꼭짓점이 있어 해가 그 꼭짓점에 걸리기 쉽고, 그러면 계수가 정확히 0 이 되어 변수가 아예 빠진다. L2 의 제약 영역은 매끄러운 원이라 꼭짓점이 없고, 계수는 0 에 가까워지되 정확히 0 이 되지는 않는다.

그래서 변수 선택이 목적이면 lasso, 상관된 변수들의 계수를 고르게 나눠 갖게 하려면 ridge 를 쓴다. 둘을 섞은 것이 elastic net 이다.

변수마다 단위가 다르면 벌점이 불공평하게 걸리므로, 적합 전에 설명변수를 표준화한다.