df=pd.read_csv('Titanic.csv')
#泰坦尼克号成活率分析和预测
def Titanic_pre():
#准备数据
df=pd.read_csv('Titanic.csv')
#选取操作字段
df1=df[['Pclass','Sex','Age','SibSp','Parch','Fare','Embarked']]
#补充NAN
df2=df1.fillna(np.round(df['Age'].mean(),2))
#准备训练数据和目标数据
dict_train=df2.to_dict(orient='record')
dict_target=pd.DataFrame(df['Survived'],columns=['Survived']).to_dict(orient='record')
dv_train=DictVectorizer(sparse=False)
#标准化训练集
x_data=dv_train.fit_transform(dict_train)
print(x_data[:1,:])
dv_target=DictVectorizer(sparse=False)
#标准化目标集
y_target=dv_target.fit_transform(dict_target)
#分配训练集和测试集
x_train,x_test,y_train,y_test=train_test_split(x_data,y_target,test_size=0.25)
#创建决策树对象
d_tree=DecisionTreeClassifier()
#开始学习
d_tree.fit(x_train,y_train)
#准备预测数据
data_predict={
'Pclass':1,
'Sex':'female',
'Age':65,
'SibSp':1,
'Parch':1,
'Fare':51.86,
'Embarked':'C'
}
#预测数据标准化,要使用训练数据字典化的对象来标准化
x_data2=dv_train.transform(data_predict)
print(x_data2)
# return x_data2
#用目标数据字典化对象对预测结果反标准化inver_transform()函数
print(dv_target.inverse_transform(d_tree.predict(x_data2).reshape(-1,1)))
Titanic_pre()
上述代码是利用决策树的方法对泰坦尼克号进行生存分析,这里只是采用了其中的几个字段,然后创建一个实例化对象进行预测,并返回预测结果。