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

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

,
    推荐阅读
  • 碧蓝航线怎么玩(碧蓝航线怎么玩国际服)

    1、指挥官等级到达70级,优先提升指挥官等级非常重要,快速提升等级的方法是上5-6船零破刷打得过的图,之后要组两队。

  • 电饭锅做酸奶要一直通着电源吗?(电饭锅做酸奶应该一直通着电吗?)

    主料:牛奶,500g,原味酸奶,50g,工具:密封保鲜盒1个,小勺1把,电饭煲1个,辅料:开水,清水适量。电饭锅中加入清水,加热至锅壁稍稍烫手,将500g牛奶倒入保鲜盒中,坐入电饭锅的热水中,盖上锅盖,将牛奶加热至温热。将保鲜盒的盖子盖好。将保鲜盒放入电饭锅中,盖上锅盖,断电,发酵12小时即可。这可是不加糖,没有其他添加剂的原味酸奶哦!如果你喜欢甜味,那么,加上适量的蜂蜜,拌匀,就ok了。

  • 最新款智能手机哪款好(最新智能手机排行榜)

    小米推出MixFold后,进入了可折叠智能手机领域。该公司可能在未来几天发布MixFold的继任者。该设备被称为MixFold2,可能会在2022年3月上市。同时,小米的一款可折叠智能手机已经在USPTO网站曝光。折叠机制与三星GalaxyZFold系列相似。手写笔以磁力连接到可折叠智能手机的侧面。不幸的是,专利中没有透露该设备的规格或名称。然而,小米还没有确认关于MixFold智能手机继任者的任何细节。它的外部有一个小小的盖板屏幕,并有一个双摄像头设置。

  • 鸡翅木保养技巧(鸡翅木保养技方法)

    绝对不要用湿抹布或粗糙的抹布去擦拭鸡翅木家具,特别是时间比较久的老家具。避免触碰,鸡翅木家具在搬运的时候一定要注意轻拿轻放,不能随意拖动,以免磕碰造成局部损坏,家具表面应避免与硬物摩擦磕碰和刮划,以免损伤漆面和木头表面纹理,尤其要提醒家里的孩子。其次就是不能将热水或重物直接放在鸡翅木家具上,不然会破坏到鸡翅木家具表面的保护漆和蜡。

  • 正确的安葬时间(安葬仪式注意什么)

    中国上下五千年传承的传统文化,安葬实则更是一件比较严肃的事,安葬同样需要注意很多的安葬礼仪,安葬仪式也有越多流传下来的门道。现在的安葬方式有很多,我国目前基本都能够普及火葬,然后把骨灰再安葬,火葬后人们一般会选择一个吉日来进行安葬骨灰。在下葬的过程骨灰盒需要黑色的遮阳伞遮挡太阳,因为骨灰在入葬的过程中是不能见阳光的,这样对逝者是不好的,甚至因为一些忌讳会影响到家庭的运势。

  • 新一代千元神机 Redmi Note 9评测

    续航方面,RedmiNote9配备了5000毫安时的大容量电池,这样的电池容量足以满足重度用户的使用需求。总结RedmiNote9在性能方面有着较强的优势,无论是日常使用还是游戏,都有着较为出色的表现。而在价格方面,1299元的起售价格无疑是非常具有竞争力的,千元的价格却带来了中端机型的体验,RedmiNote9有望成为新一代千元神机。

  • 合同纠纷仲裁流程(合同纠纷仲裁三个基本步骤你了解过吗)

    接下来我们就一起去研究一下吧!合同纠纷仲裁流程申请合同纠纷仲裁,首先您应向仲裁委员会提交仲裁申请书写明相关内容,仲裁委员会在收到您的仲裁申请书之日起五日内作出受理或者不予受理的决定。如果决定立案的,自作出决定之日起,五日之内会向您和对方发出相关的书面通知,同时将申请书副本送达对方,并要求其十五日内提交答辩书和证据。在仲裁开始前会先进行调解,调解无果即进行仲裁。

  • 大闸蟹配什么酒(吃大闸大闸蟹配什么酒)

    大闸蟹配什么酒螃蟹不离酒,而这种就多以黄酒为主,黄酒具有调味去腥的作用,和大闸蟹一起吃,能去除大闸蟹的腥味,增加大闸蟹的香味,黄酒中以温热的花雕酒和大闸蟹最为搭配。大闸蟹性寒,这种水生的软甲类食物都含有较多的寒气,在食用之后会明显的增加身体寒气,而白酒是酒中最热的一种,食用之后给人一种温暖火热的感觉,能中和螃蟹中的寒气,对身体有益。

  • 自己查询自己名下的微信号(一键查询名下微信号)

    自己查询自己名下的微信号手机号真的太重要了。资料页显示,一证通查小程序认证主体为中国信息通信研究院,是妥妥的官方机构。今天重点要说第二个按钮「互联网账号」,用于查询你的手机号码注册过哪些互联网账号。据悉,一证通查互联网账号首批支持下面这些互联网平台:注意,既然是首批,那意味着应该会有第二批,第三批......所以这小程序未来肯定会越来越实用,值得收藏一波。

  • 恒温恒湿试验箱降温慢(恒温恒湿试验箱的压缩机温度过高有什么影响)

    恒温恒湿试验箱降温慢编辑|环仪仪器一般来说,恒温恒湿试验箱工作的时候,压缩机会发热。恒温恒湿试验箱一、压缩机温度过高的原因:1.轴瓦与轴颈不匹配,出现不均匀、卡帮或间隙过小的问题。从上面可以看出,恒温恒湿试验箱的压缩机温度过高,会造成设备故障,影响设备的使用寿命,也增加了企业的使用成本。