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

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

,
    推荐阅读
  • 联想拯救者y700平板最大尺寸(联想拯救者Y700游戏平板测评)

    同时曲线波动极小,宛如直线。正因散热系统的强大,联想拯救者Y700游戏平板以骁龙870做到了媲美骁龙8旗舰手机的游戏表现。另外,联想拯救者Y700游戏平板键盘输入法打字过程中的振动反馈干脆利落,十分好评。续航方面,联想拯救者Y700游戏平板内置了一块6550mAh的大容量电池,能够连续畅玩游戏长达6小时或者在线观剧12小时。总的来说:联想拯救者Y700游戏平板是一款携带便捷、性能强劲的专业游戏产品。

  • 土豆炸酱面酱料怎么做好吃(土豆酱的做法)

    土豆炸酱面酱料怎么做好吃用料:肉丁200g、土豆1个、豆瓣酱3汤匙、老抽1汤匙、油3汤匙、葱姜几片八角1个、黄瓜、豆芽、胡萝卜。大火烧开,加一个八角,转中火炖至土豆熟烂,汤汁粘稠即可;把煮熟的面条盛入碗中,加入土豆炸酱,码入黄瓜,豆芽,胡萝卜拌匀即可。

  • 信用卡的钱可以转到储蓄卡上吗?(信用卡的钱可以转到储蓄卡上)

    跟着小编一起来看一看吧!信用卡转账到储蓄卡,并不等同于借记卡之间的转账,信用卡转账相当于提现,是要收取手续费的,并且转账是有限额的。所以信用卡转账单储蓄卡并不是一桩对自己有利的生意,最好不要转账。

  • 太赫兹的功效与作用(太赫兹的功效与作用是什么)

    太赫兹技术在生物医学方面的应用,生物大分子相互作用是重大生命现象与病变产生的关键动因,而太赫兹光子能量覆盖了生物大分子空间构象的能级范围。另外,世界范围内引起社会动荡的自杀式炸弹恐怖袭击,也可以利用THz安检设备进行防范。因为站岗的可以不再是士兵或保安人员,而是THz安检仪,人们不需要靠近可疑分子就可以对其进行检查。

  • 电路设计选择电阻时,需要考虑电阻以下哪些因素(电阻选型考虑哪些因素)

    如果没有特定的性能要求,厚膜电阻通常是首选。保持电流是指PTC热敏电阻绝对“短路”时的电流,而跳闸电流是指PTC热敏电阻绝对“开路”时的电流。这是因为制造商选择了电阻率受温度影响不大的材料。主要是由于制造材料的原子的活动引起的材料电阻率的变化。因此,它们将具有称为电抗的属性,类似于电阻,但取决于通过组件的交流信号的频率。

  • 电脑录屏如何录制和原声(电脑录制方法)

    有的录屏工具仅能录制屏幕而不能录制声音,而有的工具能同时录制屏幕和声音,但是对录制声源有限制。前几天同事要进行产品演示视频录制,找我咨询有什么好用的录屏工具。正常情况下,Windows10系统录制视频的快捷键是“WinG”,但为了满足大众的录屏各种需求,这里介绍另一种更有效的方式录屏。第五步、点击方块按钮后停止录制,在弹出的窗口中点击前往导出文件夹浏览文件吧!

  • 四不放过是指哪四个(四不放过是什么意思)

    四不放过是指哪四个四不放过是指事故原因未查清不放过、责任人员未处理不放过、整改措施未落实不放过、有关人员未受到教育不放过。事故处理的“四不放过”原则是要求对安全生产工伤事故必须进行严肃认真的调查处理,接受教训,防止同类事故重复发生。处理工伤事故时,必须使事故责任者和大众了解到事情的严重性,从中吸取教训,在今后的工作中更加重视安全工作。

  • 65英寸哪个品牌电视好(2022年65英寸电视怎么选)

    左右声道2×12.5W,4个发声单元2个风管,支持杜比视界,杜比全景声。同时拥有92%DCI-P3广色域,8ms响应时间,获得莱茵低蓝光、无频闪认证双重护眼。此外,华为智慧屏S采用4*10W扬声器单元方案,搭载1L独立大音腔,具有2个全频喇叭2个高音喇叭,支持杜比解码,DTS解码。音频为20W扬声器,DTS音效后处理。此外还有MEMC,混合调光技术,自然光技术,以及NFC贴纸一碰投屏,以及12米免遥控声控。

  • 西餐的用餐礼仪(西餐礼仪之点餐顺序)

    通常水产类菜肴与蛋类、面包类、酥盒菜肴品均称为副菜。熟食的蔬菜通常是与主菜的肉食类菜肴一同摆放在餐盘中上桌,称之为配菜。

  • 王者荣耀英雄怎么获得荣耀(送给爱玩的你)

    王者荣耀英雄怎么获得荣耀?以下内容大家不妨参考一二希望能帮到您!王者荣耀英雄怎么获得荣耀多练习,段位是一个人技术的体现,你既然要想上王者,那就要有过硬的技术,而且最好多会几路,英雄池深一点。排位遇到的人太不稳定了,在王者荣耀中想要选出更好的阵容,想打上更高的段位,那么我们就要有一颗的心,当团队中缺少什么位置时,我们就应该去当上一个补位。寻找固定的队友,这样对上星有很大的帮助。