오랑우탄의 반란
[ML] 머신러닝 다중선형회귀분석 파이썬 실습 (VSCode) 본문
다중선형회귀
앞서 간단한 선형회귀 분석을 진행했는데요, 모든 데이터가 선형적인 관계를 보이면 참 좋겠지만 현실의 데이터는 비선형적인 관계를 지닐 때가 훨씬 많습니다.
그렇기 때문에 다중선형회귀분석이 더 많이 쓰일 수 있는데요, tips 데이터 중 수치형 데이터에 대해 분석을 진행했다면 이번에는 범주형 데이터를 인코딩(encoding)하는 과정까지 다뤄보도록 하겠습니다.
머신러닝 다중선형회귀분석 실습
진행방법은 선형회귀와 동일한데요, 범주형 데이터를 간단하게 전처리하는 과정만 추가됩니다.
라이브러리 설치는 생략하겠습니다.
- 데이터 확인 (Seaborn tips)
- 범주형 데이터 인코딩
- 다중선형회귀 모델 훈련
- 모델 평가
1. 데이터 확인
사용할 tips 데이터를 다시 확인해줍니다.
해당 데이터에는 NaN 값이 없는 것이 확인되는데요, 범주형 데이터 성별 sex 칼럼을 분석에 사용해보겠습니다.
2. 범주형 데이터 인코딩
sex 칼럼은 Female, Male 두 가지 값밖에 없기 때문에 간단하게 0, 1 로 각각 인코딩할 수 있습니다.
인코딩한 결과물을 담을 칼럼 sex_en 을 새로 생성해줍니다.
tips_df['sex_en'] = tips_df['sex'].apply(lambda x: 0 if x=='Female' else 1)
저는 lambda 함수를 사용해 바로 적용시켰는데, 인코딩이 복잡한 경우 따로 함수를 작성해서 사용하는 것이 좋습니다.
3. 다중선형회귀 모델 훈련
훈련 과정은 동일하고, X 에 대상이 되는 모든 데이터를 넣어줍니다.
총 결제 금액과 성별 데이터로 팁 데이터를 예측하려고 하는 것이기 때문에 total_bill과 sex_en를 넣어줍니다.
model_lr = LinearRegression()
X = tips_df[['total_bill','sex_en']]
y = tips_df[['tip']]
model_lr.fit(X,y)
실제 데이터는 이미 만들어둔 것을 사용하고, 새로운 예측 데이터를 다시 변수로 저장해줍니다.
y_pred_tips2 = model_lr.predict(X)
4. 모델 평가
마지막으로 모델에 대한 평가를 진행해줍니다.
mean_squared_error(y_true_tips,y_pred_tips2)
r2_score(y_true_tips,y_pred_tips2)
total_bill, tip 변수로 단순선형회귀 분석을 진행했던 것에 비해 sex 변수를 추가해서 진행한 분석의 평가 결과값에 미묘한 차이가 있음을 볼 수 있지만, 둘 다 크게 유효한 분석은 되지 못했습니다.
이번 실습 분석은 범주형 데이터 처리와 다중선형회귀분석을 맛보려고 진행했는데요,
실제 회귀분석을 진행하기에 앞서 sex에 따른 tip 의 차이가 있는지 확인을 해봤어야 했는데, 둘 사이 큰 차이가 없어서 평가도 좋지 않게 나온 것이니 참고해 주세요.
'PYTHON > 머신러닝' 카테고리의 다른 글
[ML] (다중)로지스틱회귀 분류 분석 파이썬 실습 (VSCode) (0) | 2024.08.12 |
---|---|
[ML] 로지스틱회귀 기초 이론 및 수식 정리 (분류 분석) (0) | 2024.08.09 |
[ML] 머신러닝 선형회귀분석 파이썬 실습 (VSCode) (0) | 2024.08.09 |
[ML] 선형회귀 기초 이론 및 수식 정리 (회귀 분석) (0) | 2024.08.08 |
[ML] 머신러닝이란? (0) | 2024.08.08 |