当前位置: 首页 > news >正文

外贸网站建设哪家实惠wordpress能大网站

外贸网站建设哪家实惠,wordpress能大网站,建工网站,电商平台网站文章目录 1 什么是随机森林#xff1f;2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 #xff08;赛题出来以后第一时间在CSDN分享#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林#xff… 文章目录 1 什么是随机森林2 随机深林构造流程3 随机森林的优缺点3.1 优点3.2 缺点 4 随机深林算法实现 建模资料 ## 0 赛题思路 赛题出来以后第一时间在CSDN分享 https://blog.csdn.net/dc_sinor?typeblog 1 什么是随机森林 随机森林属于 集成学习 中的 BaggingBootstrap AGgregation 的简称 方法。如果用图来表示他们之间的关系如下 决策树 – Decision Tree 在解释随机森林前需要先提一下决策树。决策树是一种很简单的算法他的解释性强也符合人类的直观思维。这是一种基于if-then-else规则的有监督学习算法上面的图片可以直观的表达决策树的逻辑。 随机森林 – Random Forest | RF 随机森林是由很多决策树构成的不同决策树之间没有关联。 当我们进行分类任务时新的输入样本进入就让森林中的每一棵决策树分别进行判断和分类每个决策树会得到一个自己的分类结果决策树的分类结果中哪一个分类最多那么随机森林就会把这个结果当做最终的结果。 2 随机深林构造流程 一个样本容量为N的样本有放回的抽取N次每次抽取1个最终形成了N个样本。这选择好了的N个样本用来训练一个决策树作为决策树根节点处的样本。 当每个样本有M个属性时在决策树的每个节点需要分裂时随机从这M个属性中选取出m个属性满足条件m M。然后从这m个属性中采用某种策略比如说信息增益来选择1个属性作为该节点的分裂属性。 决策树形成过程中每个节点都要按照步骤2来分裂很容易理解如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性则该节点已经达到了叶子节点无须继续分裂了。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。 按照步骤1~3建立大量的决策树这样就构成了随机森林了。 3 随机森林的优缺点 3.1 优点 它可以出来很高维度特征很多的数据并且不用降维无需做特征选择它可以判断特征的重要程度可以判断出不同特征之间的相互影响不容易过拟合训练速度比较快容易做成并行方法实现起来比较简单对于不平衡的数据集来说它可以平衡误差。如果有很大一部分的特征遗失仍可以维持准确度。 3.2 缺点 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟合。对于有不同取值的属性的数据取值划分较多的属性会对随机森林产生更大的影响所以随机森林在这种数据上产出的属性权值是不可信的 4 随机深林算法实现 数据集https://archive.ics.uci.edu/ml/machine-learning-databases/undocumented/connectionist-bench/sonar/ import csv from random import seed from random import randrange from math import sqrtdef loadCSV(filename):#加载数据一行行的存入列表dataSet []with open(filename, r) as file:csvReader csv.reader(file)for line in csvReader:dataSet.append(line)return dataSet# 除了标签列其他列都转换为float类型 def column_to_float(dataSet):featLen len(dataSet[0]) - 1for data in dataSet:for column in range(featLen):data[column] float(data[column].strip())# 将数据集随机分成N块方便交叉验证其中一块是测试集其他四块是训练集 def spiltDataSet(dataSet, n_folds):fold_size int(len(dataSet) / n_folds)dataSet_copy list(dataSet)dataSet_spilt []for i in range(n_folds):fold []while len(fold) fold_size: # 这里不能用ifif只是在第一次判断时起作用while执行循环直到条件不成立index randrange(len(dataSet_copy))fold.append(dataSet_copy.pop(index)) # pop() 函数用于移除列表中的一个元素默认最后一个元素并且返回该元素的值。dataSet_spilt.append(fold)return dataSet_spilt# 构造数据子集 def get_subsample(dataSet, ratio):subdataSet []lenSubdata round(len(dataSet) * ratio)#返回浮点数while len(subdataSet) lenSubdata:index randrange(len(dataSet) - 1)subdataSet.append(dataSet[index])# print len(subdataSet)return subdataSet# 分割数据集 def data_spilt(dataSet, index, value):left []right []for row in dataSet:if row[index] value:left.append(row)else:right.append(row)return left, right# 计算分割代价 def spilt_loss(left, right, class_values):loss 0.0for class_value in class_values:left_size len(left)if left_size ! 0: # 防止除数为零prop [row[-1] for row in left].count(class_value) / float(left_size)loss (prop * (1.0 - prop))right_size len(right)if right_size ! 0:prop [row[-1] for row in right].count(class_value) / float(right_size)loss (prop * (1.0 - prop))return loss# 选取任意的n个特征在这n个特征中选取分割时的最优特征 def get_best_spilt(dataSet, n_features):features []class_values list(set(row[-1] for row in dataSet))b_index, b_value, b_loss, b_left, b_right 999, 999, 999, None, Nonewhile len(features) n_features:index randrange(len(dataSet[0]) - 1)if index not in features:features.append(index)# print features:,featuresfor index in features:#找到列的最适合做节点的索引损失最小for row in dataSet:left, right data_spilt(dataSet, index, row[index])#以它为节点的左右分支loss spilt_loss(left, right, class_values)if loss b_loss:#寻找最小分割代价b_index, b_value, b_loss, b_left, b_right index, row[index], loss, left, right# print b_loss# print type(b_index)return {index: b_index, value: b_value, left: b_left, right: b_right}# 决定输出标签 def decide_label(data):output [row[-1] for row in data]return max(set(output), keyoutput.count)# 子分割不断地构建叶节点的过程对对对 def sub_spilt(root, n_features, max_depth, min_size, depth):left root[left]# print leftright root[right]del (root[left])del (root[right])# print depthif not left or not right:root[left] root[right] decide_label(left right)# print testingreturnif depth max_depth:root[left] decide_label(left)root[right] decide_label(right)returnif len(left) min_size:root[left] decide_label(left)else:root[left] get_best_spilt(left, n_features)# print testing_leftsub_spilt(root[left], n_features, max_depth, min_size, depth 1)if len(right) min_size:root[right] decide_label(right)else:root[right] get_best_spilt(right, n_features)# print testing_rightsub_spilt(root[right], n_features, max_depth, min_size, depth 1)# 构造决策树 def build_tree(dataSet, n_features, max_depth, min_size):root get_best_spilt(dataSet, n_features)sub_spilt(root, n_features, max_depth, min_size, 1)return root # 预测测试集结果 def predict(tree, row):predictions []if row[tree[index]] tree[value]:if isinstance(tree[left], dict):return predict(tree[left], row)else:return tree[left]else:if isinstance(tree[right], dict):return predict(tree[right], row)else:return tree[right]# predictionsset(predictions) def bagging_predict(trees, row):predictions [predict(tree, row) for tree in trees]return max(set(predictions), keypredictions.count) # 创建随机森林 def random_forest(train, test, ratio, n_feature, max_depth, min_size, n_trees):trees []for i in range(n_trees):train get_subsample(train, ratio)#从切割的数据集中选取子集tree build_tree(train, n_features, max_depth, min_size)# print tree %d: %i,treetrees.append(tree)# predict_values [predict(trees,row) for row in test]predict_values [bagging_predict(trees, row) for row in test]return predict_values # 计算准确率 def accuracy(predict_values, actual):correct 0for i in range(len(actual)):if actual[i] predict_values[i]:correct 1return correct / float(len(actual))if __name__ __main__:seed(1) dataSet loadCSV(sonar-all-data.csv)column_to_float(dataSet)#dataSetn_folds 5max_depth 15min_size 1ratio 1.0# n_featuressqrt(len(dataSet)-1)n_features 15n_trees 10folds spiltDataSet(dataSet, n_folds)#先是切割数据集scores []for fold in folds:train_set folds[:] # 此处不能简单地用train_setfolds这样用属于引用,那么当train_set的值改变的时候folds的值也会改变所以要用复制的形式。L[:]能够复制序列D.copy() 能够复制字典list能够生成拷贝 list(L)train_set.remove(fold)#选好训练集# print len(folds)train_set sum(train_set, []) # 将多个fold列表组合成一个train_set列表# print len(train_set)test_set []for row in fold:row_copy list(row)row_copy[-1] Nonetest_set.append(row_copy)# for row in test_set:# print row[-1]actual [row[-1] for row in fold]predict_values random_forest(train_set, test_set, ratio, n_features, max_depth, min_size, n_trees)accur accuracy(predict_values, actual)scores.append(accur)print (Trees is %d % n_trees)print (scores:%s % scores)print (mean score:%s % (sum(scores) / float(len(scores))))建模资料 资料分享: 最强建模资料
http://www.sczhlp.com/news/193234/

相关文章:

  • 用.net编写网站网站建设哪家好采用苏州久远网络
  • 灞桥微网站建设杭州建设行业网站
  • 免费申请个人网站申请商城网站seo
  • 做网站 360中山好的网站建设
  • 做个网站需要多少钱郑州网站设计排行
  • 华为商城网站建设wordpress 下载附件
  • 旅游网站建设的可行性分析网页设计素材app
  • 外贸建站模板价格梅州正在建设高铁线路
  • 徐州教育平台网站建设谁有那种手机网站
  • 网站上怎么做微信支付接口电子贺卡怎么制作
  • 建筑设计网站网址网站技术报务费如何做会计分录
  • 中山网站排名vue.js2.5 pc网站开发
  • 公司的网站怎么建设潍坊网站建设套餐
  • 软件网站开发甘肃windows做网站服务器吗
  • 宁波网站建设设计公司利尔化学股票
  • 简单网站建设视频百度账号注销
  • 做网站资讯运营网站关键词优化技巧
  • 建站平台需要授权吗考研哪个培训机构比较好
  • 网站建设软件培训学校阳春做网站公司
  • 国外 电子 商务 网站 欣赏wordpress 图片alt
  • 功能点计算方法 网站开发网站项目设计与制作
  • 服务器做网站电子商务网站开发的题
  • 料远若近网站建设上海市建交人才网
  • 汉服网站设计模板网站建设人员考核
  • 苏中建设网站价格低的成语
  • 怎么做网站代销网上国网推广宣传语
  • 中小型网站建设与管理 唐军民深圳地图
  • i网站建设青岛seo计费
  • jquery插件 wordpress整站优化该怎么做
  • 网站后台改版面上海网站网站建设