- 最喜欢随机森林?周志华团队DF21后,TensorFlow开源决策森林库TF-D
- 来源:机器之心
机器之心报道机器之心编辑部
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、(Lambda)MART、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?v=5qgk9QJ4rdQ
模型训练
在数据集 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 的补充,统计示例包括:
每个特性使用了多少次?模型训练的速度有多快(树的数量和时间)?节点在树结构中是如何分布的(比如大多数 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_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
2021 字节跳动 Byte Camp 夏令营
与李航、月影等技术大咖交流;公司承担食宿、培训等所有费用;35万元奖金池。
作为字节跳动每年一度的技术品牌活动,夏令营正在面向全球公开招募120高校在校生一起做有挑战的事!夏令营将采取「对话大咖+项目实战」的形式,带领营员和技术大咖面对面沟通学习,深入了解领域前沿知识,掌握关键能力。
公司将承担食宿、培训等所有费用,并为表现优异的同学提供奖学金,进行长期关注和资源支持,助力营员在专业领域做出更大突破。
报名通道将于6月10日关闭,快戳长图扫描二维码了解报名详细!!
© THE END 转载请联系本公众号获得授权投稿或寻求报道:content@jiqizhixin.com
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、(Lambda)MART、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?v=5qgk9QJ4rdQ
模型训练
在数据集 Palmer's Penguins 上训练随机森林模型。目的是根据一种动物的特征来预测它的种类。该数据集包含数值和类别特性,并存储为 csv 文件。
模型训练代码:
# 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 的补充,统计示例包括:
每个特性使用了多少次?模型训练的速度有多快(树的数量和时间)?节点在树结构中是如何分布的(比如大多数 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_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
2021 字节跳动 Byte Camp 夏令营
与李航、月影等技术大咖交流;公司承担食宿、培训等所有费用;35万元奖金池。
作为字节跳动每年一度的技术品牌活动,夏令营正在面向全球公开招募120高校在校生一起做有挑战的事!夏令营将采取「对话大咖+项目实战」的形式,带领营员和技术大咖面对面沟通学习,深入了解领域前沿知识,掌握关键能力。
公司将承担食宿、培训等所有费用,并为表现优异的同学提供奖学金,进行长期关注和资源支持,助力营员在专业领域做出更大突破。
报名通道将于6月10日关闭,快戳长图扫描二维码了解报名详细!!
科技
-
-
- 线下展会,市民畅享科技大餐
- 5月28日,是2021中国国际大数据产业博览会线下展最后一天,也是免费向市民开放的公众日。趁此机会,记者继续带您探秘国际综合馆(W1馆)、数字应用馆(W2馆)、前沿技术馆(E1馆)、智慧产业馆(E2馆)4...
- 贵阳晚报
-
-
-
- 为何新药研发、基因测序、卫星遥感的发展提速都需要它?
- 人类第一次完整全基因组的测序花了13年,在新技术的加持下,这个时间已经降低到1天以内;没有这项新技术加持,电影《阿凡达》的渲染可能需要上万年;这项新技术还让新药的研发周期大幅缩短,让卫星遥感定位精度...
- 华为
-
-
-
- 大型金属3D打印厂商钢研极光亮相TCT,展示强大的生产服务能力
- 2021亚洲3D打印、增材制造展览会 (TCT Asia)于2021年5月26日-28日在国家会展中心(上海)7.1馆隆重举办。作为官方战略合作媒体,南极熊将会全程现场报道(地址https://www.nanjixiong.com/foru
- 南极熊3D打印
-
-
-
- 美国国家情报委员会《全球趋势2040——竞争更激烈的世界》报告摘译
- 2021年3月,美国国家情报委员会(NIC)发布了每四年一度的全球趋势预测报告《全球趋势2040——竞争更激烈的世界》。NIC是美国最高层级的战略情报机构,该委员会的成员均为来自政府、学术界和私营部门的高级专家...
- 全球技术地图
-
-
-
- 数字让监管更加智慧 上交所成功举办首届全行业技术大会
- 5月28日,上交所成功举办主题为“数字赋能,守正创新”的首届全行业技术大会。中国证监会副主席赵争平出席大会并致辞指出,证监会高度重视资本市场科技化转型与发展,确定了“数字让监管更加智慧”的愿景。...
- 上海证券报
-
-
-
- 湾区智行||中科创达赵鸿飞:汽车“新物种”需要共通的操作系统|中国汽车报
- “我是谁?我来自哪里?我要到哪里去?”这是哲学史上永恒的三大命题,同样也是我们甚至是企业需要不断思考的问题。此次采访对象——中科创达软件股份有限公司就是一家勤于思考、擅于思考的企业。这家企业在不断...
- 中国汽车报
-
-
-
- 广电总局表彰虚拟现实视频、超高清视频等5类96个优秀项目!
- 广电总局共评选出互动视频、沉浸式视频、虚拟现实视频、云游戏、超高清视频等5类96个优秀项目,分获一、二、三等奖和优秀奖,包括《中央广播电视总台5G+VR融合制播系统——春节联欢晚会 (2017- 2021)节目VR制作...
- 广电头条
-
-
-
- 占据市场最新赛道,“中国制造”机器人迎来爆发期
- 【环球时报记者 邢晓婧 杨沙沙】配餐机器人、迎宾机器人、扫地机器人……不知不觉间,中国老百姓对出现在餐馆、医院、火车站、养老院等场景的机器人逐渐习以为常,甚至家中也出现扫地、娱乐等家用机器人。有统计...
- 环球网
-
-
-
- 最受关注展项出炉,2021年北京科技周闭幕不落幕!
- 5月28日下午,2021年北京科技周闭幕式在中关村国家自主创新示范区展示中心举行。北京市科委、中关村管委会相关负责人介绍了本届北京科技周举办情况以及最受关注的展项。市科委、中关村管委会二级巡视员王建新出...
- 科普北京
-
-
-
- 魔高一尺,道高一丈:上交所VPN攻防札记
- 本文选自《交易技术前沿》总第四十二期文章(2020年12月)谢毅 / 上海证券交易所 yxie@sse.com.cn相晓辉 / 上海证券交易所 xhxiang@sse.com.cn虚拟专用网络(以下简称“VPN”)系统、互联网业务系统、外网
- Android编程精选
-
-
-
- 绿色召集令——聚力创赢,共赴绿色能源新征程!
- 申耀的科技观察读懂科技,赢取未来!申耀的科技观察,由科技与汽车跨界自媒体人申斯基创办,18年企业级科技媒体工作经验,专注企业数字化、产业智能化、智慧城市、汽车科技内容的观察和思考。
- 申耀的科技观察
-
-
-
- 汉朔科技和微软(中国)联合推动 IoT+AI 赋能全球零售
- (本文阅读时间:4分钟)2021年5月20日,全球领先的零售数字化解决方案供应商汉朔与微软(中国)在北京举行战略合作备忘录签约仪式,以进一步推动其在零售行业的全球布局和数字化战略。根据战略合作备忘录,汉朔...
- 微软科技
-
-
-
- 关于安全访问服务边缘(SASE),你需要知道的事情
- 在企业纷纷拥抱数字业务的过程中,由于边缘计算、云服务、混合网络的逐渐兴起,使得本就漏洞百出的传统网络安全架构更加岌岌可危,而且远远无法满足企业数字业务的需要。为了应对这种情况,一个全新的模型——安...
- FreeBuf
-
-
-
- [报告]2021年中国新能源汽车行业洞察(附44页PDF文件下载)
- 新能源车大势将至,造车新势力差异化突围。以下为报告节选:......文│Mob研究院本报告共计:44页。如欲获取完整版PDF文件,请扫描下方二维码加入“车友圈”获取。#重磅推荐#需要批量下载和及时更新最新汽车行业...
- 汽车之地
-