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

开始前的准备工作

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


  1. #导入所需库文件 
  2.  
  3. import numpy as np 
  4.  
  5. import pandas as pd 
  6.  
  7. from sklearn.feature_extraction import DictVectorizer 
  8.  
  9. from sklearn import cross_validation 
  10.  
  11. from sklearn import tree 
  12.  
  13. import graphviz  

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


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

特征处理

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


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

划分训练集和测试集数据


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

训练模型并进行预测

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


  1. #训练模型 
  2.  
  3. clf = tree.DecisionTreeClassifier(max_depth=5) 
  4.  
  5. clf=clf.fit(X_train,y_train) 
  6.  
  7. clf.score(X_test,y_test) 
  8.  
  9. 0.85444078947368418  

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


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

查看具体的分类概率值。


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

决策树分类预测可视化

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


  1. #获取分类名称 
  2.  
  3. clf.classes_ 
  4.  
  5. array(['Charged Off', 'Fully Paid'], dtype=object)  

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


  1. #决策树可视化 
  2.  
  3. dot_data = tree.export_graphviz(clf, out_file=None, 
  4.  
  5. feature_names=vec.get_feature_names(), 
  6.  
  7. class_names=clf.classes_, 
  8.  
  9. filled=True, rounded=True, 
  10.  
  11. special_characters=True) 
  12.  
  13. graph = graphviz.Source(dot_data) 
  14.  
  15. graph 

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


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

本文作者:王彦平

来源:51CTO

时间: 2024-11-05 12:28:40

决策树分类预测过程可视化的相关文章

数据挖掘系列(6)决策树分类算法

从这篇开始,我将介绍分类问题,主要介绍决策树算法.朴素贝叶斯.支持向量机.BP神经网络. 懒惰学习算法.随机森林与自适应增强算法.分类模型选择和结果评价.总共7篇,欢迎关注和交流. 这篇先介绍分类问题的一些基本知识,然后主要讲述决策树算法的原理.实现,最后利用决策树算 法做一个泰坦尼克号船员生存预测应用. 一.分类基本介绍 物以类聚,人以群分,分类问题只古以来就出现我们的生活中.分类是数据挖掘中一个重要的分支 ,在各方面都有着广泛的应用,如医学疾病判别.垃圾邮件过滤.垃圾短信拦截.客户分析等等.

操作系统-用c++结合图形学的方法将LRU,SCR,CLOCK算法替换过程可视化

问题描述 用c++结合图形学的方法将LRU,SCR,CLOCK算法替换过程可视化 几个算法倒是挺好实现的,图形学不熟,可用函数好像都是在指定位置画什么或者写什么,将数组转化成字符串,一下子整个儿都输在屏幕上了,就是在可视化过程当中,不知道怎样一个一个的比较数据,再显示在屏幕上或者从屏幕删除,就是让数字都动起来,而不是一下子就固定了的意思 解决方案 http://wenku.baidu.com/link?url=czRAb5jLITyu2wcPEEaS1og7iysGymEsIZbmh7KJ17r

使用R完成决策树分类

关于决策树理论方面的介绍,李航的<统计机器学习>第五章有很好的讲解. 传统的ID3和C4.5一般用于分类问题,其中ID3使用信息增益进行特征选择,即递归的选择分类能力最强的特征对数据进行分割,C4.5唯一不同的是使用信息增益比进行特征选择. 特征A对训练数据D的信息增益g(D, A) = 集合D的经验熵H(D) – 特征A给定情况下D的经验条件熵H(D|A) 特征A对训练数据D的信息增益比r(D, A) = g(D, A) / H(D) 而CART(分类与回归)模型既可以用于分类.也可以用于回

图片-ENVI进行决策树分类时数据源指定无法完成

问题描述 ENVI进行决策树分类时数据源指定无法完成

ID3决策树与C4.5决策树分类算法简述

Let's begin with ID3 decision tree: The ID3 algorithm tries to get the most information gain when grow the decision trees. The information gain is defined as Gain(A)=I(s1,s2,-,sm)−E(A) where I is the information entropy of a given sample setting, I(s

求C4.5决策树分类算法的代码

问题描述 哪里有比较完善的,最好是java的代码 解决方案

当航线、就业、保险的数据分析过程遇上可视化

摘要:数据分析在多数人看来是个与数据打交道的枯燥过程,但是,当它遇到可视化的时候,这些数字也能迸发出艺术感和色彩.分析过程可视化图在数据分析中具有广泛的应用.   本文将展示Teradata利用Teradata Aster对不同行业数据分析过程的可视化图,你可能无法想象,航线数据分析可以变换成绚烂的星云.保险索赔和欺诈保险索赔之间的联系在可视化图表中变成了花丛一般的"秘密花园".而中国大型企业之间的资金流动量的关系则幻化成了一团烟花. ◆ ◆ ◆ 航线星云 l 关于洞察 图中世界上不同

分类算法之决策树(Decision tree)

3.1.摘要       在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法.这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率推断.在这一篇文章中,将讨论另一种被广泛使用的分类算法--决策树(decision tree).相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用. 3.2.决策树引导       通俗来说,决策树分类的思想类似于找对象.现想象一个女孩的母亲要给这个女孩介绍男朋友,

【Python数据挖掘课程】四.决策树DTC数据分析及鸢尾数据集分析

        今天主要讲述的内容是关于决策树的知识,主要包括以下内容:         1.分类及决策树算法介绍         2.鸢尾花卉数据集介绍         3.决策树实现鸢尾数据集分析         前文推荐:       [Python数据挖掘课程]一.安装Python及爬虫入门介绍       [Python数据挖掘课程]二.Kmeans聚类数据分析及Anaconda介绍        [Python数据挖掘课程]三.Kmeans聚类代码实现.作业及优化        希望