肥宅钓鱼网
当前位置: 首页 钓鱼百科

tensorflow量化计算(最喜欢随机森林)

时间:2023-07-12 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

最喜欢随机森林机器之心报道机器之心编辑部TensorFlow决策森林(TF-DF)现已开源,该库集成了众多SOTA算法,不需要输入特征,可以处理数值和分类特征,为开发者节省了大量时间在人工智能发展史上,各类算法可谓。

机器之心报道

机器之心编辑部

TensorFlow 决策森林 (TF-DF) 现已开源,该库集成了众多 SOTA 算法,不需要输入特征,可以处理数值和分类特征,为开发者节省了大量时间。

在人工智能发展史上,各类算法可谓层出不穷。近十几年来,深层神经网络的发展在机器学习领域取得了显著进展。通过构建分层或「深层」结构,模型能够在有监督或无监督的环境下从原始数据中学习良好的表征,这被认为是其成功的关键因素。

而深度森林,是 AI 领域重要的研究方向之一。

2017 年,周志华和冯霁等人提出了深度森林框架,这是首次尝试使用树集成来构建多层模型的工作。2018 年,周志华等人又在研究《Multi-Layered Gradient Boosting Decision Trees》中探索了多层的决策树。今年 2 月,周志华团队开源深度森林软件包 DF21:训练效率高、超参数少,在普通设备就能运行。

就在近日,TensorFlow 开源了 TensorFlow 决策森林 (TF-DF)。TF-DF 是用于训练、服务和解释决策森林模型(包括随机森林和梯度增强树)生产方面的 SOTA 算法集合。现在,你可以使用这些模型进行分类、回归和排序任务,具有 TensorFlow 和 Keras 的灵活性和可组合性。

谷歌大脑研究员、Keras之父François Chollet表示:「现在可以用Keras API训练TensorFlow决策森林了。」

对于这一开源项目,网友表示:「这非常酷!随机森林是我最喜欢的模型。」

决策森林

决策森林是一系列机器学习算法,其质量和速度可与神经网络相竞争(它比神经网络更易于使用,功能也很强大),实际上与特定类型的数据配合使用时,它们比神经网络更出色,尤其是在处理表格数据时。

随机森林是一种流行的决策森林模型。在这里,你可以看到一群树通过投票结果对一个例子进行分类。

决策森林是由许多决策树构建的,它包括随机森林和梯度提升树等。这使得它们易于使用和理解,而且可以利用已经存在的大量可解释性工具和技术进行操作。

决策树是一系列仅需做出是 / 否判断的问题,使用决策树将动物分成鸡、猫、袋鼠。

TF-DF 为 TensorFlow 用户带来了模型和一套定制工具:

如上图所示,只需使用一行代码就能构建模型,相比之下,动图中的下面代码是用于构建神经网络的代码。在 TensorFlow 中,决策森林和神经网络都使用 Keras。可以使用相同的 API 来实验不同类型的模型,更重要的是,可以使用相同的工具,例如 TensorFlow Serving 来部署这两种模型。

以下是 TF-DF 提供的一些功能:

代码示例

下面进行示例展示,可以让使用者简单明了。

模型训练

在数据集 Palmer's Penguins 上训练随机森林模型。目的是根据一种动物的特征来预测它的种类。该数据集包含数值和类别特性,并存储为 csv 文件。

Palmer's Penguins 数据集示例。

模型训练代码:

# Install TensorFlow Decision Forests!pip install tensorflow_decision_forests# Load TensorFlow Decision Forestsimport tensorflow_decision_forests as tfdf# Load the training dataset using pandasimport pandastrain_df = pandas.read_csv("penguins_train.csv")# Convert the pandas dataframe into a TensorFlow datasettrain_ds = tfdf.keras.pd_dataframe_to_tf_dataset(train_df, label="species")# Train the modelmodel = tfdf.keras.RandomForestModel()model.fit(train_ds)

请注意,代码中没有提供输入特性或超参数。这意味着,TensorFlow 决策森林将自动检测此数据集中的输入特征,并对所有超参数使用默认值

评估模型

现在开始对模型的质量进行评估:

# Load the testing datasettest_df = pandas.read_csv("penguins_test.csv")# Convert it to a TensorFlow datasettest_ds = tfdf.keras.pd_dataframe_to_tf_dataset(test_df, label="species")# Evaluate the modelmodel.compile(metrics=["accuracy"])print(model.evaluate(test_ds))# >> 0.979311# Note: Cross-validation would be more suited on this small dataset.# See also the "Out-of-bag evaluation" below.# Export the model to a TensorFlow SavedModelmodel.save("project/my_first_model")

带有默认超参数的随机森林模型为大多数问题提供了一个快速和良好的基线。决策森林一般会对中小尺度问题进行快速训练,与其他许多类型的模型相比,需要较少的超参数调优,并且通常会提供强大的结果。

解读模型

现在,你已经了解了所训练模型的准确率,接下来该考虑它的可解释性了。如果你希望理解和解读正被建模的现象、调试模型或者开始信任其决策,可解释性就变得非常重要了。如上所述,有大量的工具可用来解读所训练的模型。首先从 plot 开始:

tfdf.model_plotter.plot_model_in_colab(model, tree_idx=0)

其中一棵决策树的结构。

你可以直观地看到树结构。此外,模型统计是对 plot 的补充,统计示例包括:

这些问题的答案以及更多类似查询的答案都包含在模型概要中,并可以在模型检查器中访问。

# Print all the available information about the modelmodel.summary()>> Input Features (7):>>bill_depth_mm>>bill_length_mm>>body_mass_g>>...>> Variable Importance:>>1."bill_length_mm" 653.000000 ################>>...>> Out-of-bag evaluation: accuracy:0.964602 logloss:0.102378>> Number of trees: 300>> Total number of nodes: 4170>>...# Get feature importance as a arraymodel.make_inspector().variable_importances()["MEAN_DECREASE_IN_ACCURACY"]>> [("flipper_length_mm", 0.149),>>("bill_length_mm", 0.096),>>("bill_depth_mm", 0.025),>>("body_mass_g", 0.018),>>("island", 0.012)]

在上述示例中,模型通过默认超参数值进行训练。作为首个解决方案而言非常好,但是调整超参数可以进一步提升模型的质量。可以如下这样做:

# List all the other available learning algorithmstfdf.keras.get_all_models()>> [tensorflow_decision_forests.keras.RandomForestModel,>>tensorflow_decision_forests.keras.GradientBoostedTreesModel,>>tensorflow_decision_forests.keras.CartModel]# Display the hyper-parameters of the Gradient Boosted Trees model ? tfdf.keras.GradientBoostedTreesModel>> A GBT (Gradient Boosted [Decision] Tree) is a set of shallow decision trees trained sequentially. Each tree is trained to predict and then "correct" for the errors of the previously trained trees (more precisely each tree predicts the gradient of the loss relative to the model output).....Attributes:num_trees: num_trees: Maximum number of decision trees. The effective number of trained trees can be smaller if early stopping is enabled. Default: 300.max_depth: Maximum depth of the tree. `max_depth=1` means that all trees will be roots. Negative values are ignored. Default: 6....# Create another model with specified hyper-parametersmodel = tfdf.keras.GradientBoostedTreesModel(num_trees=500,growing_strategy="BEST_FIRST_GLOBAL",max_depth=8,split_axis="SPARSE_OBLIQUE",)# Evaluate the modelmodel.compile(metrics=["accuracy"])print(model.evaluate(test_ds))# >> 0.986851

参考链接:

https://blog.tensorflow.org/2021/05/introducing-tensorflow-decision-forests.html

,
    推荐阅读
  • 王者荣耀个性天幕流动怎么获得(王者荣耀个性天幕流动如何获得)

    我们一起去了解并探讨一下这个问题吧!王者荣耀个性天幕流动怎么获得工具/原料:iPhone12Promax,iOS14.4,王者荣耀v3.65.1.19。打开王者荣耀,进入游戏主页面后点击定制。选中流动后,点击右侧长枪掠火获取。当掠火计划进度达到2000点时,点击领取“奇怪的金锁”奖励。这就获得个性天幕“流动”体验卡了,目前是不能获得永久时效的。

  • 再见了小森林(我的小森林再见了)

    可是后来发现这件事变得没那么简单了,我已经完全被控制了。有时候起晚了,匆忙的刷牙洗脸,也要把手机拿在手上,点开蚂蚁森林。我给自己定的任务终于完成了。直到最后只剩了4g能量,我该执行最后一步了。它又一次回应了我。还记得去年蚂蚁森林给我寄来了证书和明信片,我都有好好保存。在自己的小天地里,发出微弱的光。

  • 柠檬干泡水为什么发苦 柠檬干泡水发苦怎么回事

    柠檬干泡水为什么发苦柠檬干泡水发苦与人们泡制的方法有直接关系,因为人们泡制方法不正确,会让柠檬膏中含有的苦味素大量溶解热水中,这样就会让它泡出的水发苦,但这样泡出的水仍然可以饮用,因为柠檬中的苦味素对人体也十分有益,能预防上火症状发生。

  • 人参果吃硬的还是软的(爱吃的小伙伴看过来)

    以下内容大家不妨参考一二希望能帮到您!人参果未成熟时果实坚硬,吃起来较生脆,没有明显的味道,口感较差,若成熟后,会有清新的果香,果实较软,尝起来清香甘甜、清脆多汁,口感较好。而完全成熟的人参果,果肉清甜滑爽,但熟过头了,口感也会下降。一般来说,果肉稍软的人参果口感更佳,挑选人参果时,应该选择色泽金黄、大小均匀、果肉稍微软的。

  • 闲鱼申请闲鱼玩家为什么不通过(优化思考闲鱼如何破解)

    今日闲来无事,对微信分组进行了重新管理。b)及时回复性差,无法形成购前咨询、购后服务的社交闭环。从闲鱼逛到喜欢的商品,流向微信沟通交流,再回到闲鱼达成交易,形成这样的闭环仿佛是很正常且顺畅的事情。闲鱼的这两大弱势将是限制其发展的重大阻碍,虽然在二手交易平台,它已经是做的最好的了。既然占用用户时间能力太弱;及时回复性差是主要的弱点,同时也是二手交易平台的成功关键要素。

  • 童心向党歌词(童心向党歌词介绍)

    下面希望有你要的答案,我们一起来看看吧!演唱者分别是王梓玉、刘朕宇、曹少茹、张峻熙

  • ct对人体的危害到底有多大(对人体的伤害有多大)

    据统计,因CT检查而导致癌症发生的比例高达2.5%。因此,CT检查将对人的器官造成损害。CT检查对胎儿健康有一定的害处研究表明,在女性怀孕期间,使用CT检查胎儿的生长情况,将对胎儿造成伤害。另外,CT检查将使新生儿在发育的过程中患癌的风险显著增加。而做一次CT检查最多不超过8mSv,根本达不到致癌剂量。另外CT检查费用较为高昂,特别是全身CT检查,因此在这一方面,CT检查对人体的伤害几乎可以忽略不计。

  • 《唐人街探案》的细节(细数网剧唐人街探案中那些细思极恐的细节)

    塑料姐妹花查雅阿温和迪楠。但是事情在做完之后,每个人都得到了数额不等的“报酬”。阿温这个主谋更不用说,她如果成功的躲到了新加坡“报酬”应该是几十亿。最后私下找阿温达成了一个2000万的买卖。可能真的只是因为她觉得300万是赔偿汽车的损失的。但实际上她们三个也不是牢不可破的联盟。尤其是迪楠得到的钱最少,以她的性格不可能什么反应都没有。也就是说,所有的协议都是单向达成的。

  • 怪物猎人崛起御龙怎么连续撞墙 怪物猎人崛起御龙只能撞一下

    御龙是可以连续撞墙不倒地的,很多玩家都不知道该怎么操作,下面小编就带来怪物猎人崛起御龙收益最大化技巧,一起来看看吧。怪物猎人崛起御龙收益最大化技巧机制介绍1.翔虫回避可以取消撞墙后的倒地,也可以取消攻击后摇。

  • 新生儿睡觉不踏实怎么办(新生儿睡不踏实咋回事)

    及时更换尿布大、小便使尿布湿了,孩子不舒服、也睡不踏实,应及时更换尿布。加强喂养母乳不足,孩子没吃饱则会影响睡眠,就要勤喂几次,以促进乳汁分泌,让孩子吃饱。就医如果新生儿睡觉不踏实的前提下伴有发烧、不吃奶等其他并发症中,应该立即送去医院就医。