学习笔记TF043:TF.Learn 机器学习Estimator、DataFrame、监督器Monitors

2023-11-05

线性、逻辑回归。input_fn()建立简单两个特征列数据,用特证列API建立特征列。特征列传入LinearClassifier建立逻辑回归分类器,fit()、evaluate()函数,get_variable_names()得到所有模型变量名称。可以使用自定义优化函数,tf.train.FtrlOptimizer(),可以任意改动传到LinearClassifier。

随机森林。包含多个决策树分类器及回归算法。处理不平衡分类资料集,极大平衡误差。Kaggle数据科学竞赛,延伸版XGBoost。

TensorForestEstimator,tensor_forest.ForestHParams设置随机森林参数,多少棵树、节点数目上限、特征类别数目。

传进TensorForestEstimator初始化随机森林Estimator。数据特征列、类别列转换成float32格式,保证TensorForestExtimator训练更快拟合。Scikit-learn风格fit()方法。

随机森林容易过拟合,常用防止过拟合方法是损失减少的速度变慢或完全停止减少,提前停止模型训练。Monitor模块。random_forest模块自带LossMonitor。设定每隔100步Monitor检查损失减少速度,连续100次迭代损失没有减少,Monitor停止整个模型训练。

K均值聚类。多维空间每个点划分到K个聚类,每个点属于离它最近均值对应聚类。NumPy制造适合做聚类数据。make_random_centers函数随机生成num_dims个维度数据集聚类num_centers个中心点。make_random_points函数根据生成聚类中心点随便生成num_points个点。生成10000个点,6个随机聚类中心点。factorization模块KMeans初始化聚类方法,随机初始化RANDOM_INIT,传入RunConfig和、聚类中心数初始化KMeans Estimator对象,Scikit-learn风格fit()、predict()。KMeans clusters()函数看训练数据集每个点聚类分布。KMeans Estimator,predict()预测新数据点聚类,score()预测每个点和最近聚类距离总和,transform()计算每个点和模型判断聚类中心距离。

支持向量机。各种不同kernel或不同距离方程,针对不同特征数据建立不同线性及非线性模型。同时最小化经验误差与最大化几何边缘区,最大边缘区分类器。文本、图像分类。TF.Learn SVM Extimator API建立支持向量机模型。定义input_fn()建立有两个数据特征列、一个ID列、一个标识列模拟数据。contrib.layers FeatureColumn API 将feature1、feature2转换方便Estimator的FeatureColumn。特征列、ID列传入SVM初始化支持向量机,参数调节。l1_regularization、l2_regularization加正规化防止过度拟合问题(特征过多、例子不多,容易发生)。fit()、predict()。

DataFrame。TF.Learn包括独立DataFrame模块。类似Pandas、Spark、R编程语言DataFrame。提供TF.Learn读入数据迭代,读入各种数据类型(pandas.DataFrame、tensorflow.Example、NumPy),FeedingQueueRunner数据分批读入,存在Queue,方便Estimator模型训练。NumPy eye()建简单对角矩阵,TensorFlowDataFrame.from_numpy()把NumPy矩阵转为TensorFlow DataFrame。可以像Pandas读入各种文件类型。

用TensorFlowDataFrame读入文件或数据类型后,run()制造数据批量(batch)生成器,Python yield生成generator,生成器维持数据列名和数据字典mapping。调节number_batches选择生成batch数量,选择性用自己的graph、session,数据batch存到session coordinator。batch()重新改变batch大小。数据洗一遍打乱顺序。split(),DataFrame分多个。select_rows()选择具体行数据。

监督器Monitors。TF.Learn自带Monitor,各种logging及监督控制训练过程。5个等级log,严重性最小到最大排列,DEBUG、INFO、WARN、ERROR、FATAL。选择只打印设置等级或更严重的log。TensorFlow默认log等级 WARN。模型训练log,设INFO。CaptureVariable 指定变量值存储到Collection。PrintTensor打印Tensor值。SummarySaver存储Summary协议缓冲(Protocol Buffer)。ValidationMonitor训练打印多个评估Metrics,监督模型训练,提前停止训练防止模型过度拟合。

TF.Learn自带learn.datasets.base.load_csv()读入CSV数据文件。定义评估模型metrics字典,contrib.metrics模块streaming_accuracy、streaming_precision、streaming_recall评估模型准确度、精确度、召回率。validation_metrics建立validation_monitor,提供评估数据及目标。提供every_n_steps指示每50步实行ValidationMonitor。validation_metrics传入metrics。early_stopping_netric提前停止监测metric。early_stopping_metric_minimize=True表明最小化前提供early_stopping_metric。early_stopping_rounds表明超过200步训练损失不减少,ValidationMonitor停止Estimator训练。

建立深度神经网络分类器DNNClassifier,三层神经网络,每层10、15、10个隐藏单元。分类器fit()指定监督器validation_monitor,指定多个监督器实现不同功能监督,validation_monitor,debug_monitor,print_monitor。

evaluate()、predict(),新数据评估模型准确度。

TF.Learn生成log及checkpoint文件可以直接读入TensorBoard可视化。

参考资料:
《TensorFlow实战》

欢迎付费咨询(150元每小时),我的微信:qingxingfengzi

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习笔记TF043:TF.Learn 机器学习Estimator、DataFrame、监督器Monitors 的相关文章

随机推荐

  • 如何在Linux下安装vim编辑器

    目前的Ubuntu版本都安装了vi编辑器 vim编辑器可以看做vi编辑器的升级版 可以识别特殊字符 显示不同颜色 目录 第一步 第二步 第三步 第四步 第一步 在terminal里面输入vi命令后按下tab键可以看到当前vi可以执行的命令
  • 算法的时间及空间复杂度

    简介 java系列技术分享 持续更新中 初衷 一起学习 一起进步 坚持不懈 如果文章内容有误与您的想法不一致 欢迎大家在评论区指正 希望这篇文章对你有所帮助 欢迎点赞 收藏 留言 更多文章请点击 文章目录 一 什么是算法 二 算法初体验 案
  • C++ String替换&分割指定字符串

    C String替换 分割指定字符串 1 C String替换指定字符串 C 的string对象提供了replace方法来实现字符串的替换 本文实现对于将字符串中某个字符串全部替换的功能 string replace all string
  • MOOC清华《程序设计基础》第5章:求n的阶乘(用递推法做)

    使用递推思想 求解正整数的阶乘 本算法的数学模型为 n n 1 n include
  • CCF CSP 202206-3角色授权【70分】

    include
  • ts文件服务器端加密,加密ts文件解密

    EXTM3U EXT X VERSION 3 EXT X MEDIA SEQUENCE 0 EXT X ALLOW CACHE YES EXT X TARGETDURATION 13 EXT X KEY METHOD AES 128 URI
  • Linux动态库(.so)搜索路径

    Linux动态库 so 搜索路径 众所周知 Linux动态库的默认搜索路径是 lib和 usr lib 动态库被创建后 一般都复制到这两个目录中 当程序执行时需要某动态库 并且该 动 态库还未加载到内存中 则系统会自动到这两个默认搜索路径中
  • 网站无法访问的一些问题与解决

    最近阿里云的服务器上跑的博客出现了一些问题 上阿里云官网看了一下 原来是忘记续费了 也没给我发邮件 悄摸的给我停了 续费之后 问题依旧 可以使用xshell5进行远程连接 但是在浏览器上不能进行访问 会显示这个 很尴尬 在本地ping主机是
  • cuda异步并行执行

    异步函数使得主机端与设备端并行执行 控制在设备还没有完成前就被返回给主机线程 包括 kernel启动 以Async为后缀的内存拷贝函数 device到device内存拷贝函数 存储器初始化函数 比如cudaMemset cudaMemset
  • simulink中积分环节、惯性环节、比例环节

    第一步 第二步 第三步 注 适当修改参数即可变成所需环节 如下所示 修改为 或者为 抑或
  • hadoop搭建好,启动服务后,无法从web界面访问50070

    在hadoop完全分布式搭建好以后 从主节点启动正常 使用jps查看启动的进程 正常 在几个从节点上使用jps查看 显示正常 但从web上输入下面网址 http 主节点IP 50070 无法正常连接显示 试了若干网上查到的方法 是通过下面方
  • 怎样选择合适的循环体(do&while、while和for)

    我们都知道 循环体可以有五种 while do while for goto和递归 虽然理论上任何循环都可以用其他四种转换 但是因为goto在安全性以及在功能上能够被取代的特点 所以一般不会用到 而递归的特殊性和编写的困难性使递归的登场次数
  • 今天带你体验79毫秒启动一个SpringBoot项目

    大家好 我是雷小帅 今天来个项目实战 先抛一个问题 大家在自己电脑上启动一个 spring boot 项目需要花费多久 根据项目大小和机器环境 花费几秒到几十秒的人应该都有 最近 spring 官方推出了一项技术可以将项目的启动时间缩短到
  • 荒野行动服务器维护啥时好,荒野行动服务器真的极差

    说起 荒野行动 这个游戏 我想大家都不陌生 毕竟这个是在端游吃鸡出现不到三个月的时间 就由网易出品的一款吃鸡手游 可以说这个是第一款吃鸡手游 我玩了快半年的 荒野行动 了 先不说这个游戏咋样 咱们先说一说官网的态度 当真是不想让我们在继续玩
  • Vue2.0与Vue3.0的区别

    Vue2 0 Vue3 0 双向绑定 利用ES5的ApiObject defineProperty 对数据进行劫持 并结合发布订阅模式的方式实现 利用Es6的Proxy 对数据进行代理的方式实现 根节点 根节点只能是一个 根节点可以是多个
  • nginx之反向代理服务器

    本文摘抄自 深入理解Nginx 模块开发与架构解析 反向代理 reverse proxy 方式是指用代理服务器来接受Internet上的连接请求 然后将请求转发给内部网络中的上游服务器 并将从上游服务器上得到的结果返回给Internet上请
  • QGuiApplication底层鼠标处理(一)使用QSocketNotifier建立侦听连接

    QGuiApplication底层鼠标处理 一 使用QSocketNotifier建立侦听连接 读取外设信息 建立外设连接 init plugins QEvdevMousePlugin QEvdevMouseManager QEvdevMo
  • vmware 最近 win10 更新补丁后,需要更新后才能使用

    preface 最近准备换工作 在搭建自己的项目 一直未更新博文 等到 稳定后就把 项目流程 相关 发布出来 项目都是 搭建在 vmware 的 centos 中 尴尬的是 昨天 vmware 不能打开了 不能打开并且提示需要更新 vmwa
  • Unity实现UI在屏幕边缘跟随并指向视野外敌人

    最终效果 实现 心急的小伙伴可以直接跳到文章末尾查看最终代码 如果有问题再来看下思路 首先我们需要确定实现思路 我想到的方案是将玩家和敌人的世界坐标转换为UI坐标 然后求玩家和敌人坐标的线段与Canvas边界的交点即为箭头坐标 下面是求出交
  • 学习笔记TF043:TF.Learn 机器学习Estimator、DataFrame、监督器Monitors

    线性 逻辑回归 input fn 建立简单两个特征列数据 用特证列API建立特征列 特征列传入LinearClassifier建立逻辑回归分类器 fit evaluate 函数 get variable names 得到所有模型变量名称 可