첫번째 Kaggle - Titanic(6)

다현·2022년 2월 4일
0

Kaggle

목록 보기
6/7
post-thumbnail

드디어 준비가 끝났습니다.
다른 변수들로 생존 여부를 예측할 수 있는 모델을 만드려고 합니다.
우리가 구하고자 하는 문제는 분류 및 회귀 문제이고, 지도학습입니다. 여기에는
Logistic Regression
KNN or k-Nearest Neighbors
Support Vector Machines
Naive Bayes classifier
Decision Tree
Random Forrest
Perceptron
Artificial neural network
RVM or Relevance Vector Machine
등이 있습니다.

X_train = train_df.drop("Survived", axis=1)
Y_train = train_df["Survived"]
X_test  = test_df.drop("PassengerId", axis=1).copy()

X_train이 입력되었을 때의 결과값으로 Y_train을 줍니다. 그러기 위해서 train_df에서 생존여부를 떼어내고 그것은 Y_train이 됩니다.
test dataset은 test_df에서 PassengerID(영향 없음)을 떼어낸 것이 됩니다.

# machine learning
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier

머신러닝 수행을 위한 별의별 걸 import해줍니다.
위에서 말한 여러 학습 방법들을 위한 라이브러리들입니다.
우리는 우선 logistic regression을 사용할 것입니다.

# Logistic Regression

logreg = LogisticRegression()
logreg.fit(X_train, Y_train)
Y_pred = logreg.predict(X_test)
acc_log = round(logreg.score(X_train, Y_train) * 100, 2)
acc_log

train data를 logistic regression에 fit해줍니다. 이렇게 생긴 모델에 X_test를 넣어 예측된 결과값은 Y_pred에 넣어줍니다.
acc_log의 값은 80.36이 나왔습니다.
이제 acc_log의 값을 높여나갈것입니다.
어떤 variable이 결과와 가장 상관관계가 있는지 알아보기 위해서 decision function을 계산합니다.

coeff_df = pd.DataFrame(train_df.columns.delete(0))
coeff_df.columns = ['Feature']
coeff_df["Correlation"] = pd.Series(logreg.coef_[0])

coeff_df.sort_values(by='Correlation', ascending=False)

Correlation이 Sex에서 절댓값이 가장 큰 양수값이 나옵니다. 즉, 성별값이 증가할수록(여성 0, 남성 1) 생존 확률이 증가합니다.
Pclass에서 절댓값이 가장 큰 음수값이 나옵니다. Pclass가 증가할수록 생존 확률이 감소합니다.
Age * Class 값이 두 번째로 큰 음의 상관관계를 가지므로 모델링하기 좋습니다.
Title 또한 두 번째로 큰 양의 상관관계를 가집니다.

(참고: https://www.kaggle.com/startupsci/titanic-data-science-solutions)

profile
데이터 사이언티스트를 꿈꾸는 감자

0개의 댓글