丰城住房和城乡建设部网站公司网站手机版模板

张小明 2026/1/9 9:07:57
丰城住房和城乡建设部网站,公司网站手机版模板,做网站上传信息软件,wordpress dux1.2一、决策树概念#xff1a;决策树通过对训练样本的学习#xff0c;并建立分类规则#xff0c;然后依据分类规则对新样本数据进行分类预测#xff0c;属于有监督学习。核心#xff1a;所有数据从根节点一步一步落到叶子节点什么是有监督学习#xff0c;也就是是否有y…一、决策树概念决策树通过对训练样本的学习并建立分类规则然后依据分类规则对新样本数据进行分类预测属于有监督学习。核心所有数据从根节点一步一步落到叶子节点什么是有监督学习也就是是否有y标签结果在上文学习逻辑回归的时候我们会设置x和y其中x为特征y是结果标签有监督学习就是有y参与计算线性回归和逻辑回归都用参加了计算。无监督学习自然就是不需要y参与计算就做出分类。自然无监督学习的模型准确率都比较低。一般y结果标签都是人为标记的当没有标记的时候会用到无监督学习实际问题中监督学习和无监督学习都是一起使用的。1.决策树结构根节点:第一个节点非叶子节点中间节点叶子节点最终结果节点2.如何构造决策树根节点的选择中间节点的选择叶子节点的选择节点如何分裂分裂标准的依据决策树分类标准有三种ID3算法C4.5算法CART决策树二、ID3衡量标准熵值表示随机变量不确定性的度量或者说是物体内部的混乱程度熵值计算公式这里p是概率然后累加举一个例子这里肉眼也是能看出B集合比较混乱算法详细解释下面是一个数据前四列为特征后一列为标签天气温度湿度风是否出去玩对该数据我们要构造一个决策树选择根节点中间节点叶子节点及其分裂就要用到计算混乱程度混乱程度越低说明情况越简单可以作为根节点1计算出标签也就是play的熵值0.9402每一个特征的情况情况次数每次对应的标签值然后计算出熵求信息增益信息增益标签熵减去特征总熵这里计算的outlook的信息增益就是outlook这个特征对结果的决策量衡量这个特征是否重要对结果影响有多大。越大说明对结果影响大越适合做根节点。其他特征也是这样温度0.940-0.9110.029湿度0.940-0.7890.151风 : 0.940-0.8920.0480.247(outlook)0.151(humidity)0.048(windy)0.029(temperature)比较信息增益outlook最大作为根节点目前我们的决策树为中间节点还不确定注意这里我们不是求出各特征的信息增益后就按照从大到小安排当节点就比如这里sunny和rainy后写什么特征这里依旧是需要重新进行计算过程和原理与上面一样3找出对应情况的数据作为新表格算信息增益这里把sunny和rainy的数据找出把阴影部分当作新表以sunny中temperature为例上面是temperature的总熵这里我们还需要注意一点就是标签熵是多少不要用之前总表算出的标签熵我们把黑色部分组成新表所以标签熵也要重新算这里计算得出0.971依次算出其他特征最后sunny处是temperature其他不做计算三、C4.5算法解决稀疏向量的问题例如编号意思就是C4.5算法是在ID3算法基础上也是要算信息增益但是C4.5算法要除以一个自身熵值得到信息增益比计算信息增益的时候我们求出的特征总熵是条件熵这里我们要除以的自身熵值是特征原始熵是不一样的。也就是说不需要考虑标签值只把该特征的值进行计算和本文一开始拿集合A和集合B举例那样计算。outlook信息增益为0.247自身熵1.577信息增益率0.247/1.5770.1566四、基尼指数以下是贷款情况数据计算基尼系数公式现在在数据表下特征年龄下这里知道大致计算流程就可以五、代码构建决策树1.构建和参数介绍参数1默认情况下是基尼系数参数2最优还是随机选择特征做根节点默认情况下是best参数3特征数量很大才会启用参数4也就是树的层数用来限制层数这些参数不是很重要了解就行2。决策树剪枝防止过拟合剪枝分为两种预剪枝和后剪枝特征中经过计算没有合适的需要一直进行判断导致决策树层数很多说白了不是分类了到最后几乎每一条数据就是一类了然后我们输入数据进行分类根本没有合适的类别给这个数据这个就是过拟合之前学习逻辑回归时也说过过拟合就是模型分的过于细而导致的。对于决策树我们就会限制它的层数这样就不会出现到最后几乎很少的数据甚至一条数据是一个类别。剪掉多余的层数该层数下的数据就会归为一类。预剪枝就是边建立决策树边剪。后剪枝就是等决策树建好后再进行剪枝虽然准确率高但是很慢所以一般选择预剪枝。3.电信客户流失数据决策树实现分类数据代码import numpy as np import pandas as pd def cm_plot(y, yp):#混淆矩阵绘制 from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt cm confusion_matrix(y, yp) plt.matshow(cm, cmapplt.cm.Blues) plt.colorbar() for x in range(len(cm)): for y in range(len(cm)): plt.annotate(cm[x, y], xy(y, x), horizontalalignmentcenter, verticalalignment center) plt.ylabel(True label) plt.xlabel(Predicted label) return plt #导入数据 alldatapd.read_excel(D:\learn\代码所用文本\电信客户流失数据.xlsx) dataalldata.iloc[:,:-1] resultalldata.iloc[:,-1] #划分数据 from sklearn.model_selection import train_test_split data_train,data_test,result_train,result_testtrain_test_split(data,result, test_size0.2,random_state40) from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import cross_val_score #选出最优层数 scores[] depths[4,5,6,7,8,9,10] for i in depths: treeDecisionTreeClassifier(criteriongini,max_depthi,random_state44) scorecross_val_score(tree,data,result,cv5,scoringrecall) score_nusum(score)/len(score) scores.append(score_nu) print(score_nu) best_depthsdepths[np.argmax(scores)] print(最优depth{}.format(best_depths)) #建立模型 treeDecisionTreeClassifier(criteriongini,max_depthbest_depths,random_state44) tree.fit(data_train,result_train) #自测和预测并画出混淆矩阵 from sklearn import metrics train_pretree.predict(data_train) print(metrics.classification_report(result_train,train_pre)) cm_plot(result_train,train_pre).show() test_pretree.predict(data_test) print(metrics.classification_report(result_test,test_pre)) cm_plot(result_test,test_pre).show() tree.score(data_test,result_test) #绘制决策树 import matplotlib.pyplot as plt from sklearn.tree import plot_tree fig,axplt.subplots(figsize(32,32)) plot_tree(tree,filledTrue,axax) plt.show()结果六、决策树之回归树模型了解1.什么是回归树解决回归问题的决策树模型特点是必须是二叉树例子现在又一组数据对其进行构造回归树,过程上面例子是只有一个变量x如果是多个变量如下这里是x1进行了顺序排序算出x1和y之间的最优切分点然后对x2进行排序注意这里的上下值也要跟着移动然后算出x2与y之间的最优切分点比较x1和x2的最优切分点谁的损失小谁当根节点2.参数和模型定义回归树指标不高仅作了解就行七、AUC性能测量召回率为1是最好的在纵轴上找到1画平行于横轴的一条直线FPR值为多少都无伤大雅也找到1画垂直于横轴的直线这样两条直线和坐标轴形成的正方形面积为1是理想召回率阴影部分就是我们模型的指标如果阴影部分越大越接近一说名指标越高在上述代码处最后加上,就能绘制AUC-ROC曲线了import matplotlib.pyplot as plt from sklearn.metrics import roc_curve y_pred_probatree.predict_proba(data_test) ay_pred_proba[:,1] auc_resultmetrics.roc_auc_score(result_test,a) fpr,tpr,thresholds roc_curve(result_test,a) plt.figure() plt.plot(fpr,tpr,colorgreen,lw2,labelROC curve(area%0.2f)% auc_result) plt.plot([0,1],[0,1],colorblack,lw2,linestyle--) plt.xlim([0.0,1.0]) plt.ylim([0.0,1.0]) plt.xlabel(FPR) plt.ylabel(TPR) plt.title(ROC) plt.legend() plt.show()
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

手机免费代理ip网站移动 网站 素材

快速掌握evo2基因建模:从零开始构建智能DNA分析系统 【免费下载链接】evo2 Genome modeling and design across all domains of life 项目地址: https://gitcode.com/gh_mirrors/ev/evo2 想要在基因组研究中获得突破性进展?evo2作为专为生命科学领…

张小明 2026/1/7 2:03:46 网站建设

有没有帮别人做网站网站建设的售后服务

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 生成一个包含5个不同场景的Python代码案例集,每个案例展示一种导致module is not callable错误的常见模式,并提供修正方案。要求案例覆盖不同库和调用方式。…

张小明 2026/1/8 1:25:47 网站建设

郑州酒店网站建设坂田网站建设流程

Proxmox LXC容器NFS挂载终极指南:快速解决权限与性能问题 【免费下载链接】Proxmox Proxmox VE Helper-Scripts 项目地址: https://gitcode.com/gh_mirrors/pr/Proxmox 在Proxmox VE环境中配置LXC容器挂载NFS存储时,你是否经常遇到权限拒绝、挂载…

张小明 2026/1/7 6:58:07 网站建设

网站建设廾金手指专业壹柒商用厨房设计书籍

恶意软件样本分析全解析 1. 恶意软件分析基础操作 在进行恶意软件分析时,需要逐步应用分析操作。例如,对数据集进行聚类操作应先于分类操作。以 Malheur 工具为例,在进行聚类分析时,它会自动先提取原型,再开展聚类分析,如下图所示: malwarelab@MalwareLab:~/Malware…

张小明 2026/1/7 6:21:31 网站建设

网网站制作网站和网络建设自查报告

MaxBot抢票机器人终极完整教程:快速部署与高效使用指南 【免费下载链接】tix_bot Max搶票機器人(maxbot) help you quickly buy your tickets 项目地址: https://gitcode.com/gh_mirrors/ti/tix_bot MaxBot是一个免费开源的抢票机器人程序,专门为…

张小明 2026/1/7 10:11:04 网站建设

网站自助搭建app界面设计模板一套

/* 还是和决策树一样&#xff0c;从s的第0个位置开始遍历&#xff0c; 然后只要word是s的子串&#xff0c;那么则置为true&#xff0c;而且要注意边界条件 */ class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {vector<bool> dp(s…

张小明 2026/1/9 8:45:03 网站建设