직무적성검사
인적성 수리 문제
명령어를 통해 데이터셋을 불러옵니다.
import numpy as np
import pandas as pd
titanic = pd.read_csv('저장한 csv파일 경로/train.csv')
데이터가 제대로 들어왔는지 확인합니다.
컬럼 즉 독릭변수(feature)이 많아지면 모델이 복잡해지고 overfitting이 발생할 우려가 있습니다.
각 컬럼을 확인해보겠습니다.
‘PassengerId’, ‘Name’, ‘Ticket’, ‘Fare’, ‘Cabin’은 종속변수인 생존여부에 영향을 미치지않는다고 간주하여 제거하도록 하겠습니다.
titanic.drop(['PassengerId', 'Name', 'Ticket', 'Fare', 'Cabin'], axis=1, inplace=True)
잘 제거되었는지 확인합니다.
결과적으로 하나의 확률값으로 나와야하기 때문에 데이터셋의 모든 문자를 숫자로 변경해주어야합니다.
먼저 Sex(성별)에서 Male을 0으로 Female을 1로 변경하겠습니다.
Male이 1이고 Female이 0이어도 상관없습니다.
gender_dict = {'male': 0, 'female': 1}
titanic['Sex'] = titanic['Sex'].map(gender_dict)
잘 제거되었는지 확인합니다.
titanic['Embarked'] = titanic['Embarked'].fillna('Q')
titanic['Age'] = titanic['Age'].fillna(titanic['Age'].mean())
나이의 range가 너무 크다. 구간(Binning) 처리를 합니다.
x_data = titanic.drop('Survived', axis=1, inplace=False).values
t_data = titanic['Survived'].values.reshape(-1, 1)
training data와 test data로 분리해야 합니다. training data는 다시 training과 validation용으로 나누어줍니다. validation 데이터를 나눠서 중간평가 하는 것은 Keras가 대신 해줍니다. 따라서 특별한 경우가 아니라면 validation data는 Keras를 이용해서 처리하면 됩니다.
Leave a comment