[Data Science] Lecture 9–1: Linear and Logistic Regression

naljin
6 min readJun 18, 2019

--

2019년 1학기 고려대학교 강재우 교수님 데이터 과학 정리

Linear Regression

선형 회귀는 n points 가 주어졌을때 해당 points 들에 가장 잘 맞는 라인을 찾는 것이다.

theta는 parameter

Error in Linear Regression

residual error(잔차)는 실제 값과 예상값의 차이다.

residual error

최소 제곱 회귀 분석(Least squares regression)은 모든 포인트 잔차 제곱의 합을 줄이고자 한다. 이 방법은 nice closed form이고 error의 부호를 무시하기 때문에 선호된다.

contour plots

cost func이 convex function(볼록 함수)이기 때문에 한개의 최소값을 찾을 수 있다.

cost function 이 위와 같이 그려질때 빨간 엑스 점이 가운데 있을 수록 좋다.

Why Linear Functions?

선형적 관계가 이해하기 쉽고, 디폴트 모델로서 적당하기 때문에 선형 (1차) 함수를 사용한다. (common & natural, simple but useful)

Multiple Features(variables)

따라서 x³의 값은[1534, 3, 2 30]이고, x2³의 값은 3이다.

다양한 feature가 있는 선형 함수일 때는 위와 같이 표현되고, 표기의 편의상 x0는 1로 정의한다.

Xθ = y

Xθ = y 에서 X-1를 바로 구할 수 없기 때문에 Xt를 우선 곱한 후 그곳에 역을 취한다.

Better Regression Models

variable에 대한 적절한 대응은 더 나은 모델을 만들어 낸다.

  • 아웃라이어 제거
  • 비선형 모델 적용
  • feature / target 스케일링
  • 많이 연관된 variable의 제거

Outliers and Linear Regression

잔차의 제곱으로 인해 outlying 포인트는 fit에 더 많은 영향을 준다. 정석대로 outlier를 발견하고 제거한다면(차가 더 커지니까 발견하기도 쉬울 것) 더 robust 한 fit을 만들 수 있다.

Fitting Non-Linear Functions

선형 회귀는 ‘선’이 아닌 고차 곡선에는 적용할 수 없지만 sqrt(x), lg(x), x³ 와 같은 variable을 추가함으로써 다항식이나 지수함수, 로그 함수에도 fit 할 수 있다. 하지만 이러한 비선형 term 들을 추가한다면 이후 데이터를 다룰 때 힘들어질 수 있다.

Feature Scaling : Z-scores

전체 인구 / 일부와 같이 feature 값의 범위가 넓다면, 이들을 같이 사용하기 위해 넓은 범위의 계수가 필요하다.

x1 = 300,000,000(전체 인구) / x2 = 0.02 (부분)

또한 이러한 식에서 c1는 변화가 작더라도 결과에 큰 영향을 미치고, c2는 변화가 크더라도 결과에 거의 영향을 미치지 못한다.

따라서 Z-score로 feature값을 조정해야한다.

Dominance of Power Law Features

연간 교육에 대한 선형 모델

이 모델은 reasonable 하지 않은데 왜냐하면 income이 power law variable이기 때문이다. (보통 사람과 빌게이츠 자녀 모두에게 분별있는 답을 제공하지 못함)

Z-Score로의 변환도 선형 모델에 대한 것이기 때문에 이 상황에서는 도움 되지 않는다.

Feature Scaling : Sublinear Functions

중간값(median)과 최대값 및 최소값의 큰 차이는 큰 값을 주입하지 않는 이상 어떠한 계수도 해당 feature를 사용할 수 없음을 나타낸다.

해결책은 해당 feature x 값을 log(x)나 sqrt(x)와 같은 sublinear 함수를 이용해대체하는 것이다. 이렇게 변형된 값들에 대한 Z-score 이 더 유의미할 것이다.

Small Coefficients Need Small Targets

원래 feature가 Z-score를 이용한 정규화가 잘 되어있는 상태인데, 예측해야하는 target 값이 크다면(just as big value) target도 Z-score를 이용해 정규화 시킨다.

하지만 target 값이 power law를 따른다면 우선 log 등을 취해서 정규화를 시킨 후 Z-score를 적용한다.

Avoid Highly Correlated Features

inch, cm와 같이 단위만 다른 feature가 있다고 할때 공분산 행렬에서 (covariance matrix) 해당 row들은 dependent (r1 = c*r2) 하다.

So requires inverting a singular matrix!

Punting Highly Correlated Features

높은 연관성을 지닌 feature를 제거할때 공분산 행렬 계산을 통해 더 손실이 적은 것을 찾을 수 있다.

참고

공분산 행렬

공분산 행렬에서 고유 벡터와 고유 값을 찾는 것은 데이터의 주성분을 찾는 것과 동일합니다. 왜냐하면 고유 벡터는 행렬이 어떤 방향으로 힘을 가하는지를 표현하는데, 이것은 데이터가 어떤 방향으로의 분산이 가장 큰지를 구하는 것과 같기 때문입니다.

만일 이 행렬이 공분산 행렬일 경우에 이 공분산 행렬의 고유 벡터는 데이터가 어떤 방향으로 분산되어 있는지, 즉 어떤 방향으로 힘이 작용하는 지를 나타냅니다.

공분산은 아주 유용합니다. 고차원 변수의 경우 시각화하기 어렵기 때문에 변수의 상관 관계를 파악하기 어렵습니다. 이럴 때 공분산을 이용하면 각 변수의 값과 부호(음/양)를 통해 변수의 관계를 쉽게 알 수 있습니다. (상관계수(Correlation coefficient)공분산을 -1과 1 사이의 값으로 정규화한 것 입니다.)

https://skymind.ai/kr/wiki/eigenvector

--

--

No responses yet