没有合适的资源?快使用搜索试试~ 我知道了~
首页数据挖掘 | [有监督学习——分类] 决策树基本知识及python代码实现——利用sklearn
利用决策树进行分类,使用了sklearn包。 决策树分类及sklearn实现决策树的定义决策树的组成信息增益python代码实现决策树可视化一些参考 相关文章: 数据挖掘 | [关联规则] 利用apyori库的关联规则python代码实现 数据挖掘 | [有监督学习——分类] 朴素贝叶斯及python代码实现——利用sklearn 数据挖掘 | [无监督学习——聚类] K-means聚类及python代码实现——利用sklearn 数据挖掘 | [无监督学习——聚类] 凝聚层次聚类及python代码实现——利用sklearn 决策树的定义 决策树,又称判定树,是一种类似于流程图的树结构,它提
资源详情
资源评论
资源推荐
数据挖掘数据挖掘 | [有监督学习有监督学习——分类分类] 决策树基本知识及决策树基本知识及python代码实现代码实现——利用利用sklearn
利用决策树进行分类,使用了sklearn包。
决策树分类及决策树分类及sklearn实现实现决策树的定义决策树的组成信息增益python代码实现决策树可视化一些参考
相关文章:
数据挖掘 | [关联规则] 利用apyori库的关联规则python代码实现
数据挖掘 | [有监督学习——分类] 朴素贝叶斯及python代码实现——利用sklearn
数据挖掘 | [无监督学习——聚类] K-means聚类及python代码实现——利用sklearn
数据挖掘 | [无监督学习——聚类] 凝聚层次聚类及python代码实现——利用sklearn
决策树的定义决策树的定义
决策树,又称判定树,是一种类似于流程图的树结构,它提供了一种展示“在什么条件下得到什么值”这类规则的方法。决策树分类有以下几个环节:
构造决策树
对决策树剪枝
由决策树生成分类规则
决策树的组成决策树的组成
决策树的基本组成:决策节点、分支和叶。
树中每个内部节点表示一个属性上的测试,每个叶节点代表一个类。
树中最上面的节点称为根节点。
根据每个节点的分支可以分为二叉树和多叉树。
信息增益信息增益
在树的每个节点使用信息增益度量来选择测试属性。选择最大信息增益,目的是使得对结果划分中的样本分类所需的信息量最小,并确保能找到一颗简单(但不必是最简单)的树。
算法计算每个属性的信息增益。具有最高信息增益的属性选作为给定集合S的测试属性。根据这个测试属性,创建一个节点,并以该属性标记,对属性的每一个值创建分支,并以此
划分样本。
python代码实现代码实现
import numpy as np # 快速操作结构数组的工具
import pandas as pd # 数据分析处理工具
from sklearn.preprocessing import LabelEncoder #将字符串转化为数字
from sklearn import tree #决策树
from sklearn.model_selection import train_test_split #训练集测试集分割函数
data_pd=pd.read_csv('csv数据路径',sep=',') #导入数据
#删除包含缺失值的个案
print("删除缺失值前个案数:",len(data_pd))
c=data_pd.columns.values.tolist() #获取df的列名
#此数据中缺失值被标记为“?”
for i in c:
data_pd=data_pd[~data_pd[i].isin(['?'])] print("删除缺失值后个案数:",len(data_pd))
data_arr=np.array(data_pd) #将dataframe转换成array
#生成属性数据集和分类结果数据集
dataMat = np.mat(data_arr)
arrMat = dataMat[:,0:9] #此数据集前9个为属性,最后一个为分类结果
resultMat = dataMat[:,9]
# 以下代码参考了:https://blog.csdn.net/luanpeng825485697/article/details/78965390
# 构造数据集成pandas结构
attr_names = ['age','menopause','tumor-size','inv-nodes','node-caps',
'deg-malig','breast','breast-quad','irradiat'] #特征属性的名称
attr_pd = pd.DataFrame(data=arrMat,columns=attr_names) #每行为一个对象,每列为一种属性,最后一个为结果值
#print(attr_pd)
#将数据集中的字符串转化为代表类别的数字。因为sklearn的决策树只识别数字
le = LabelEncoder()
#为每一列序列化,就是将每种字符串转化为对应的数字。用数字代表类别
for col in attr_pd.columns:
attr_pd[col] = le.fit_transform(attr_pd[col])
#print(attr_pd)
attr_arr=np.array(attr_pd)
#此处数据类型的转换是为了最后结果输出的时候可以正常调用.sum()方法
#.A 将numpy中的matrix(矩阵)数据类型转换为numpy中的array(数组)数据类型
result_arr=resultMat.A
#将numpy中的array(数组)数据类型转换为list(列表类型)
result_list=[] for i in result_arr:
for j in i:
result_list.append(j)
#拆分训练集和测试集
Xtrain,Xtest,Ytrain,Ytest=train_test_split(attr_arr,result_list,test_size=0.2,random_state=420)
#以下参考了:https://blog.csdn.net/huangguohui_123/article/details/105522595
# 构建决策树
clf = tree.DecisionTreeClassifier() #实例化
clf.fit(Xtrain,Ytrain) #训练
print(clf)
#返回预测的准确度
score=clf.score(Xtest,Ytest)
print("模型准确度:",score)
print("Number of mislabeled points out of a total %d points : %d"
% (Xtest.shape[0], (Ytest != predict).sum()))
#查看特征的重要性
print("特征重要程度:",[*zip(attr_name,clf.feature_importances_)])
#注意zip和range一样,是一个惰性对象,需要对其进行展开。
以下是代码输出结果:
删除缺失值前个案数: 286
weixin_38536716
- 粉丝: 10
- 资源: 921
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
- MW全能培训汽轮机调节保安系统PPT教学课件.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0