
[참고 게시글]
머신러닝 | 선형회귀 (Linear Regression) 직선 구하는 방법 | 회귀분석 평가지표 (MSE, R Square) | 회귀분
1. 선형회귀 이론 ▶ 선형회귀 용어 정리 X는 독립변수, 원인변수, 설명변수 Y는 종속변수, 결과변수 ▶ 통계학에서 사용하는 선형회귀 식 β0 : 편향(Bias) β1 : 회귀 계수 ε : 오차(에러), 모델이 설
nasena.tistory.com
1. 다중선형회귀
▶ 다중선형회귀
이전 게시글에서는 X와 Y간의 데이터를 단순 선형회귀 분석 했음
하지만 실제의 데이터들은 비선형적인 관계를 가지는 경우가 많음
이를 위해 X변수를 추가할 수 도 있고, 변형할 수도 있음
▶ 단순선형회귀 vs. 다중선형회귀

2. 범주형 데이터 사용하기
▶ 수치형 데이터 vs. 범주형 데이터

- 수치형 데이터
- 연속형 데이터 : 두 개의 값이 무한한 개수로 나누어진 데이터
ex) 키, 몸무게 - 이산형 데이터 : 두 개의 값이 유한한 개수로 나누어진 데이터
ex) 주사위 눈, 나이
- 연속형 데이터 : 두 개의 값이 무한한 개수로 나누어진 데이터
- 범주형 데이터
- 순서형 데이터 : 순서가 의미있는 데이터
ex) 학점, 등급 - 명목형 데이터 : 순서가 의미 없는 데이터
ex) 혈액형, 성별
- 순서형 데이터 : 순서가 의미있는 데이터
3. 다중선형회귀, 범주형 데이터 인코딩 실습
▶ 인코딩 (Encoding) 이란?
성별, 날짜와 같은 범주형 데이터를 임의로 0, 1 등의 숫자로 바꾸는 작업
▶ 다중선형회귀 실습하면서 인코딩 하는 방법도 같이 적어놓았으니 참고하실 분들은 클릭!
[참고 게시글]
[데이터분석 과정/머신러닝] - 머신러닝 | 선형회귀 (Linear Regression) 실습 | tips 데이터 | 범주형 데이터 인코딩 (Encoding) 하는 방법
머신러닝 | 선형회귀 (Linear Regression) 실습 | tips 데이터 | 범주형 데이터 인코딩 (Encoding) 하는 방법
1. 라이브러리 가져오기 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns 2. tips 데이터셋 구경하기 ▶ tips 데이터셋 안의 데이터들은 어떻게 생겼는지 살펴보기 tips_df = sns.load_dataset('tips')
nasena.tistory.com
4. 선형회귀 정리
4-1) 선형회귀 가정
① 선형성(Linearity)
: 독립변수(X)와 종속변수(Y) 간에 선형 관계가 존재해야 함

② 등분산성(Homoscedasticity)
: 오차(Error)의 분산이 모든 수준의 독립변수에 대해 일정해야 함
즉, 오차가 특정 패턴을 보여서는 안되며, 독립변수의 값에 상관없이 일정해야 함

③ 정규성(Normality)
: 오차 항은 정규 분포를 따라야 함

④ 독립성(Independence)
: X변수는 서로 독립적이어야 함
▶ 그렇지 않으면 '다중공선성의 문제'가 일어남
- 변수가 많아지면 서로 연관이 있는 경우가 있음
회귀분석에서 독립변수(X) 간의 강한 상관관계가 나타나는 것을 다중공선성(Multicolinearity) 문제 라고 함
▶ 다중공선성 해결 방법
- 서로 상관관계가 높은 변수 중 하나만 선택하기(산점도 혹은 상관관계 행렬)
- 두 변수를 동시에 설명하는 차원축소(Principle Component Analysis, PCA)를 실행하여 변수를 1개로 축소
tips_df = sns.load_dataset('tips')
sns.pairplot(tips_df)

>> 자기 자신과의 상관관계는 의미가 없으므로 그 자리에는 해당 데이터의 히스토그램을 그려줌
>> tips 데이터에서는 total_bill과 tip이 서로 상관관계가 있는 것처럼 보임
>> 그런데 만약 X변수에 서로 상관관계가 있는 total_bill과 tip을 모두 사용하면 다중공선성의 문제가 일어남
(참고) 히트맵으로 상관관계 알아보기

(참고) 차원축소

4-2) 선형회귀 정리
▶ 선형회귀 분석 시 참고
: 머신러닝 모델 중 선형회귀는 가장 이해하기 쉽고, 사용하기 쉬움
: 하지만 말 그대로 X-Y변수 간의 선형적 관계가 좋아야만 좋은 성능을 낼 수 있음
▶ 선형회귀 장점과 단점
- 장점
- 직관적, 이해하기 쉬움, X-Y변수의 관계 정량화 가능
- 모델 학습이 빠름(가중치 계산이 빠름)
- 단점
- X-Y변수 간의 선형성 가정이 필요함
- 평가 지표가 평균(Mean)을 포함하기 때문에 이상치에 민감함
- 범주형 변수를 인코딩할 때 정보 손실이 일어남
- 사용하는 Python 패키지
- sklearn.linear_model.LinearRegression
from sklearn.linear_model import LinearRegression
# 선형회귀 모델 평가지표(MSE, R Square)
from sklearn.metrics import mean_squared_error
from sklearn.metrics improt r2_score
# 두 개를 같이 적어도 됨
from sklearn.metrics import mean_squared_error, r2_score
댓글