데이터 과학 - 선형 회귀 사례


사례: Duration + Average_Pulse를 사용하여 Calorie_Burnage 예측

Average_Pulse 및 Duration을 설명 변수로 사용하여 선형 회귀 테이블을 생성합니다.

예시

import pandas as pd
import statsmodels.formula.api as smf

full_health_data = pd.read_csv("data.csv", header=0, sep=",")

model = smf.ols('Calorie_Burnage ~ Average_Pulse + Duration', data = full_health_data)
results = model.fit()
print(results.summary())

설명된 예:

  • 라이브러리 statsmodels.formula.api를 smf로 가져옵니다. Statsmodels는 Python의 통계 라이브러리입니다.
  • full_health_data 세트를 사용하십시오.
  • smf.ols()를 사용하여 일반 최소 제곱을 기반으로 모델을 만듭니다. 괄호 안에 설명 변수를 먼저 써야 합니다. full_health_data 데이터 세트를 사용합니다.
  • .fit()을 호출하면 변수 결과를 얻을 수 있습니다. 이것은 회귀 모델에 대한 많은 정보를 담고 있습니다.
  • 요약()을 호출하여 선형 회귀 결과가 있는 테이블을 가져옵니다.

산출:

선형 회귀 테이블 케이스

선형 회귀 함수는 수학적으로 다음과 같이 다시 작성할 수 있습니다.

Calorie_Burnage = Average_Pulse * 3.1695 + Duration * 5.8424 - 334.5194

소수점 이하 두 자리로 반올림:

Calorie_Burnage = Average_Pulse * 3.17 + Duration * 5.84 - 334.52


Python에서 선형 회귀 함수 정의

예측을 수행하기 위해 Python에서 선형 회귀 함수를 정의합니다.

다음과 같은 경우 Calorie_Burnage는 무엇입니까?

  • 평균 맥박은 110이고 훈련 세션 기간은 60분입니까?
  • 평균 맥박은 140이고 훈련 세션 기간은 45분입니까?
  • 평균 맥박은 175이고 훈련 세션 기간은 20분입니까?

예시

def Predict_Calorie_Burnage(Average_Pulse, Duration):
 return(3.1695*Average_Pulse + 5.8434 * Duration - 334.5194)

print(Predict_Calorie_Burnage(110,60))
print(Predict_Calorie_Burnage(140,45))
print(Predict_Calorie_Burnage(175,20))

답변:

  • 평균 맥박은 110이고 훈련 세션 기간은 60분 = 365칼로리입니다.
  • 평균 맥박은 140이고 훈련 세션 기간은 45분 = 372칼로리입니다.
  • 평균 맥박은 175이고 훈련 세션 기간은 20분 = 337칼로리입니다.

계수에 액세스

계수를 살펴보십시오.

  • Average_Pulse가 1 증가하면 Calorie_Burnage가 3.17로 증가합니다.
  • Duration이 1 증가하면 Calorie_Burnage가 5.84로 증가합니다.

P-값에 액세스

각 계수에 대한 P-값을 확인합니다.

  • Average_Pulse, Duration 및 Intercept의 경우 P 값은 0.00입니다.
  • P-값은 0.05보다 작기 때문에 모든 변수에 대해 통계적으로 유의합니다.

따라서 여기서 Average_Pulse 및 Duration이 Calorie_Burnage와 관계가 있다는 결론을 내릴 수 있습니다.


수정된 R-제곱

하나 이상의 설명 변수가 있는 경우 R-제곱에 문제가 있습니다.

더 많은 변수를 추가하면 R-제곱은 거의 항상 증가하고 절대 감소하지 않습니다.

이는 선형 회귀 함수 주위에 더 많은 데이터 포인트를 추가하기 때문입니다.

Calorie_Burnage에 영향을 미치지 않는 확률 변수를 추가하면 선형 회귀 함수가 적합하다는 잘못된 결론을 내릴 위험이 있습니다. 조정된 R-제곱은 이 문제를 조정합니다.

따라서 설명 변수가 두 개 이상인 경우 수정된 R-제곱 값을 확인하는 것이 좋습니다.

조정된 R-제곱은 0.814입니다.

R-제곱 값은 항상 0에서 1(0%에서 100%) 사이입니다.

  • 높은 R-제곱 값은 많은 데이터 포인트가 선형 회귀 함수 라인에 가깝다는 것을 의미합니다.
  • 낮은 R-제곱 값은 선형 회귀 함수 라인이 데이터에 잘 맞지 않는다는 것을 의미합니다.

결론: 모델이 데이터 포인트에 잘 맞습니다!

축하합니다! 이제 데이터 과학 라이브러리의 마지막 모듈을 완료했습니다.