인프런 커뮤니티 질문&답변

oleole님의 프로필 이미지
oleole

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

회귀 실습 1: 자전거 대여(공유) 수요 예측 - 01

Binary 변수의 coefficient 해석 및 L1/L2 가정

작성

·

339

0

안녕하세요
 
친절한 강의와 설명 감사합니다! 두가지 질문이 있습니다.
 
1)
Binary 변수의 coefficient를 어떻게 해석하는지 궁금합니다.
 
예를 들어, L1/L2 Regression model에서
  • Hour_20 변수의 coefficient = -0.3 일 경우, 20시일 때 자전거 대여수가 줄어든다
  • Hour_9 변수의 coefficient =0.5 일 경우, 오전 9시에 자전거 대여수가 늘어난다.
  • Hour_6 변수의 coefficient = 0.0001 일 경우, 오전 6시는 자전거 대여수에 거의 영향을 주지 않는다.
와 같이 해석을 하는 것이 맞을까요? 보다 구체적인 해석이 가능한지 알려주시면 감사하겠습니다!
 
2)
Linear regression은
  1. Linearity - 선형성
  2. Independent data points - 독립성
  3. Normality - 정규성
  4. Equal variance - 등분산성
  5. No multi-collinearity - 다중공선성
와 같은 가정을 따라야 하는 것으로 알고 있습니다.
 
L1과 L2 또한 Linear regression와 동일한 가정을 따라야 하는 것으로 알고 있는데 해당 Bike Demand 예제에서는 따로 가정을 검증하지 않고 바로 모델링을 한 것 같습니다.
 
2-1) 특별히 하지 않은 이유가 있는지 궁금하고, 하지 않아도 된다면 그 이유에 대해 설명해주시면 감사하겠습니다.
2-2) 가정 검증을 해야하는 것이라면 강의 예제처럼 검증을 하지 않은 경우, 모델의 타당성에 대해 의문을 제기할 수 있는지도 알려주시면 감사하겠습니다.
2-3) 가정 검증에 대한 강의 내용은 어디서 찾을 수 있을까요?
 
좋은 강의 내용과 친절한 답변 감사합니다 ^^

답변 3

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

 

1. 먼저 원-핫 인코딩이 아닌 일반 코드값의 회귀 계수는 잘 아시다시피 그런 식으로 이해 될 수가 없습니다. 

연속형 값에 대해서는 그렇게 이해할 수 있습니다. 하지만 코드값, 가령 (19, 20, 21, 22, 23, 00)를 그렇게 대응 시킬 수는 없습니다. 코드값의 경우는 '전체 회귀식에서 해당 회귀 계수의 영향도가 이정도 이다'라는 정도로 이해가 되면 될 것 같습니다. 

그럼 일반 코드값을 원-핫 인코딩한 회귀 계수는 연속형 값과 같은 해석이 가능한가 인데, 이 역시 그정도 수준까지 확장 해석하기에는 무리가 있습니다.  물론 회귀 계수값이 - 냐, + 냐에 따라서 당연히 타겟값에 영향을 미치겠지만, 그것보다는 원핫 인코딩 원본 컬럼을 기준으로 어느정도의 영향을 가지고 있느냐 정도로 해석되는게 더 맞다고 생각됩니다. 즉 hour_20의 회귀계수가 -0.3 일때 20시의 자전거 대여수가 늘어나고 hour_9일때 회귀 계수가 0.5라면 9시에 대여수가 늘어난다기 보다는 hour라는 피처를 원핫 인코딩 될 때 개별 피처들의 영향도가 이정도 이다 라는 정도로 이해가 되면 될 것 같습니다. 

2. 통계학 기반의 회귀와 머신러닝 기반의 회귀의 가장 큰 차이는 가정 검증을 하느냐 그렇지 않느냐 입니다. 

머신러닝 기반의 회귀는 일반적으로 통계학 기반의 회귀에서 수행하는 가정 검증을 별도로 하지 않습니다.  방정식 형태로 변수간의 관계를 공식화하는 통계학 기반의 회귀에는 다르게 머신러닝 기반의 회귀는 학습 데이터를 기반으로 모델 알고리즘을 학습 시키는 방식의 차이가 있기 때문입니다.

예를 들어 통계학 기반의 회귀에서는 R2 Score, p밸류 유의성 검증등이 중시되지만, 머신러닝에서는 RMSE와 같이 예측과 실제값 차이가 더 중시됩니다. 머신러닝이 좀 더 결과 우선주의이긴 합니다. 

그래서 제 강의를 포함한 어떤 머신러닝 강의에서도 아마 p 밸류 검증값은 단어는 나오지 않을 것입니다. 

그런데 이를 수행해야 하느냐, 수행하지 않아야 하느냐는 머신러닝 초창기에는 여러 이견이 있습니만, 지금은 각자의 의견의 존중하는 걸로 정착이 되었습니다

2-1) 특별히 하지 않은 이유가 있는지 궁금하고, 하지 않아도 된다면 그 이유에 대해 설명해주시면 감사하겠습니다.
=> 앞에서 말씀드린대로 머신러닝은 데이터를 기반으로 모델 알고리즘을 학습 시키는 것에 충실합니다.
모델의 성능은 데이터에 좌우 됩니다. 말씀해주신 선형성, 독립성, 등분산성은 모델의 성능을 향상시키기 위한 방법이므로 모델의 성능이 떨어지면 해당 데이터의 선형성, 독립성, 등분산성을 강화할 수 있도록 피처를 가공하면 될 일이지 이를 따로 검증할 필요는 없다고 여깁니다.
 
2-2) 가정 검증을 해야하는 것이라면 강의 예제처럼 검증을 하지 않은 경우, 모델의 타당성에 대해 의문을 제기할 수 있는지도 알려주시면 감사하겠습니다.
=> 네, 그래서 통계적 관점이 중요시 되는 업무에 대해서는 머신러닝 도입을 망설이는 경우도 있습니다. 하지만 그러한 경우라면 데이터 관점에서의 가설 검증은 별도로 수행해서 적용하곤 합니다.
 
2-3) 가정 검증에 대한 강의 내용은 어디서 찾을 수 있을까요?
=> 앞에 말씀드린 대로 통계학 회귀 수준의 가정 검증은 제 강의에서 없습니다.
 
감사합니다.

  

0

권 철민님의 프로필 이미지
권 철민
지식공유자

 코드 피처 회귀 계수를 가지고 타겟값과 업무적으로 연관시키지는 않습니다. 코드 값이 0, 1, 2 와 같이 되어 있는데, 이 코드값 회귀 계수가 - 또는 + 이든 이를 가지고 타겟값과 업무적으로 연관 시키기는 어렵습니다. 코드값은 -1, 0, 1 또는 100, 200, 300 과 같이 얼마든지 인코딩이 변경될 수 있기 때문입니다. 

자전거 대여와 같이 +값만을 예측하는 모델에서 만일 코드 피처의 회귀 계수가 -가 나왔다고 코드 피처가 -적인 영향을 미친다고 할 수 없습니다.  코드 피처의 회귀 계수는 전체 회귀식에서 다른 회귀 계수와 함께 섞이면서 타겟값 예측을 위한 최적 회귀식 도출을 위해 -가 될 수는 있지만, 그렇다고 코드 피처가 업무적으로 - 인지는 알수가 없는 일입니다. 

그래서 코드 피처를 원-핫 인코딩한 원-핫 인코딩 피처 역시 -가 되더라도 업무적으로 타겟에 - 적인 영향을 미친다고 인식하지 않아야 된다고 말씀 드린 것입니다. 

그리고 hour라는 피처를 원핫 인코딩 될 때 개별 피처들의 영향도가 이정도 이다 라는 정도로 이해하면 좋을 것 같다는 의미는  hour_01=0.1, hour_02=-0.2,, hour_03=-0.1,, 와 같이 구성되었을 때  원본 hour를 살펴보니 여러 코드값에 따라 해당 정도의 영향력이 있구나 수준에서 생각하면 좋을 것 같다는 의미입니다. 

요약 드리면 코드 피처 회귀 계수의  - 또는 + 에 따라 타겟값을 업무적으로 연관 시키지 않고, 최적 회귀식을 위해서 - 또는 +로 만들어 질수 있다는 의미를 강조드린 것입니다. 

 

0

oleole님의 프로필 이미지
oleole
질문자

강사님, 친절한 답변 정말 감사드립니다. 

"연속값의 경우 회귀 계수의 + / - 에 따라 Y가 늘어나거나 (+) 줄어든다 (-)"라고 해석 할 수 있지만, "일반코드 값을 원-핫 인코딩한 회귀 계수값은 -냐, +냐에 따라서 y의 값이 줄어들거나 (-) 혹은 늘거나 (+) 하는 것은 아니고 coefficient의 절댓값만을 해당 feature의 영향도이다"라고 해석하는 것이 맞을까요? "물론 회귀 계수값이 - 냐, + 냐에 따라서 당연히 타겟값에 영향을 미치겠지만" 라는 강사님의 답변에서는 coefficient의 + / - 값이 y 값을 똑같은 방향성 (+ / -) 으로 영향을 미친다라고 말씀하시는 것 같아 헷갈립니다.

 

 

 

oleole님의 프로필 이미지
oleole

작성한 질문수

질문하기