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

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、把打印机与电脑主机USB接口连接上。

  • 懒癌拖延症(拖延症懒癌患者)

    但过去以为学习不积极是因为自己学渣,长大后才发现,拖延症早就和脱发、熬夜一样,成为号称佛系青年难以根治的顽疾,即使离开校园,我们依旧难逃它的魔爪。拖延症的摧毁力,比学生时期强太多了。保存即可做手机壁纸哦19.如果你又拖延症,那就不要把自己的成功归于自身,把自己的失败归于环境。

  • 老鼠一般躲在家里什么地方(老鼠一般躲在家里什么地方图片)

    老鼠一般躲在家里的下水道、厕所、厨房。老鼠的嗅觉很灵敏,尤其对人的气味更是熟悉。只要一闻到便远远地避开。它们的巢同样在不为人知的地方,从来不会受到干扰。凭嗅觉就知道哪里有什么,夜间出来活动,白天藏匿,智商高,相当机灵,怕人,活动鬼鬼祟祟。

  • 闯关东片尾曲(闯关东简介)

    下面希望有你要的答案,我们一起来看看吧!闯关东片尾曲《闯关东》片尾曲是《家园》。《闯关东》是由山东电影电视剧制作中心与大连电视台投资近3000万联合拍摄。由王敏总策划,张新建、孔笙执导,高满堂、孙建业编剧,李幼斌,萨日娜,小宋佳,朱亚文领衔主演的电视剧。

  • 5s管理ppt模板(221014-办公室5S管理制度PPT模板)

    221014-办公室5S管理制度PPT模板,。

  • 什么是复共轭相乘?(复共轭相乘什么意思?)

    复数表示为a+bi,a为实部b为虚部共轭复数为a-bi实部不变,虚部变号即为共轭复数,下面我们就来说一说关于什么是复共轭相乘?我们一起去了解并探讨一下这个问题吧!共轭复数为a-bi实部不变,虚部变号即为共轭复数。比如3-2i的共轭复数就是3+2i,共轭相乘=3^2+2^2=13。虚部相反,如果虚部为零,其共轭复数就是自身。

  • 刺客信条这才是该有的样子(袖剑之下众生平等)

    因为刺客信条系列的主要剧情就是现代主角通过animus等机器读取先祖的记忆,所以这个合集叫做基因序列包。这个合集的内容包括了从初代到奥德赛黄金版的全部作品,平时价格将近两千,打折时三百多。现代剧情是披着abstergo跨国公司外皮的现代圣殿骑士为了查清能够控制人类心智的伊甸苹果的下落,绑架了脱离刺客组织的男主戴斯蒙,强迫他进入机器animus并读取祖先阿泰尔关于金苹果的记忆。