全文下载链接:http://tecdat.cn/?p=23848
最近咱们被客户要求撰写对于决策树的钻研报告,包含一些图形和统计输入。
在本文中,决策树是对例子进行分类的一种简略示意。它是一种有监督的机器学习技术,数据依据某个参数被间断宰割。决策树剖析能够帮忙解决分类和回归问题
决策树算法将数据集分解成更小的子集;同时,相干的决策树也在逐渐倒退。决策树由节点(测试某个属性的值)、边 / 分支(对应于测试的后果并连贯到下一个节点或叶子)和叶子节点(预测后果的终端节点)组成,使其成为一个残缺的构造。
”
扩大:GBDT (Gradient Boosting Decision Tree) 梯度晋升决策树
GBDT (Gradient Boosting Decision Tree) 梯度晋升决策树。DT-Decision Tree 决策树,GB 是 Gradient Boosting,是一种学习策略,GBDT 的含意就是用 Gradient Boosting 的策略训练进去的 DT 模型。
**
拓端
,赞 16
在这篇文章中,咱们将学习 Python 中决策树的实现,应用 scikit learn 包。
对于咱们的剖析,咱们抉择了一个十分相干和独特的数据集,该数据集实用于医学迷信畛域,它将有助于预测病人是否患有糖尿病 ( 查看文末理解数据收费获取形式 ),基于数据集中采集的变量。这些信息来自国家糖尿病、消化道和肾脏疾病研究所,包含预测变量,如病人的 BMI、怀孕状况、胰岛素程度、年龄等。让咱们间接用决策树算法来解决这个问题,进行分类。
用 Python 实现决策树
对于任何数据分析问题,咱们首先要清理数据集,删除数据中的所有空值和缺失值。在这种状况下,咱们不是在处理错误的数据,这使咱们省去了这一步。
- 为咱们的决策树剖析导入所需的库并拉入所需的数据
# 加载库
from sklearn.model_selection import train_test_split #导入 train_test_split 函数
from sklearn import metrics #导入 scikit-learn 模块以计算准确率
# 载入数据集
data = pd.read_csv("diabs.csv", header=None, names=col_names)
让咱们看看这个数据集的前几行是什么样子的
pima.head()
- 在加载数据后,咱们理解构造和变量,确定指标变量和特色变量(别离为因变量和自变量)。
# 在特色和指标变量中拆分数据集
X = pima[feature] # 特色
y = pima.label # 指标变量
- 咱们把数据按 70:30 的比例分成训练集和测试集。
# 将数据集分成训练集和测试集
train_test_split(X, y, test_size=0.3, random_state=1) # 70% 的训练和 30% 的测试
规范做法,你能够依据须要调整 70:30 至 80:20。
点击题目查阅往期内容
R 语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
左右滑动查看更多
01
02
03
04
- 应用 scikit learn 进行决策树剖析
# 创立决策树分类器对象
clf = DecisionTreeClassifier()
- 预计分类器预测后果的精确水平。准确度是通过比拟理论测试集值和预测值来计算的。
# 模型准确率,分类器正确的概率是多少?print("准确率:",metrics.accuracy_score(y_test, y_pred))
咱们的决策树算法有 67.53% 的准确性。这么高的数值通常被认为是好的模型。
- 当初咱们曾经创立了一棵决策树,看看它在可视化的时候是什么样子的
决策树的可视化。
Image(graph.create_png())
Python 输入
你会留神到,在这个决策树图中,每个外部节点都有一个宰割数据的决策规定。
掂量通过决策树剖析创立的节点的不纯度
Gini 指的是 Gini 比,掂量决策树中节点的不纯度。人们能够认为,当一个节点的所有记录都属于同一类别时,该节点是纯的。这样的节点被称为叶子节点。
在咱们下面的后果中,因为后果的复杂性,残缺的决策树很难解释。修剪一棵树对于后果的了解和优化它是至关重要的。这种优化能够通过以下三种形式之一进行。
- 规范:默认 =”gini”
- splitter:字符串,可选(默认 =”best”)或宰割策略。抉择宰割策略。能够抉择 “best” 来抉择最佳宰割,或者抉择 “random” 来抉择最佳随机宰割。
- max_depth: int 或 None,可选(默认 =None)或树的最大深度
这个参数决定了树的最大深度。这个变量的数值越高,就会导致适度拟合,数值越低,就会导致拟合有余。
在咱们的案例中,咱们将扭转树的最大深度作为预修剪的控制变量。让咱们试试 max_depth=3。
# 创立决策树分类器对象
DecisionTree(max_depth=3)
在 Pre-pruning 上,决策树算法的准确率进步到 77.05%,显著优于之前的模型。
决策树在 Python 中的实现
Image(graph.create_png())
后果:
Python 输入
这个修剪过的模型的后果看起来很容易解释。有了这个,咱们就可能对数据进行分类,并预测一个人是否患有糖尿病。然而,决策树并不是你能够用来提取这些信息的惟一技术,你还能够摸索其余各种办法。
如果你想学习和实现这些算法,那么你应该摸索通过辅助办法学习,并失去专业人士的 1 对 1 领导。拓端数据迷信职业轨道打算保障了 1:1 的领导,我的项目驱动的办法,职业辅导,提供实习工作我的项目保障,来帮忙你将职业生涯转变为数据驱动和决策的角色。请分割咱们以理解更多信息!
数据获取
在上面公众号后盾回复“糖尿病 数据”,可收费获取残缺数据。
本文摘选 《 PYTHON 用决策树分类预测糖尿病和可视化实例 》,点击“ 浏览原文”获取全文完代码和数据资料。
点击题目查阅往期内容
样条曲线、决策树、Adaboost、梯度晋升 (GBM) 算法进行回归、分类和动静可视化
SAS 分类决策树预测贷款申请评分剪枝和后果可视化
分类回归决策树交互式修剪和更好看地可视化剖析细胞图像宰割数据集
PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯和 KMEANS 聚类用户画像
PYTHON 集成机器学习:用 ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜寻超参数优化
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
PYTHON 集成机器学习:用 ADABOOST、决策树、逻辑回归集成模型分类和回归和网格搜寻超参数优化
R 语言集成模型:晋升树 boosting、随机森林、束缚最小二乘法加权均匀模型交融剖析工夫序列数据
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
R 语言用主成分 PCA、逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
R 语言基于树的办法:决策树,随机森林,Bagging,加强树
R 语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
spss modeler 用决策树神经网络预测 ST 的股票
R 语言中应用线性模型、回归决策树主动组合特色因子程度
R 语言中自编基尼系数的 CART 回归决策树的实现
R 语言用 rle,svm 和 rpart 决策树进行工夫序列预测
python 在 Scikit-learn 中用决策树和随机森林预测 NBA 获胜者
python 中应用 scikit-learn 和 pandas 决策树进行 iris 鸢尾花数据分类建模和穿插验证
R 语言里的非线性模型:多项式回归、部分样条、平滑样条、狭义相加模型 GAM 剖析
R 语言用规范最小二乘 OLS,狭义相加模型 GAM,样条函数进行逻辑回归 LOGISTIC 分类
R 语言 ISLR 工资数据进行多项式回归和样条回归剖析
R 语言中的多项式回归、部分回归、核平滑和平滑样条回归模型
R 语言用泊松 Poisson 回归、GAM 样条曲线模型预测骑自行车者的数量
R 语言分位数回归、GAM 样条曲线、指数平滑和 SARIMA 对电力负荷工夫序列预测 R 语言样条曲线、决策树、Adaboost、梯度晋升 (GBM) 算法进行回归、分类和动静可视化
如何用 R 语言在机器学习中建设集成模型?
R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测在 python 深度学习 Keras 中计算神经网络集成模型 R 语言 ARIMA 集成模型预测工夫序列剖析 R 语言基于 Bagging 分类的逻辑回归 (Logistic Regression)、决策树、森林剖析心脏病患者
R 语言基于树的办法:决策树,随机森林,Bagging,加强树
R 语言基于 Bootstrap 的线性回归预测置信区间预计办法
R 语言应用 bootstrap 和增量法计算狭义线性模型(GLM)预测置信区间
R 语言样条曲线、决策树、Adaboost、梯度晋升(GBM) 算法进行回归、分类和动静可视化
Python 对商店数据进行 lstm 和 xgboost 销售量工夫序列建模预测剖析
R 语言随机森林 RandomForest、逻辑回归 Logisitc 预测心脏病数据和可视化剖析
R 语言用主成分 PCA、逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
Matlab 建设 SVM,KNN 和奢侈贝叶斯模型分类绘制 ROC 曲线
matlab 应用分位数随机森林(QRF)回归树检测异样值