Linear Models(1) - Simple Regression

2021. 3. 7. 15:39[AI]/Machine Learning

Learned Stuff

Key Points

  • Prediction Method

    • By experience
    • By statistical parameters (min, max, mean, median)
    • By predictive model (best fit line)
  • Linear Regression

 

개념

  • OLS (Ordinary Least Squares)

New Stuff

[Linear Regression]

# train_data, test_data 라는 dataframe이 있다고 가정

from sklearn.linear_model import LinearRegression

# 모델 학습시킬 데이터 구분하기
model = LinearRegression()
feature = ['a'] # 'a' feature 라고 가정
target = ['b'] # 'b' target 이라고 가정
X_train = train_data[feature]
y_train = train_data[target]

# 모델 학습시키기
model.fit(X_train, y_train)

# 모델의 slope & y_intercept 구하기
model_slope = model.coef_ # array 형태로 반환
model_y_intercept = model.intercept_ # array 형태로 반환

# 학습한 모델을 바탕으로 예측하기
X_test = [[x] for x in test_data['a']] # list 형태
y_pred = model.predict(X_test) # array 형태

 

[Ordinary Least Squares]

$y$ 라는 training data 의 dependent variable(label)이 있다고 가정하자. 

 

우리가 원하는 건 $X$ 라는 independent variable 와 $y$의 관계를 나타내는 $f(X)$ 라는 모델의 함수이다. 

 

이 $f(X)$는 선형성을 띄고 있으므로 $f(X) = aX + \beta$ 을 만족한다.

 

이 때, 최적의 linear regression model을 만들기 위해선 실제 label과 모델 함수로 얻은 모델 label간의 distance가 최소가 되어야한다.

 

이를 식으로 쓰면 $min\sum(y-f(X))^2 $ 로 표현할 수 있고, 이 방법을 OLS 방법이라고 부른다.

 

그리고, $\sum(y-f(X))^2$은 해당 모델의 Cost Function이라고 부른다.

728x90