타이타닉 예측 대회 데이터를 통해 로지스틱회귀를 실습해보고자 함.
선형 회귀 때와 같이 import 로 필요한 라이브러리를 가져왔다.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import sklearn
데이터를 확인한 후 가설을 세워보았다.
- "비상상황 특성상 여성을 배려하여 많이 생존하였을 것이다."
- 가설의 검증에는 두 가지 방법이 있음.
1. pivot table을 만들어 확인
2. 그래프를 통해서 확인
1. pivot_table
2. 그래프
이렇게 성별은 생존과 관련이 있다는 사실을 알 수 있다.
그렇다면 X변수로 쓸 수 있는 컬럼에 어떤 것이 더 있을까 ?
데이터를 분류해보자
- 숫자 - Age, Sisp, Parch, Fare
- 범주 - Pclass, Sex, Cabin, Embarked
X변수로 Fare를 사용해보자.
# x = Fare, y = Survived
X_1 = titanic_df[['Fare']]
y_true = titanic_df[['Survived']]
히스토그램으로 요금의 분포를 확인
sns.histplot(titanic_df, x = 'Fare')
대부분의 요금이 10$ 근방인 것을 확인할 수 있음.
학습시켜보자.
from sklearn.linear_model import LinearRegression, LogisticRegression
model_lor = LogisticRegression()
model_lor.fit(X_1, y_true)
자주쓰는 함수를 타이타닉 데이터로 확인해보자.
- sklearn.linear_model.LogisticRegression : 로지스틱회귀 모델 클래스
- 속성
- classes_: 클래스(Y)의 종류
- n_features_in_ : 들어간 독립변수(X) 개수
- feature_names_in_: 들어간 독립변수(X)의 이름
- coef_: 가중치
- intercept_: 바이어스
- 속성
def get_att(x):
print('클래스 종류 :', x.classes_)
print('독립변수 갯수 :', x.n_features_in_)
print('들어간 독립변수(X)의 이름 :', x.feature_names_in_)
print('가중치 :', x.coef_)
print('바이어스 :', x.intercept_)
get_att(model_lor)
평가하기
from sklearn.metrics import accuracy_score, f1_score
def get_metrics(true, pred):
print('정확도', accuracy_score(true, pred))
print('f1-score', f1_score(true, pred))
pred 인자를 전달하기 위해서 pred 선언
y_pred_1 = model_lor.predict(X_1)
y_pred_1[:10]
#함수 실행
get_metrics(y_true, y_pred_1)
성별 때에 비해서 낮은 정확도를 볼 수 있음. X변수를 추가해야할 것 같음.
'TIL > 머신러닝' 카테고리의 다른 글
데이터 프로세스 : 데이터 전처리, EDA (0) | 2024.08.16 |
---|---|
머신러닝 - 다중 로지스틱회귀 실습 (0) | 2024.08.13 |
머신러닝 - 로지스틱회귀 이론 (0) | 2024.08.12 |
머신러닝 - 다중 선형회귀 이론, 실습 (0) | 2024.08.12 |
머신러닝 - 선형회귀 실습 (0) | 2024.08.12 |