网站制作推广,单页网站的域名,江安县建设招标网站,网站建设方案的写作方法来源#xff1a;机器之心TensorFlow 决策森林 (TF-DF) 现已开源#xff0c;该库集成了众多 SOTA 算法#xff0c;不需要输入特征#xff0c;可以处理数值和分类特征#xff0c;为开发者节省了大量时间。在人工智能发展史上#xff0c;各类算法可谓层出不穷。近十几年来机器之心 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 提供的一些功能TF-DF 提供了一系列 SOTA 决策森林训练和服务算法如随机森林、CART、LambdaMART、DART 等。基于树的模型与各种 TensorFlow 工具、库和平台如 TFX更容易集成TF-DF 库可以作为通向丰富 TensorFlow 生态系统的桥梁。对于神经网络用户你可以使用决策森林这种简单的方式开始 TensorFlow并继续探索神经网络。代码示例下面进行示例展示可以让使用者简单明了。项目地址https://github.com/tensorflow/decision-forestsTF-DF 网站地址https://www.tensorflow.org/decision_forestsGoogle I/O 2021 地址https://www.youtube.com/watch?v5qgk9QJ4rdQ模型训练 在数据集 Palmers Penguins 上训练随机森林模型。目的是根据一种动物的特征来预测它的种类。该数据集包含数值和类别特性并存储为 csv 文件。Palmers 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, labelspecies)# 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, labelspecies)# 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_idx0)
其中一棵决策树的结构。你可以直观地看到树结构。此外模型统计是对 plot 的补充统计示例包括每个特性使用了多少次模型训练的速度有多快树的数量和时间节点在树结构中是如何分布的比如大多数 branch 的长度这些问题的答案以及更多类似查询的答案都包含在模型概要中并可以在模型检查器中访问。# 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_depth1 means that all trees will be roots. Negative values are ignored. Default: 6. ... # Create another model with specified hyper-parametersmodel tfdf.keras.GradientBoostedTreesModel( num_trees500, growing_strategyBEST_FIRST_GLOBAL, max_depth8, split_axisSPARSE_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未来智能实验室的主要工作包括建立AI智能系统智商评测体系开展世界人工智能智商评测开展互联网城市云脑研究计划构建互联网城市云脑技术和企业图谱为提升企业行业与城市的智能水平服务。 如果您对实验室的研究感兴趣欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”