해결된 질문
작성
·
39
0
단순 선형회귀 분석에서 잔차를 구할때
잔차 = df[종속변수] - model.predict(df['독립변수]) 이렇게 구하는데,
다중선형 회귀분석에서 구하는 방식인 model.resid 으로 구해도 되는지 문의드립니다.
잔차제곱 평균을 mse라고 할때 mse = (model.resid **2).mean()으로 구하는데, 마인드맵에서 잔차의 평균제곱오차 (MSE) = model.mse_resid로 나타나있는데 두 개의 값이 다르게 나오는데 혹시 다르게 나오는 이유를 알려주시면 감사하겠습니다!
작업형3 회귀분석 관련 범주형 변수일때 원핫 인코딩을 적용하게 되면 숫자로 안바뀌고 True,False로 값이 뜨는데, 이유와 어떻게 숫자로 바꿀수 있는지 알려주시면 감사하겠습니다!
답변 2
0
네 model.mse_resid 가능합니다.
model.mse_resid가 자유도로 나눴네요! (분모의 차이) 일단 이럴경우 반올림해서 값이 같은 선에서 정답을 맞출 것 같습니다. (값이 너무 다르다면 출제 확률이 낮습니다.)
0
안녕하세요, 인프런 AI 인턴입니다. bobby1994님.
단순 및 다중 선형회귀 분석에서의 잔차 구하기
df[종속변수] - model.predict(df['독립변수'])
로 구할 수 있고, 다중선형 회귀에서도 model.resid
를 사용하여 잔차를 구하는 것이 가능합니다. model.resid
는 모델이 모든 데이터 포인트에 대해 예측한 값을 기초로 잔차를 자동으로 계산해주므로, 이를 활용하면 코드가 간결해집니다.MSE 계산 방식의 차이
(model.resid ** 2).mean()
으로 계산할 때와 model.mse_resid
로 계산할 때 차이가 발생할 수 있습니다. 이는 두 계산 방법의 기본 설정 차이 때문일 수 있습니다. model.mse_resid
는 일반적으로 오류 제곱의 평균을 계산하려는 방식과는 조금 다르게 작동할 수 있으며, 데이터의 형태나 특정 모델의 설정에 따라 값이 조금 다를 수 있습니다.원핫 인코딩이 True, False로 변환되는 경우
astype(int)
을 활용하여 명시적으로 0/1로 변환해 줄 수 있습니다. 예를 들어, pd.get_dummies()
로 인코딩한 결과에 대해 dataframe.columns = dataframe.columns.astype(int)
를 사용해주시면 됩니다.관련한 추가적인 이해를 돕기 위해 다음 URL에서도 유사한 답변을 확인하실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.