머신러닝2/수업 필기

머신러닝2 4주차(1) (3주차는 추석일정으로 휴강)

코딩입문시작 2024. 10. 22. 23:27

  • MSR : 회귀의 평균 제곱 → 회귀모델이 설명하는 변동성을 나타낸다.
  • MSE : 오차의 평균 제곱 → 회귀모델이 설명하지 못하는 변동성을 나타낸다.
  • F = MSR/MSE 

  • RMSE : 오류 지표를 실제 값과 유사한 단위로 변환하여 해석을 쉽게 변환한다.

 

  • MAE : 모델의 예측값과 실제값의 차이를 더해 절댓값을 취하는 지표
  • MAPE : MAE를 퍼센트로 변환한 것이다.
  • MPE : MAPE에서 절댓값을 제외한 지표이다. 퍼센트로 변환한 것은 맞다. 
  • 더 관련된 것은, [Python] 성능 측정 지표 :: MAE, MSE, RMSE, MAPE, MPE, MSLE 여기를 참고하길 바란다.

매우 중요!!!

  • R-Squared : 모델의 독립변수에 의해 설명되는 종속변수의 분산비율을 측정한다
  • 종속변수의 변화를 잘 설명했는지를 판단한다. 즉, 모형이 예측값을 잘 이해하는지와 같은 설명력으로 볼 수 있다.
  • RMSE : 예측값과 실제값 간의 차이를 측정하여 모델이 데이터에 얼마나 잘 맞는지를 판단하는 것이다.
  • 예측력으로 볼 수 있다.

  • 종속변수를 설명하기 위해서 두 개 이상의 독립변수가 사용되는 선형회귀모형을 다중선형회귀모형이라고 한다.
  • 종속변수로는, 명목형 변수와 연속형 변수가 있고 델의 목적은 표본 내에서의 오차인 잔차를 줄이는 것이다. 
  • SSE를 줄이는 것이다.

다중선형회귀를 왜 하냐? WHY?

  • 초평면에 대해 설명해야 하기 때문이다.

 

[여기서부터가 시험문제에서 핵심이 될 파트이니, 잘 보도록 하자.]

diabetes 데이터 : 당뇨병 데이터 

  • check.for.updates.R() : R버전을 확인하는 코드이다.
  • install.R() : R버전을 업데이트하는 코드이다.

  • header = TRUE : 첫 번째 행이 열 이름(컬럼명)으로 사용된다는 것
  • na = "." : 데이터에서 결측치(NA)를 특정 기호로 처리하도록 설정하는 옵션, 여기선 결측치를 . 으로 설정
  • skim() : 데이터 프레임을 요약해서 보여주는 함수

  • as.factor( ) : 하나의 변수의 자료형을 요소형으로 바꾸는 함수 

  • mutate_if( ) : 특정 조건을 만족하는 변수(컬럼)에만 변형을 적용할 수 있도록 도와준다. 
  • → 데이터 프레임의 모든 변수에 변형을 적용하는 대신, 조건을 만족하는 변수들에만 변형을 적용할 때 사용

여러 개의 종속변수라던가, 여러 개를 삭제하고 싶다면? 

열이 없기 때문에 삭제가 진행되지는 않았다. 

  • lm(df$Diabetes ~ ., data=df) : 종속 변수 Diabetes를 모든 독립 변수로 예측하는 선형 회귀 모델을 만든다.
  • lm(df$Diabetes ~ 1, data=df) : 1은 절편만 있는 모델을 의미한다. 즉, 독립 변수가 없는 모델을 만든다. 이 모델은 Diabetes 값의 평균만을 예측한다.

두 집단이 의미있는 차이가 있다는 것을 알았다. → 독립변수가 효과가 있다는 얘기이다.

  • tidy() : 모델의 결과를 깔끔한 형태의 데이터 프레임으로 변환하는 데 사용
  • → R의 다양한 모델링 함수는 보통 복잡한 형식의 출력을 내놓는데, 이를 정리된 형태의 데이터 프레임으로 만들어 분석이나 시각화를 더 쉽게 할 수 있도록 도와주는 역할을 한다.

  • glance() : 모델의 전체적인 요약 통계를 하나의 행으로 반환하는 함수
  • 모델의 전반적인 성능을 평가하는 데 유용한 메트릭들을 포함한 단일 행의 데이터 프레임을 반환
  • 이 함수는 모델 전체에 대한 정보를 요약적으로 제공하며, 개별 변수나 계수에 대한 정보는 포함X

해석 결과를 쓰자면, r.squared (결정계수) 는 0.0629를 나타내고 있다. 이 말은, 회귀 모델이 전체 데이터 변동의 약 6.29%를 설명한다는 의미이다. 이 값이 낮다는 것은 모델이 데이터를 잘 설명하지 못하고 있음을 의미이다.

adj.r.squared (수정된 결정 계수) 또한 0.0542이다. 독립 변수의 수와 표본 크기를 고려한 결정 계수인데, 여기서도 모델의 설명력이 약 5.42%로 낮다는 것을 알 수 있다. sigma (잔차 표준 편차)는 0.322이고, 모델의 잔차(오차)의 표준 편차를 말한다. 이 값이 클수록 데이터와 모델 간의 차이가 크다는 걸 의미한다. 이 외에 아래에 적어놓겠다.

  • statistic (F 통계량) : 7.28 
  • 회귀 모델의 유의성을 평가하는 F-통계량
  • 모델이 전체적으로 유의미한지를 판단하는 데 사용되며, p-value와 함께 해석해야 한다.
  • p.value : 1.80e-8 (즉, 0.000000018)
  • p-value는 매우 낮은 값으로, 통계적으로 유의미한 결과
  • 즉, 이 모델이 우연에 의한 결과일 가능성은 매우 적다.
  • df (자유도) : 7
  • 모델에 사용된 자유도의 수
  • logLik (로그 가능도) : -216
  • 로그 가능도는 모델의 적합도를 평가하는 지표 중 하나로,  값이 낮을수록 모델이 데이터를 잘 설명하지 못하고 있을 가능성이 있다.
  • AIC (Akaike Information Criterion) : 450
  • AIC는 모델 간의 성능을 비교할 때 사용되는 지표로, 값이 낮을수록 더 좋은 모델을 의미
  • BIC (Bayesian Information Criterion) : 492
  • BIC도 AIC와 비슷한 기능을 하지만, 모델에 사용된 변수를 더 많이 벌주기 때문에 AIC보다 더 엄격한 기준이다.
  • deviance (편차) : 해당 결과에서는 표시되지 않았지만, 잔차와 관련된 정보이다.
  • df.residual (잔차 자유도) : 결과에서 주어진 잔차의 자유도
  • nobs (관측된 데이터 개수) : 데이터의 총 관측치 수
  • 요약하자면, 이 회귀 모델은 통계적으로 유의미하긴 하지만,  설명력(결정 계수)이 낮아서 데이터를 충분히 설명하지 못하는 것으로 보인다.

 

매우 중요!!!!!!!

[모형의 타당성 & 신뢰성 검정]

  • 선형성 →  예측하고자 하는 종속변수 Y와 독립변수 X간의 선형성을 이루어야 한다.
  • 등분산성 → 특정한 패턴 없이 고르게 분포해야 한다.
  • 독립성 → 잔차 사이에는 상관관계가 없이 독립적이어야 한다. (변수들끼리 서로 영향을 주어선 안된다.)
  • 정규성 잔차가 정규성을 만족하는지 여부 
  • 다중공선성 회귀 모델에서 두 개 이상의 독립변수가 서로 높은 상관관계가 있는 상황   하나 제거 

독립성 검정 

  • Durbin Watson 검정 : 1.5 ~ 2.5 사이 일때 잔차는 독립이다.
  • 다중공선성   VIF 지수가 10이상이면 연관성이 있다고 판단하고 10이상인 것들은 제거한다.
  •   R-Squared값이 유지되거나 높아지는 모델을 찾아야 한다.

다중공선성을 왜 제거해야 하나?

  • 다중공선성이 확인이 되면, 계수를 신뢰할 수 없게 된다. 뿐만 아니라, 결과 해석하는 데에 어려움을 겪고, 과적합 현상이 발생할 수도 있다. 

'머신러닝2 > 수업 필기' 카테고리의 다른 글

머신러닝2 7주차 (1)  (0) 2024.10.23
머신러닝2 5주차  (0) 2024.10.23
머신러닝2 4주차(2)  (0) 2024.10.23
머신러닝2 2주차  (2) 2024.10.22
머신러닝2 1주차  (1) 2024.10.22