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

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

,
    推荐阅读
  • 至今未嫁5位大龄女港星(只有他独自老去)

    香港明星耐老都快成了铁律。但最近大家发现有一个人摆脱了港星驻颜有术的大道,独自发胖变形。对于这种惊天的变化,网友表示这是渣男的报应。后来跟黄祖儿恋爱,却在拍《陀枪师姐》时猛追滕丽名,单方面宣布与黄祖儿早已分手。07年,他与相恋9年的滕丽名分手,下一年迎娶小自己20岁的张利华,但被媒体爆料劈腿。最难以置信的是,他还在婚后发短信求滕丽名复合,也是很难懂了。了解了这些,难怪网友这么对待魏骏杰。

  • 南康家具产业介绍(江西南康家具与抖音加强合作)

    400余名江西南康抖音家具人参加了此次培训,培训特别邀请到了抖音电商赣州区域服务商负责人、念上家CEO张龙,抖音家居电商官方小二,巨量引擎家居行业高级优化师团队现场分享实操经验。未来,江西南康家具也将通过与抖音服务商的紧密合作,不断传输技能,获取政策、流量支持,为企业助力,为厂家引流,为产业赋能,开启一条别样的家具营销之路。

  • 青羊货车审车时间规定(这些重点车辆该验车或办理注销啦)

    宽城交警提醒以下车辆车主,您的爱车该进行年检或办理注销业务了,如在规定期间内没有进行年检或办理注销业务,将收到下列处罚。面包车逾期未年检车辆名单面包车车达到报废标准名单宽城交警提醒广大车主:如果机动车连续三个检验周期未参加安全技术检验,机动车将达到报废标准无法检验,名下有逾期未检验或者有达到报废标准的重点车辆将限制办理车驾管业务。

  • 可不可以只用苹果和鸡蛋做美食(苹果里加2个鸡蛋)

    苹果,我们日常生活中的一种水果,不仅可以饱腹减肥,而且还具有养颜美容的功效,经常食用苹果,对我们人体也是非常的好。将洗干净的苹果放在案板上面用刀切成薄厚均匀的苹果片,切好之后再将其改刀切成均匀的苹果丝。将糯米粉和苹果碎丁充分的搅拌至融合在一起。一道美味的苹果饼就制作完成了。

  • 楼下女友请签收有多少集(进来看看)

    接下来我们就一起去研究一下吧!楼下女友请签收有多少集36集。《楼下女友请签收》是由明焱执导,王冠逸、徐好领衔主演的都市情感剧。该剧讲述了为了赚钱维持家乡黄梅剧团的龙套演员温小暖被雇佣扮演安宁文化CEO叶非墨的暗恋者之后,二人“假戏真做”成为真实爱侣的故事。

  • 三十岁关之琳惊艳美照(香港美女图鉴二)

    她的父亲关山,首位国际华人影帝。母亲张冰茜,长城邵氏当红女演员。而这样天赐美貌的幸运,并没有因为她成年而逐渐消失。而这场荒唐的儿戏只维持了5个月。彼时成龙林凤娇新婚,一时间,关之琳的出场又引来议论纷纷。她需要别人为她做决定逃避,逃避自己对自我人生的全责。当时,陈美琪已经有孕在身,在丈夫出轨与小三挑衅之下,最终以胎儿流产、不能再生育告终。

  • 就让冷冷的晚风轻轻带走我的痛(就让秋风吹走我的思念)

    凉风有信,秋月无边。秋天,是四季中最有味道的季节。橘绿橙黄,麦浪起舞,是秋的诗意。田野清风,瓜果飘香,是秋的美味。萧条中有暖意,斑斓中有明朗,宁静中有热烈。秋的景色让人沉醉,而秋的情思却各有风味。从前,人们对一声虫鸣、一片叶子的变化都十分敏感。如今,人们只是靠着日历去记录岁月的更替。落叶知秋,微风徐徐,所有的美好也会不期而至。上天无法给每个人一样的生活,但会给每个人一样美好的秋天!

  • 奶瓶保质期能用多久(奶瓶会过期吗多久要更换)

    很多新手妈妈长期用一个奶瓶给孩子喂奶,却不知道奶瓶也是有“保质”期的,并不可以长期使用!目前市面上的奶瓶主要有三种,玻璃奶瓶、不锈钢奶瓶和塑料奶瓶。建议要每隔一段时间就要更换奶瓶,不管到没到保质期。要预防吃奶时,奶瓶破裂会伤到宝宝。

  • 魔兽世界怀旧服buff获取顺序(魔兽世界怀旧服世界buff怎么获得)

    魔兽世界怀旧服世界buff怎么获得魔兽世界怀旧服世界buff有哪些?怀旧服中有许多非常强势的世界buff,可以为玩家提供属性加成一段时间,那么游戏中世界buff有哪些呢,获取方法是什么呢,下面就跟小编一起来看看吧魔兽世界怀旧服世界bu。

  • 卜算子是词牌名吗(卜算子属于词牌名吗)

    卜算子,词牌名,又名“卜算子令”“百尺楼”“眉峰碧”“楚天遥”等。以苏轼《卜算子·黄州定慧院寓居作》为正体。另有双调四十四字,前后段各四句、三仄韵;双调四十五字,前段四句两仄韵,后段四句三仄韵等变体。代表作品有陆游《卜算子·咏梅》。