250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 반복문
- f-string
- 리스트
- 선형회귀
- Set
- map
- 태블로
- 다중공선성
- 이중for문
- Leetcode
- 내일배움일지
- 데이터시각화
- 프로그래머스
- 데이터전처리
- python
- 가설검정
- AB테스트
- SQL
- DATE_SUB
- Join
- 내배캠_학습기록
- ★
- SQLD
- 아티클스터디
- 한줄for문
- Til
- Max
- 시각화
- 내일배움캠프
- 통계학
Archives
- Today
- Total
노력에는 지름길이 없으니까요
4.1 단순선형회귀 본문
728x90
한개의 변수에 의한 결과를 예측
금융관련, 매출 예측 등... 다양하게 쓰이는 방법
왜 경향성 파악하는 방법론의 용어로 '회귀'라는 단어를 쓰는가?
사람의 키가 세대가 지남에 따라 어느 정도가 차이가 있겠으나, 결국 평균으로 돌아오려 한다, 즉 평균으로 회귀한다는 연구 결과를 얻어내고 이 이후로 경향성 문제에서 '회귀'라는 표현을 쓰기 시작했다고 함!
선형회귀란?
직선 형태로 회귀를 하는구나! 직선과 같은 관계를 보일 때!
회귀를 통해 우리가 가지고 있지 않은 데이터에 대해서도 예측할 수 있게 된다.\
단순선형회귀
- 하나의 독립 변수(X)와 하나의 종속 변수(Y) 간의 관계를 직선으로 모델링하는 방법.
☑️ 회귀식
- Y = β0 + β1X, 여기서 β0는 절편, β1는 기울기
- 중학교 때 배웠던 1차함수를 생각하면 이해하기 쉬움!
☑️ 특징
- 독립 변수x의 변화에 따라 종속 변수y가 어떻게 변화하는지 설명하고 예측.
- 데이터가 직선적 경향을 따를 때 사용합니다.
- 간단하고 해석이 용이합니다.
- 데이터가 선형적이지 않을 경우 적합하지 않습니다.
하나의 독립변수와 종속변수와의 관계를 분석 및 예측
- 광고비(X)와 매출(Y) 간의 관계 분석.
- 현재의 광고비를 바탕으로 예상되는 매출을 예측 가능.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
# 예시 데이터 생성
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 단순선형회귀 모델 생성 및 훈련
model = LinearRegression()
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
# 회귀 계수 및 절편 출력
print("회귀 계수:", model.coef_)
print("절편:", model.intercept_)
# 모델 평가
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print("평균 제곱 오차(MSE):", mse)
print("결정 계수(R2):", r2)
# 시각화
plt.scatter(X, y, color='blue')
plt.plot(X_test, y_pred, color='red', linewidth=2)
plt.title('linear regeression')
plt.xlabel('X : cost')
plt.ylabel('Y : sales')
plt.show()
> 회귀 계수: [[2.9902591]]
절편: [4.20634019]
-> y = 2.99x + 4.20
>평균 제곱 오차(MSE): 0.9177532469714291
결정 계수(R2): 0.6521157503858556
mse값이 낮을수록, r2가 높을수록 좋은 것!
728x90
반응형
'통계학' 카테고리의 다른 글
4.2 다중선형회귀 (0) | 2024.08.05 |
---|---|
다중공선성이란? (0) | 2024.08.05 |
3.6 제 1종 오류와 제 2종 오류 (0) | 2024.08.02 |
3.5 카이제곱검정 (0) | 2024.08.02 |
3.4 다중검정 (0) | 2024.08.02 |