선형회귀모델 = 변수들을 가장 잘 설명하는 하나의 직선을 긋는 것
회귀선은 x변수들의 평균, y변수들의 평균에 해당하는 (x,y)를 지나감 b.c. 선과 변수들 간의 error의 합이 가장 작은 선을 그어야 함
예측값과 관측값(타겟값)의 차이 = 잔차 -> 잔차 제곱들의 합 = RSS = SSE(Sum of Squared Error) = 회귀모델의 비용함수
-> 이러한 비용함수를 최소화하는 모델을 찾는 과정이 회귀모델 학습 과정
=
x, y의 평균을 각각 , 라고 할 때,
= (x - )(y - )의 합 / (x - )^2 의 합
❗️ 기울기 차이의 의미
두 모델의 기울기를 비교할 때, 기울기가 크다는 것 = 독립변수의 차이에 따른 종속변수의 변화량이 크다
예측값 공식에서 에 값 넣고, x에 값 넣고, 앞서 구한 값을 대입하여 구함
👀 기준모델이 필요한 이유
가장 간단하면서도 최소한의 성능을 나타내는 기준이 되는 모델 -> 모델을 만들 때, 최소한 이 것 이상의 성능을 내야한다는 것
문제별 기준모델 설정
선형회귀의 경우 기준모델을 세울 때, 전체적인 그림을 확인하기 쉬운 '평균'을 사용하는 것이지 기준모델 자체가 '평균'인 것은 아님
❓ , y.mean의 차이
scatterplot에 가장 잘 맞는(best fit) 직선을 그려주면 그것이 회귀 예측모델
시각화 방법
sns.regplot(x=독립변수, y=종속변수)
sklearn 활용하기 위해서는 데이터 구조를 특성 데이터와 타겟 데이터로 나눈 매트릭스 형태로 바꿔줘야 함
np.array
나 pd.Dataframe
로 표현np.array
나 pd.Series
로 표현from sklearn.linear_model import LinearRegression
model = LinearRegression() # 예측모델 인스턴스 만듦
model.fit(X_train, y_train) # 모델을 학습
model.predict(X_test) # 새로운 데이터를 예측
❗️ 일반적인 프로그래밍과 머신러닝의 차이점
룰과 데이터를 제공하여 답을 구해내는 일반적인 프로그래밍과 달리 머신러닝은 데이터와 답을 통해 룰을 찾아내는 방법
회귀계수(coefficients): model.coef_
절편(intercept): model.intercept_
❗️ 회귀계수는 x(특성)가 1 증가할 때의 y(타겟) 변화량, 즉, 회귀선의 기울기를 의미
데이터 분석에서 중요한 역할 -> table 형식의 2차원 모양 (row, column 존재)
❓ Matrix vs. Tabulix
Tabulix: 한 column에는 무조건 같은 데이터 타입이어야 함 BUT, row 내에서는 다른 데이터 타입들이 함께 있어도 됨
<-> Matrix: 한 Matrix 안에는 같은 데이터 타입만 존재
Component of Tabular Data
판다스의 데이터프레임을 sklearn으로 옯겨서 계산하려고 하면 계산 안됨 -> 매트릭스로 바꿔줘야 수학적 계산이 가능
Property | Classfication(분류) | Regression(회귀) |
---|---|---|
Output Type | Discrete (class labels) | continuous (numbers) |
What are you trying to find? | Decision boundaries | “Best fit line” |
Evaluation | Accuracy | “Sum of squared error” or “R squared” |
👀 현업에서는 회귀보다 분류를 사용하는 경우가 더 많음
b.c. 맞출 확률이 더 높아짐 -> 정확한 값을 예측하는 것 보다 0 아니면 1이라는 binary 분류로 예측할 때, 맞을 확률이 더 높아지기 때문
+) 시계열회귀문제: 시간에 따라 변화하는 양상을 보는 것 -> 순서가 중요!
👀 지도학습 - 비지도학습의 차이
레이블(label)이 있냐 없냐의 차이
-> 답이 있냐 없냐로 설명하는 것은 약간 핀트가 나간 느낌
P-value: False Positive의 비율 -> 0.01(0.05)보다 작을 떄에는 statistically significant하다고 할 수 있음(유의미하다) b.c. p-value의 넓이가 작을수록 내 모델의 설명력이 좋은 것이니까!
P-value와 T-value는 같은 것이라고 보면 됨 -> 데이터 분석에서는 주로 P-value 사용
다만, 대학원에서 연구, 논문쓸 때에는 T-value 사용 b.c. T-value가 더 정확함
모델의 설명력을 0과 1사이의 값을 표현한 것 -> 1에 가까울수록 설명이 잘 된 모델 (0인 경우는 특성과 타겟 간의 연관이 없는 것)
e.g. = 0.8인 모델은 80%의 설명력을 가진 것