✳️ 다중선형회귀 실습
다중선형회귀 : 단순선형회귀와 같은 개념이지만 독립변수 X가 여러개인 분석기법
앞 글에 단순선형회귀 실습에 이어서, tips 데이터들 중 범주형 데이터들을 이용해서 다중선형회귀를 실습해보도록 한다.
https://se0ehe.tistory.com/151
tips_df.head(3)
🤖 성별 데이터를 이용
범주형 데이터이기 때문에 encoding을 해줄 것이다.
직접 함수를 짜서 사용할 수도 있고 sklearn에서 제공하는 함수를 쓸 수 있다.
이번 실습에서는 직접 함수를 짜서 써보기!
# Female = 0 , Male = 1
def get_sex(x):
if x == 'Female':
return 0
else:
return 1
# apply로 매 행에 대하여 특정한 함수를 적용시키기
tips_df['sex_en'] = tips_df['sex'].apply(get_sex)
tips_df.head(3)
🤖 모델 설계도 가져오기
model_lr3 = LinearRegression()
X = tips_df[['total_bill', 'sex_en']]
y = tips_df[['tip']] # 앞서 만들어진 것이 있어서 따로 할 필요는 없지만, 눈에 익히기 위해 써줘보았다.
🤖 학습하기
# 학습
model_lr3.fit(X, y)
🤖 예측값 계산하기
# 예측
y_pred_tip2 = model_lr3.predict(X)
y_pred_tip2[:5]
🤖 모델 평가
💟 MSE
# 단순선형회귀 mse : X변수 = '전체금액'
# 다중선형회귀 mse : X변수 = '전체금액', '성별'
print('단순선형회귀', mean_squared_error(y_true_tip, y_pred_tip))
print('다중선형회귀', mean_squared_error(y_true_tip, y_pred_tip2))
💟 R square
# 단순선형회귀 R square : X변수 = '전체금액'
# 다중선형회귀 R square : X변수 = '전체금액', '성별'
print('단순선형회귀', r2_score(y_true_tip, y_pred_tip))
print('다중선형회귀', r2_score(y_true_tip, y_pred_tip2))
처음 선형회귀모델에 비해 아주 조금 올랐다.
팁이라는 정보를 예측하기엔 전체금액과 성별이 선형적인 관계가 없다라고 이해할 수 있다.
'📒 Today I Learn > 🤖 Machine Learning' 카테고리의 다른 글
[머신러닝 기초] 로지스틱회귀(분류 분석) 이론 (0) | 2024.08.12 |
---|---|
[머신러닝 기초] 선형회귀 정리 (0) | 2024.08.09 |
[머신러닝 기초] 단순선형회귀 실습 (0) | 2024.08.09 |
[머신러닝 기초] 선형회귀 이론 (0) | 2024.08.09 |
[머신러닝 기초] 머신러닝? (0) | 2024.08.09 |