网页设计模板网站免费下载北京十大室内设计公司排名

diannao/2026/1/16 21:20:42/文章来源:
网页设计模板网站免费下载,北京十大室内设计公司排名,怎么做分享软件的网站,大型购物网站服务器CART树 理解#xff1a; 如果CART树处理离散型数据#xff0c;叫做分类决策树#xff0c;那么#xff0c;引入基尼指数作为寻找最好的数据划分的依据#xff0c;基尼指数越小#xff0c;说明数据的“纯度越高”#xff0c;随机森林的代码里边就运用到了基尼指数。如…CART树 理解      如果CART树处理离散型数据叫做分类决策树那么引入基尼指数作为寻找最好的数据划分的依据基尼指数越小说明数据的“纯度越高”随机森林的代码里边就运用到了基尼指数。如果CART树处理连续型数据时叫做回归决策树那么引入了平方误差首先它使用二元切分来处理数据得到两个子集计算误差找到最小误差确定最佳切分的特征编号和特征值然后进行建树。 构建回归树需要给定某个误差计算方法该函数会找到数据集上最佳的二元切分方式。另外该函数还要确定什么时候停止划分一旦停止划分会生成一个叶节点。这里引入reLeaf(),regErr()分别得到叶节点和总方差。叶节点的模型是目标变量的 均值var是均方差所以需要乘以数据集的样本个数。 划分数据集时如果找不到一个‘好’的二元切分该函数返回None值并产生叶节点叶节点的值也为None。 from numpy import * #载入数据 def loadDataSet(fileName) : dataMat []fr open(fileName)for line in fr.readlines() :curLine line.strip().split(\t)fltLine list(map(float, curLine))#将后面的数据集映射为浮点型dataMat.append(fltLine)return dataMat#切分数据集为两个子集 # dataSet: 数据集合 # feature: 待切分的特征 # value: 该特征的某个值 #nonzero():得到数组非零元素的位置数组索引 def binSplitDataSet(dataSet, feature, value) :mat0 dataSet[nonzero(dataSet[:,feature] value)[0],:]mat1 dataSet[nonzero(dataSet[:,feature] value)[0],:]return mat0, mat1# 负责生成叶节点当chooseBestSplit()函数确定不再对数据进行切分时 # 将调用该regLeaf()函数来得到叶节点的模型在回归树中该模型其实就是目标变量的均值 def regLeaf(dataSet) :return mean(dataSet[:, -1])# 误差估计函数该函数在给定的数据上计算目标变量的平方误差这里直接调用均方差函数var # 因为这里需要返回的是总方差所以要用均方差乘以数据集中样本的个数 def regErr(dataSet) :return var(dataSet[:, -1]) * shape(dataSet)[0]# dataSet: 数据集合 # leafType: 给出建立叶节点的函数 # errType: 误差计算函数 # ops: 包含树构建所需其他参数的元组 def createTree(dataSet, leafTyperegLeaf, errTyperegErr, ops(1,4)) :# 将数据集分成两个部分若满足停止条件chooseBestSplit将返回None和某类模型的值# 若构建的是回归树该模型是个常数。若是模型树其模型是一个线性方程。# 若不满足停止条件chooseBestSplit()将创建一个新的Python字典并将数据集分成两份# 在这两份数据集上将分别继续递归调用createTree()函数feat, val chooseBestSplit(dataSet, leafType, errType, ops)if feat None : return valretTree {}retTree[spInd] featretTree[spVal] vallSet, rSet binSplitDataSet(dataSet, feat, val)retTree[left] createTree(lSet, leafType, errType, ops)retTree[right] createTree(rSet, leafType, errType, ops)return retTree# 回归树的切分函数构建回归树的核心函数。目的找出数据的最佳二元切分方式。如果找不到 # 一个“好”的二元切分该函数返回None并同时调用createTree()方法来产生叶节点叶节点的 # 值也将返回None。 # 如果找到一个“好”的切分方式则返回特征编号和切分特征值。 # 最佳切分就是使得切分后能达到最低误差的切分。 def chooseBestSplit(dataSet, leafTyperegLeaf, errTyperegErr, ops(1,4)) :# tolS是容许的误差下降值# tolN是切分的最小样本数tolS ops[0]; tolN ops[1]# 如果剩余特征值的数目为1那么就不再切分而返回if len(set(dataSet[:, -1].T.tolist()[0])) 1 :return None, leafType(dataSet)# 当前数据集的大小m,n shape(dataSet)# 当前数据集的误差S errType(dataSet)bestS inf; bestIndex 0; bestValue 0for featIndex in range(n-1) : # for splitVal in set(dataSet[:, featIndex]) :for splitVal in set(dataSet[:,featIndex].T.tolist()[0]):mat0, mat1 binSplitDataSet(dataSet, featIndex, splitVal)if (shape(mat0)[0] tolN) or (shape(mat1)[0] tolN) : continuenewS errType(mat0) errType(mat1)if newS bestS :bestIndex featIndexbestValue splitValbestS newS# 如果切分数据集后效果提升不够大那么就不应该进行切分操作而直接创建叶节点if (S - bestS) tolS :return None, leafType(dataSet)mat0, mat1 binSplitDataSet(dataSet, bestIndex, bestValue)# 检查切分后的子集大小如果某个子集的大小小于用户定义的参数tolN那么也不应切分。if (shape(mat0)[0] tolN) or (shape(mat1)[0] tolN) :return None, leafType(dataSet)# 如果前面的这些终止条件都不满足那么就返回切分特征和特征值。return bestIndex, bestValue 通过降低决策树的复杂度来避免过拟合的过程叫剪枝预剪枝和后剪枝的单个效果可能是不好的一般来说我们可以同时采用这两种剪枝方法。 模型树 理解模型树和回归树的区别就是回归树的叶节点是一个常数值而模型树的叶节点是分段线性函数分段线性模型就是我们对数据集的一部分数据以某个线性模型建模而另一份数据以另一个线性模型建模。 #模型树 # 主要功能将数据格式化成目标变量Y和自变量X。X、Y用于执行简单的线性规划。 def linearSolve(dataSet) :m,n shape(dataSet) X mat(ones((m,n))); Y mat(ones((m,1)))X[:, 1:n] dataSet[:, 0:n-1]; Y dataSet[:, -1]xTx X.T*X# 矩阵的逆不存在时会造成程序异常if linalg.det(xTx) 0.0 :raise NameError(This matrix is singular, cannot do inverse, \n try increasing the second value of ops)ws xTx.I * (X.T * Y)return ws, X, Y# 与regLeaf()类似当数据不需要切分时它负责生成叶节点的模型。 def modelLeaf(dataSet) :ws, X, Y linearSolve(dataSet)return ws# 在给定的数据集上计算误差。与regErr()类似会被chooseBestSplit()调用来找到最佳切分。 def modelErr(dataSet) :ws, X, Y linearSolve(dataSet)yHat X * wsreturn sum(power(Y-yHat, 2))# 为了和modeTreeEval()保持一致保留两个输入参数 def regTreeEval(model, inDat) :return float(model)# 对输入数据进行格式化处理在原数据矩阵上增加第0列元素的值都是1 def modelTreeEval(model, inDat) :n shape(inDat)[1]X mat(ones((1, n1)))X[:, 1:n1] inDatreturn float(X*model)def isTree(obj): return (type(obj).__name__dict) # 在给定树结构的情况下对于单个数据点该函数会给出一个预测值。 # modeEval是对叶节点进行预测的函数引用指定树的类型以便在叶节点上调用合适的模型。 # 此函数自顶向下遍历整棵树直到命中叶节点为止一旦到达叶节点它就会在输入数据上 # 调用modelEval()函数该函数的默认值为regTreeEval() def treeForeCast(tree, inData, modelEvalregTreeEval) :if not isTree(tree) : return modelEval(tree, inData)if inData[tree[spInd]] tree[spVal] :if isTree(tree[left]) :return treeForeCast(tree[left], inData, modelEval)else : return modelEval(tree[left], inData)else :if isTree(tree[right]) :return treeForeCast(tree[right], inData, modelEval)else :return modelEval(tree[right], inData)# 多次调用treeForeCast()函数以向量形式返回预测值在整个测试集进行预测非常有用 def createForeCast(tree, testData, modelEvalregTreeEval) :m len(testData)yHat mat(zeros((m,1)))for i in range(m) :yHat[i,0] treeForeCast(tree, mat(testData[i]), modelEval)return yHat 使用Tkinter工具构建图形用户界面 from numpy import * from tkinter import * import regTrees as regTreesimport matplotlib matplotlib.use(TkAgg) #设置后端TkAgg #将TkAgg和matplotlib链接起来 from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg from matplotlib.figure import Figure# def reDraw(tolS, tolN) :reDraw.f.clf() #清空之前的图像reDraw.a reDraw.f.add_subplot(111) #重新添加新图if chkBtnVar.get() : #检查选框model tree是否被选中if tolN 2 : tolN 2myTree regTrees.createTree(reDraw.rawDat, regTrees.modelLeaf, regTrees.modelErr, (tolS, tolN))yHat regTrees.createForeCast(myTree, reDraw.testDat, regTrees.modelTreeEval)else :myTree regTrees.createTree(reDraw.rawDat, ops(tolS, tolN))yHat regTrees.createForeCast(myTree, reDraw.testDat)# reDraw.rawDat[:,0].A需要将矩阵转换成数组reDraw.a.scatter(reDraw.rawDat[:,0].A, reDraw.rawDat[:,1].A, s5) # 绘制真实值reDraw.a.plot(reDraw.testDat, yHat, linewidth2.0) # 绘制预测值reDraw.canvas.show()# def getInputs() :#获取输入try : tolN int(tolNentry.get()) #期望输入是整数except : #清楚错误用默认值替换tolN 10print (enter Integer for tolN)tolNentry.delete(0, END)tolNentry.insert(0, 10)try : tolS float(tolSentry.get())except : #期望输入是浮点数tolS 1.0print (enter Float for tolS)tolSentry.delete(0, END)tolSentry.insert(0, 1.0)return tolN, tolS# def drawNewTree() :# 取得输入框的值tolN, tolS getInputs() # 从输入文本框中获取参数# 利用tolN,tolS调用reDraw生成漂亮的图reDraw(tolS, tolN) #绘制图#布局GUI root Tk() # 创建画布 Label(root, textPlot Place Holder).grid(row0, columnspan3)Label(root, texttolN).grid(row1, column0) tolNentry Entry(root) tolNentry.grid(row1, column1) tolNentry.insert(0, 10) Label(root, texttolS).grid(row2, column0) tolSentry Entry(root) tolSentry.grid(row2, column1) tolSentry.insert(0, 1.0) # 点击“ReDraw”按钮后调用drawNewTree()函数 Button(root, textReDraw, commanddrawNewTree).grid(row1, column2, rowspan3)chkBtnVar IntVar() chkBtn Checkbutton(root, textModel Tree, variablechkBtnVar) chkBtn.grid(row3, column0, columnspan2)reDraw.f Figure(figsize(5,4), dpi100) reDraw.canvas FigureCanvasTkAgg(reDraw.f, masterroot) reDraw.canvas.show() reDraw.canvas.get_tk_widget().grid(row0, columnspan3)reDraw.rawDat mat(regTrees.loadDataSet(ex00.txt)) reDraw.testDat arange(min(reDraw.rawDat[:, 0]), max(reDraw.rawDat[:, 0]), 0.01)reDraw(1.0, 10)root.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何 做网站跳转网站关键词设置代码

用数百万个对象填充HashMap会很快导致诸如内存使用效率低下,性能低下和垃圾回收等问题。 了解如何使用堆外CronicleMap ,其中可以包含数十亿个对象,而对堆的影响很小或没有。 当我们要使用中小型数据集时,内置的Map实现&#xff…

淘宝网页制作代码优化网站聊城

一、在nginx配置文件的server标签内加入以下标签和内容 location /logs {alias /data/nginx/logs;#nginx日志目录autoindex on;#打开目录浏览功能autoindex_exact_size off;#默认为on,显示出文件的确切大小,单位是bytes#显示出文件的大概大小,单位是kb或者mb或者gbautoinde…

做关于手机的网站 该如何设计百度搜索页

首先我们需要知道选择器的类型有这些:选择器栗子ID#idclass.class标签p属性[typetext]伪类:hover伪元素::first-line相邻选择器、子代选择器>而这些css的选择器是有权重(即优先级)的,在不同选择器的样式出现冲突时候,会采用权重高的选择器…

网站服务器和空间的区别我国做民宿的网站

.cn是中国的国家顶级域名(ccTLD),在互联网域名系统中起着重要的作用。在本文中,我们将重点探讨.cn域名的层次结构和级别,并解释每个级别的含义和应用。 一、域名的层次结构 域名采用了一种典型的层次结构&#xff0c…

网站编程 mysql更改网站描述

数据库班级字段怎么定义名称在Java中,每个类都有一个名称。 类位于包中,这使我们程序员可以一起工作,避免名称冲突。 我可以命名我的班级A ,也可以命名您的班级A ,只要它们位于不同的程序包中,它们可以很好…

做问卷的网站有哪些内容wordpress幻灯片代码

逗号表达式和赋值表达式是C语言中常用的表达式类型。它们可以用于各种目的,包括计算和评估表达式、初始化变量、为函数调用提供参数以及将值分配给变量。 逗号表达式 逗号表达式允许在单个语句中计算和评估多个表达式。逗号分隔每个表达式,并且表达式从…

昆山做网站公司哪家好wordpress运行环境要求

现象: 通过抓包看到在部分客户端上跨域的非简单请求只发送一个预检的OPTIONS请求,之后的真实请求并没有发送。 出现问题的环境: 部分IOS低版本系统。 windows系统微信内必现(2020-04-29)。 分析 通过上面条件OPT…

中铁建设集团门户网登录网站wordpress 建立数据库连接时出错

交叉渡线铁路道岔是铁路上的一种,都是火车运行的基础设施,只不过由于道岔型号不同,通过机车也不相同,对此小编将交叉渡线铁路道岔的型号及使用介绍如下:一、交叉渡线铁路道岔选择基本原则(1)轨距一致:如ZDK…

用php做电商网站有哪些浙江网站建设企业名录

火狐浏览器怎么设置自动刷新?火狐浏览器为用户提供最新的搜索、网址导航、新闻资讯、网络购物等服务。还有对用户的隐私保护,个性化设置、更快的上网速度等功能,火狐浏览器要怎么设置自动刷新呢,下面就给大家分享具体步骤。 1、首先打开火狐…

做网站广告词seo引擎优化怎么做

公众号关注 “GitHubDaily”设为 “星标”,带你了解技术圈内新鲜事!来自量子位无需系统密码,就能添加新的 sudo 用户、获取 root 权限,事后还能删除不留痕迹。这是 GitHub 安全研究员 Kevin Backhouse 发现的一个 Ubuntu 系统大漏…

网站的建设内容企业的网站开发费用如何入账

开发项目中安装了Newtonsoft.Json组件,遇到了必须给Newtonsoft.Json降版本的问题。 原因是:项目是MVC项目,WebApi模块必须使用framework4.5.0.0的版本。而我们在安装其他组件时,不小心升级了Newtonsoft.Json,导致了系统可以编译通…

嘉兴网站建设方案咨询站长工具seo综合查询腾讯

好迷茫啊,心理有事情不知道从何说起,

口碑好的徐州网站建设泰安建材网站建设电话

正题 题目链接:https://www.luogu.com.cn/problem/AT4119 题目大意 一个集合S{k∈[1,n]∪N}S\{k\in[1,n]\cup N\}S{k∈[1,n]∪N},它的所有子集作为元素组成的集合中要求满足每一个数字的出现之和不小于222,求方案数对PPP取模。 1≤n≤3000,P∈[108,109…

苏州安岭网站建设公司二手网站开发

1. 先看一个例子 package mainimport "fmt"func main() {var a *int*a 10fmt.Println(*a) }运行结果是啥呢? 问:为什么会报这个panic呢? 答:因为如果是一个引用类型,我们不仅要声明它,还要为…

如何用图片文字做网站百度网址安全中心

文章目录 一、需求:二、问题解决步骤1、给需要转换的列绑定formatter属性2、获取字典项3、编写formatter属性绑定的方法 一、需求: 后端有时候返回的是字典的键值,在前端展示时需要转成中文值 后端返回的是dictValue,现在要转换…

没有备案的网站百度不收录上海包装设计公司有哪些

控制与状态机算法是计算机科学、电子工程和自动化领域中常用的一种设计工具,它用来描述一个系统的行为,该系统在不同时间点可以处于不同的状态,并且其行为取决于当前状态以及输入的信号或事件。状态机算法的核心概念包括: 状态(State):系统的任何可能配置。每个状态代表…

石家庄网站维护怎样做直播网站

synchronized的优化策略 一:synchronized 的"自适应"1.1:偏向锁 二:锁消除三:锁粗化 一:synchronized 的"自适应" 锁升级的过程: (1)未加锁的状态(无锁) 当代码中开始调用执行synchronized (2)偏向锁 遇到锁冲突 (3)轻量级锁 冲突进一步提升 (4)重量级锁 …

有什么ae做动图的网站电子手表网站

145. 二叉树的后序遍历 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[3,2,1]示例 2: 输入:root [] 输出:[]示例 3: 输入&…

抖音小程序多少钱抖音关键词优化排名

因为触及敏感词v-p-n,需要将 ‘-’去掉。 设备默认账号默认密码深信服产品sangforsangfor sangfor2018 sangfor2019深信服科技 ADdlanrecover深信服负载均衡 AD 3.6adminadmin深信服WAC ( WNS V2.6)adminadmin深信服v-p-nAdminAdmin深信服ipsec-V-P-N (SSL 5.5)AdminAdmin深信…

海南响应式网页建设找哪家优化网站的公司

今天介绍如何利用pycharm创建一个新的项目,然后将项目上传到github,以便日后的学习记录,和版本管理。比如现在我想创建一个项目专门用来学习和研究时间序列算法。 创建虚拟环境 # 创建一个新的虚拟环境 conda create -n TimeSeries python3…