TIL/머신러닝

머신러닝 - 다중 로지스틱회귀 실습

jojoon2786 2024. 8. 13. 15:46

이 전 포스팅에서 실습했던 X변수 'Fare'에 Pclass와 Sex 컬럼을 추가하여 다중 로지스틱 회귀를 실습해보자.

 

# 다중 로지스틱 회귀 실습
def get_sex(x):
    if x == 'female':
        return 0
    else:
        return 1

titanic_df['Sex_en'] = titanic_df['Sex'].apply(get_sex)

 

X_2 에 Fare, Sex, Pclass를 넣어주자.

X_2 = titanic_df[['Pclass','Sex_en','Fare']]
y_true = titanic_df[['Survived']]
from sklearn.linear_model import LinearRegression, LogisticRegression

model_lor_2 = LogisticRegression()
model_lor_2.fit(X_2, y_true)

 

get_att 함수를 model_lor_2로 적용해보자.

get_att(model_lor_2)

 

그 다음으로 predict 메서드를 이용해 y_pred_2를 만든다.

y_pred_2 = model_lor_2.predict(X_2)

y_pred_1과 비교하면 0,1,1,1로 생존으로 예측치가 바뀐 것을 볼 수 있다.

데이터가 많아져 정확도가 올라갔을 것이다.

 

metrics 함수를 이용해서 정확도와 f1-score을 보자.

 

참고) predict_proba 메서드

 

predict 메서드는 0.5 이상이면 생존, 0.5 이하면 사망으로 예측하는 반면

predict_proba 메서드는 정확한 확률을 반환한다. 왼쪽 값이 사망확률, 오른쪽 값이 Y가 1인(생존) 확률이다.

 

 

  • 선형회귀와 로지스틱회귀의 공통점
    1. 모델 생성이 쉬움
    2. 가중치(혹은 회귀계수)를 통한 해석이 쉬운 장점이 있음
    3. X변수에 범주형, 수치형 변수 둘 다 사용 가능
  • 선형 회귀와 로지스틱회귀의 차이점