본문 바로가기

인공지능/캐글 kaggle

Kaggle Competition - Getting Start! Datasets - titanic (3)

반응형

예측에 사용할 특성?

  • 승객 아이디 : 관련 없을 것 같음.
  • 생존 여부 -> target으로 사용
  • Pclass 특성 -> 필요 해 보임
  • 이름 -> 관련 없을 것 같음.
  • Sex -> 성별 연관성이 있을까?
  • Age -> 나이도 있을 것 같음
  • Sibsp or Parch -> 형제, 부모 여부?
  • Ticket 번호 -> 필요없어 보임
  • Fare 요금 -> 요금 더 내면 뭐가 있나?
  • Cabin 필요없어 보임
  • Embarked 승선 장소 -> 필요 없을까?

데이터 변환 ( 문자 -> 수 )

  • embarked -> (0, 1, 2)
  • sex -> (0, 1)
for i in range(len(sex)):
    if sex[i] == 'male':
        sex[i] = 0
    else:
        sex[i] = 1

for i in range(len(embarked)):
    if embarked[i] == 'S':
        embarked[i] = 0
    elif embarked[i] == 'C':
        embarked[i] = 1
    else:
        embarked[i] = 2

data = {
    'survived' : survived,
    'pclass' : pclass,
    'sex' : sex,
    'age' : age,
    'sibsp' : sibsp,
    'embarked' : embarked,
    'parch' : parch
}

data = pd.DataFrame(data)

# 8:2 훈련 데이터, 테스트 데이터 나누기

train_index = int(len(data) * 0.8)
test_index = int(len(data) * 0.2)

train_data = data[:train_index]
test_data = data[train_index:]
y_train = train_data['survived']
y_test = test_data['survived']

x_train = train_data.drop(['survived'], axis=1)
x_test = test_data.drop(['survived'], axis=1)

스케일링 작업


from sklearn.preprocessing import StandardScaler

std = StandardScaler()
std.fit(x_train)
x_train_scaled = std.transform(x_train)
x_test_scaled = std.transform(x_test)

모델 작업


from sklearn.tree import DecisionTreeClassifier

dtc = DecisionTreeClassifier()
dtc.fit(x_train, y_train)

from sklearn.metrics import accuracy_score

prediction = dtc.predict(x_test)


print('예측 정확도 : {0:.2f}'.format(accuracy_score(y_test, prediction)))
반응형