你好,游客 登录
背景:
阅读新闻

决策树分类预测过程可视化

[日期:2017-09-11] 来源:36大数据  作者: [字体: ]

作者: 王彦平

开始前的准备工作

首先导入所需库文件,numpy,pandas用于数值处理,DictVectorizer用于特征处理,graphviz用于模型可视化。

#导入所需库文件import numpy as npimport pandas as pdfrom sklearn.feature_extraction import DictVectorizerfrom sklearn import cross_validationfrom sklearn import treeimport graphviz

导入所需的数据文件,用于训练和评估模型表现。

#导入数据表test=pd.DataFrame(pd.read_csv('TEST_ML_v2.csv',header=0,encoding='GBK'))

特征处理

第二步,对特征进行处理。

#特征处理X_df=test[['City', 'Item category', 'Period', 'Gender', 'Age', 'Market channels', 'Self-agent', 'Category', 'Loan channels']]X_list=X_df.to_dict(orient="records")vec = DictVectorizer()X=vec.fit_transform(X_list)Y=np.array(test['Status'])划分训练集和测试集数据。

划分训练集和测试集数据

X_train,X_test,y_train,y_test=cross_validation.train_test_split(X.toarray(),Y,test_size=0.4,random_state=0)

训练模型并进行预测

使用训练集数据对决策树模型进行训练,使用测试集数据评估模型表现。

#训练模型clf = tree.DecisionTreeClassifier(max_depth=5)clf=clf.fit(X_train,y_train)
clf.score(X_test,y_test)0.85444078947368418

简单对测试集的第一组特征进行预测,结果与实际值相符。

#对测试集数据进行预测clf.predict(X_test[0]),y_test[0](array(['Charged Off'], dtype=object), 'Charged Off')

查看具体的分类概率值。

#查看分类概率clf.predict_proba(X_test[0])array([[ 1., 0.]])

决策树分类预测可视化

第三步,对决策树的分类预测过程进行可视化,首先查看分类结果及特征的名称。

#获取分类名称clf.classes_array(['Charged Off', 'Fully Paid'], dtype=object)

对决策树进行可视化,feature_names为特征名称,class_names为分类结果名称。

#决策树可视化dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=vec.get_feature_names(),
class_names=clf.classes_,
filled=True, rounded=True,
special_characters=True) graph = graphviz.Source(dot_data) graph

将分类结果保存为PDF格式文档。

#导出PDF文档graph.render("test_e1")

收藏 推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款