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

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

,
    推荐阅读
  • 少年时期的林更新(一代美男林更新)

    但没想到,这次林更新的表现让飘飘隐隐感觉到,其实这是个“表里不一”的男人。刚开始林更新也没逃脱《奇葩说》嘉宾的一贯命运——被套路。最新一期,林更新学会了先发制人,让蔡康永猜东北话的意思。这两期赛制升级,现场请来的,都是跟辩题息息相关的观众。消解帅气,一下帮林更新快速打破了偶像的牢笼。仅仅当个白月光,显然不是林更新的追求。这选本子的眼光,足见林更新的果敢和先见。

  • 乳房最好什么时候开始发育(女孩的乳房何时发育)

    王老师领着女儿来咨询,小姑娘已经16岁了,可是胸前还是平平的,一点发育的迹象也没有,小姑娘不急,可把她老娘急坏了,反复问女孩子乳房什么时候开始发育?一般月经已经来潮或者很快就要来潮了。女孩子自7-8岁开始,女孩身体各系统逐渐发育。约2年后,在卵巢激素、垂体激素和胰岛素的共同作用下,乳房开始发育。乳房发育的年龄也有个体差异,平均为10.8-11.4岁。如果超过16岁乳房仍未发育,应警惕是否性发育迟缓或卵巢发育不良。

  • 吃鸡战场怎么得到一个新皮肤 吃鸡有没有出新皮肤

    玩家只需通过正常游戏就可以或许通行证经验,这也是最简单的方法。

  • 明日方舟SN-S-5怎么打 明日方舟sv-5怎么过

    明日方舟SN-S-5怎么打?明日方舟SN-S-5怎么打艾雅法拉(二技能),伊芙利特(二技能),灵知(一技能),能天使(三技能),克洛丝(一技能),W(二技能),白面鸮(二技能),安洁莉娜(一技能)摆放顺序和方向:灵知(→),能天使(↑),克洛丝(↓),W(→),伊芙利特(↑),艾雅法拉(↓),白面鸮(↓),安洁莉娜(↓)更多相关资讯攻略请关注:明日方舟专题

  • 病灶什么意思(怎么理解病灶的意思)

    机体上发生病变的部分如肺的某一部分被结核菌破坏,这部分就是肺结核病灶一个局限的、具有病原微生物的病变组织,就称为病灶,我来为大家科普一下关于病灶什么意思?如肺的某一部分被结核菌破坏,这部分就是肺结核病灶。病灶一般是以慢性炎症的形式存在,它可以是静止的,也可能是活动性的感染“基地”,它们就像“匪穴”一样,隐藏在体内的某一个“角落”或部位,里面窝藏着致病的细菌或其他病原微生物。

  • 汽车空调风扇声音大是怎么回事(汽车空调风扇声音大的原因)

    接下来我们就一起去了解一下吧!汽车空调风扇声音大是怎么回事可能是排风扇叶子变形,或者排风扇的马达损坏,或者空调里面的赃物过多,导致风扇叶片转动不灵活。根据以上原因,需要考虑更换排风扇或者清洗空调。还有一种可能是压缩机轴承损坏,打开空调后,磁头和轴承吸合在一起运转,带动压缩机内部工作,这样有了负荷时噪音就更加大。一般情况下对损坏的配件进行更换即可。

  • 大蒜头能和芋头一起吃吗(大蒜头芋头能否一起吃)

    芋头又称芋、芋艿,天南星科植物的地下球茎,形状、肉质因品种而异,通常食用的为小芋头。叶片盾形,叶柄长而肥大,绿色或紫红色;植株基部形成短缩茎,逐渐累积养分肥大成肉质球茎,称为“芋头”或“母芋”,球形、卵形、椭圆形或块状等。母芋每节都有一个脑芽,但以中下部节位的腋芽活动力最强,发生第一次分蘖,形成小的球茎称为“子芋”,再从子芋发生“孙芋”,在适宜条件下,可形成曾孙或玄孙芋等。

  • 仓库管理的基本方法和原则(如何提高仓库操作管理效率)

    如何提高仓库操作管理效率1.优化管理文件和标准是SOP作业指导书2.合理的仓库布局3.仓库定点定位管理4.减少仓储管理8大浪费5.坚守仓库5项基本原则6.熟悉产品物料,做好目视管理7.做好仓库5S管理,保持物流通道畅通8.做。

  • 金桔炖冰糖一天吃多少合适(金桔炖冰糖一天食用的量)

    接下来我们就一起去研究一下吧!虽然金桔熬冰糖的营养价值比较高,适量食用具有一定止咳化痰、生津开胃的作用,但由于金桔熬冰糖中同样含有大量的糖分物质,过量食用可能会导致人体肥胖,不利于人体健康,所以建议一天食用3-4颗左右的冰糖即可。

  • 过敏性鼻炎容易治好吗(过敏性鼻炎能根治)

    过敏性鼻炎原因多后天环境和饮食最难缠耳鼻喉科医师李俊弘表示,引发过敏性鼻炎的原因很多,除了先天性的遗传基因之外,后天生活型态和环境更是导致疾病反覆发作的幕后黑手!以国内来说,尘螨是最大的捣乱者,只要下雨或环境湿度偏高,尘螨活动力增加,相对就会提高过敏性鼻炎发作的风险。预防胜于治疗,李俊弘医师提醒,季节交替之际或冷天爬出被窝,突然接触冷空气时配戴口罩,减少呼吸道不适和过敏性鼻炎的发作风险。