机器学习常考面试题总结(一)

机器学习方面常考的面试题总结,随时更新,参考了一些博客和书籍,力求简单易懂。第一部分主要介绍LR和决策树两个简单的模型。第二部分介绍SVM相关,第三部分介绍boosting、隐马模型,第四部分介绍特征选择与计算学习理论,第五部分介绍无监督学习与强化学习。

TensorFlow 学习笔记(一) 数据流图

一、 数据流图

1. 数据流图

数据流图是 TensorFlow 中定义计算结构的有向图。
1). 节点以圆圈、椭圆、方框(图形)表示,代表运算。
2). 边以箭头表示,代表向 Operation 传入和从 Operation 传出的实际数值(输入与输出)。
3). input 节点不是可有可无的,其可以隐藏重复使用的细节,对输入的操作进行抽象。

2. 节点的依赖关系

1). 如果节点 a 需要来自节点 b 的输出,那么节点 b 就是节点 a 的依赖节点。
2). 直接依赖与间接依赖
3). TensorFlow 中不允许存在循环依赖,主要原因在于循环依赖会在 TensorFlow 的运算中将依赖节点的数量变为无穷大,导致被传递的值变为正无穷,负无穷或者无限接近于0.
4). 数据流图的展开与节点依赖:
TensorFlow 中为每个节点的直接(非间接)依赖节点维护一个列表。从一个空栈开始,每遇到一个必须得到执行的节点就令其入栈,然后查看该输出节点的依赖节点列表,将其全部入栈。然后对这些节点进行检查,查看其直接依赖节点,然后将他们全部入栈,不断重复知道数据流图中所有依赖节点均已入栈。利用这种栈结构可以保证获得运算该数据流图的所有节点而且只包含必须运算的节点。同时对节点进行排序保证了必要的运算顺序。

3. 在 TensorFlow 中定义数据流图

使用 TensorFlow 的核心就是创建和定义数据流图。

二、TensorFlow 对象

  1. Tensor (箭头,输入输出)
  2. Operation (图形,运算)
  3. Graph
  4. Variable

三、构建和使用数据流图

pyspider 爬虫使用与解析

pyspider 是一个实时爬虫框架,提供了强大的调度控制,支持分布式部署,Docker 部署,提供可替换组建,可以使用任何html解析包(内置 pyquery)。

同时 pyspider 还提供了一套WEB客户端工具,在WEBUI中可以编写,调试脚本,监控实时状态,download抓取结果,dashboard 中对 task 进行管理。(localhost:5000)

Word2Vec 4 Python

Word2Vec 为Tomas Mikolov 在 Google 带领的研究团队创造。主要是用神经网络训练词库模型。Word2Vec 通过对语料的神经网络训练,将词转化为n维向量,最重要的是与简单的的 Bag Of Words 模型不同,Word2Vec 模型形成的向量每一维度值的大小具有特定意义,可以表示词与词之间的关系。

本文主要简单讲解 Word2Vec 模型在 Python 中的具体使用。