from sklearn.tree import DecisionTreeClassifier
import pandas as pd
import numpy as np

feature_list = ['Pclass', 'Sex', 'Age', 'SibSp', 'Fare', 'Embarked']
target_name = ['Survived']

train = pd.read_csv('../input/train.csv')
test = pd.read_csv('../input/test.csv')

train.Embarked.fillna(train.Embarked.value_counts().index[0], inplace=True)
train.dropna(subset=['Age'], inplace=True)
train.Embarked.replace(to_replace=['S', 'C', 'Q'], value=[0, 1, 2], inplace=True)
train.Sex.replace(to_replace=['female', 'male'], value=[0, 1], inplace=True)

clf = DecisionTreeClassifier()

data = train[feature_list][:-20]
output = train[target_name][:-20]
test_validate = train[target_name][-20:]

clf = clf.fit(data[feature_list], output[target_name])

test_data = train[feature_list][-20:]

predicted_val = clf.predict(test_data[feature_list])
original_val = np.array(test_validate[target_name]).transpose()[0]

counter = 0
for i in range(len(predicted_val)):
    if predicted_val[i] == original_val[i]:
        counter += 1 

print('Around ', counter/float(len(predicted_val)) * 100, '% accurate')