1. tensorFlow的基本操作
(1) 优势
1)高度的灵活性、支持python语言开发、可视化效果好、功能更加强大、运行效率高、强大的社区。
2) 适用于多个CPU/GPU组成的分布式系统中。
(2)计算图模型
Tensorflow是一种计算图模型,即用图的形式来表示运算过程的一种模型
1) 图的构建
图的构建阶段也称为图的定义阶段,该过程会在图模型中定义所需的运算,每次运算的的结果以及原始的输入数据都 可 称 为一个节点(operation ,缩写为op)。该过程并没有执行运算,只是定义了运算。
2) 图的执行
图的执行阶段,也就是在会话(session)中执行图模型中定义好的运算。
方式一:
首先通过“tf.session()”启动默认图模型,再调用run()方法启动、运行图模型,传入上述参数result,执行矩阵的加法,并 打印出相加的结果,最后在任务完成时,要记得调用close()方法,关闭会话。
方式二:
把session写成如程序3所示“with”代码块的形式,这样就无需显示的调用close释放资源,而是自动地关闭会话。
此外,我们还可以利用CPU或GPU等计算资源分布式执行图的运算过程。一般我们无需显示的指定计算资源, Tensorflow 可 以自动地进行识别,如果检测到我们的GPU环境,会优先的利用GPU环境执行我们的程序。但如果我们 的计 算机中有多于一 个可用的GPU,这就需要我们手动的指派GPU去执行特定的op。如下程序4所示,Tensorflow中 使 用with…device语句来指定GPU或CPU资源执行操作。
上述程序中的“tf.device(“/gpu:2”)”是指定了第二个GPU资源来运行下面的op。依次类推,我们还可以通 过“/gpu:3”、“/gpu:4”、“/gpu:5”…来指定第N个GPU执行操作。
2. IMDB数据集探索
3. THUCNews数据集探索
4. 召回率、准确率、ROC曲线、AUC、PR曲线基本概念
A: (搜到的也想要的)
B:检索到的,但是不相关的 (搜到的但没用的)
C:未检索到的,但却是相关的 (没搜到,然而实际上想要的)
D:未检索到的,也不相关的 (没搜到也没用的)
1) 召回率(查准率):系统检索到的相关文件 / 系统所有相关的文件总数
2)准确率(查全率):系统检索到的相关文件 / 系统所有检索到的文件总数
注意:准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。所以,在两者都要求高的情况下,可以用F1来衡量。
F1 = 2* P * R / (P + R)
3)ROC曲线与AUC:
True Positive Rate ( TPR ) = TP / [ TP + FN] ,TPR代表能将正例分对的概率
False Positive Rate( FPR ) = FP / [ FP + TN] ,FPR代表将负例错分为正例的概
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve。
用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏
于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。
5) PR曲线:
即为: 查准率-查全率曲线
这两者是一对矛盾的度量,查准率可以认为是”宁缺毋滥”,适合对准确率要求高的应用,例如商品推荐,网页检索等。查全率可以认为是”宁错杀一百,不放过1个”,适合类似于检查走私、逃犯信息等。
若一个学习器的P-R曲线被另一个学习器完全”包住”,则后者的性能优于前者。当存在交叉时,可以计算曲线围住面积,但比较麻烦,平衡点(查准率=查全率,BEP)是一种度量方式。