第五周(web,machine learning笔记)

时间:2022-05-08 01:32:29

2019/11/2

1、    表现层状态转换(REST, representational state transfer.)一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。表现层状态转换是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。符合或兼容于这种架构风格(简称为 REST 或 RESTful)的网络服务,允许客户端发出以统一资源标识符访问和操作网络资源的请求,而与预先定义好的无状态操作集一致化。因此表现层状态转换提供了在互联网络的计算系统之间,彼此资源可交互使用的协作性质(interoperability)。

REST是设计风格而不是标准。REST通常基于使用HTTPURI,和XML以及HTML这些现有的广泛流行的协议和标准。

  • 资源是由URI来指定。
  • 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
  • 通过操作资源的表现形式来操作资源。
  • 资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式,例如JSON。

REST架构风格最重要的架构约束有6个[2]

  • 客户端-服务器(Client-Server)

客户端-服务器结构约束的目的是将客户端和服务器端的关注点分离. 将用户界面所关注的逻辑和数据存储所关注的逻辑分离开来有助于提高用户界面的跨平台的可移植性.通过简化服务器模块也有助于服务器模块的可扩展性.

  • 无状态(Stateless)

服务器不能保存客户端的信息, 每一次从客户端发送的请求中, 要包含所有的必须的状态信息, 会话信息由客户端保存, 服务器端根据这些状态信息来处理请求. 服务器可以将会话状态信息传递给其他服务, 比如数据库服务, 这样可以保持一段时间的状态信息, 从而实现认证功能. 当客户端可以切换到一个新状态的时候发送请求信息. 当一个或者多个请求被发送之后, 客户端就处于一个状态变迁过程中. 每一个应用的状态描述可以被客户端用来初始化下一次的状态变迁.

  • 缓存(Cacheability)

如同万维网一样, 客户端和中间的通讯传递者可以将响应缓存起来. 响应必须明确的或者间接的表明本身是否可以进行缓存,这可以预防客户端在将来进行请求的时候得到陈旧的或者不恰当的数据. 管理良好的缓存机制可以 减少客户端-服务器之间的交互, 甚至完全避免客户端-服务器交互, 这进一步提了高性能和可扩展性。

  • 统一接口(Uniform Interface)

统一接口是 RESTful 系统设计的基本出发点. 它简化了系统的架构, 减少了耦合性, 可以让所有模块各自独立的进行改进. 对于统一接口的四个约束是:

  • 请求中包含资源的 ID (Resource identification in requests )

请求中包含了各种独立资源的标识, 例如, 在 Web 服务中的 URIs. 资源本身和发送给客户端的标识是独立. 例如, 服务器可以将自身的数据库信息以 HTML XML 或者 JSON 的方式发送给客户端, 但是这些可能都不是服务器的内部记录方式.

  • 资源通过标识来操作(Resource manipulation through representations)

当客户端拥有一个资源的标识, 包括附带的元数据, 则它就有足够的信息来删除这个资源.

  • 消息的自我描述性(Self-descriptive messages)

每一个消息都包含足够的信息来描述如何来处理这个信息. 例如, 媒体类型 (midia-type) 就可以确定需要什么样的分析器来分析媒体数据.

  • 用超媒体驱动应用状态 ( Hypermedia as the engine of application state (HATEOAS))

同用户访问 Web 服务器的 Home 页面相似,当一个 REST 客户端访问了最初的 REST 应用的 URI 之后, REST 客户端应该可以使用服务器端提供的链接,动态的发现所有的可用的资源和可执行的操作.随着访问的进行, 服务器在响应中提供文字超链接, 以便客户端可以得到当前可用的操作. 客户端无需用确定的编码的方式记录下服务器端所提供的动态应用的结构信息.

  • 分层系统(Layered System)

客户端一般不知道是否直接连接到了最终的服务器, 或者是路径上的中间服务器. 中间服务器可以通过负载均衡和共享缓存的机制提高系统的可扩展性,这样可也便于安全策略的部署.

  • 按需代码(Code-On-Demand,可选)

服务器可以通过发送可执行代码给客户端的方式临时性的扩展功能或者定制功能.例如Java Applet、Flash或JavaScript。

2、  Building an Ensemble Learning Model Using Scikit-learnEnsemble learning uses multiple machine learning models to try to make better predictions on a dataset. An ensemble model works by training different models on a dataset and having each model make predictions individually.

3、  Gradient boosting is a machine learning technique for regression and classification problems, which produces a prediction model in the form of an ensemble of weak prediction models, typically decision trees. 梯度提升是一种针对回归和分类问题的机器学习技术,它以弱预测模型的集合(通常为决策树)的形式生成预测模型。像其他增强方法一样,它以分阶段的方式构建模型,并通过允许对任意可微分的损失函数进行优化来对其进行概括。 梯度增强的思想源自Leo Breiman的观察,即可以将增强解释为针对适当成本函数的优化算法。

4、  提升方法(Boosting),是一种可以用来减小监督式学习偏差机器学习算法。

5、  AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写。AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。对于噪声数据和异常数据很敏感。AdaBoost方法是一种迭代算法,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率。

6、  由于递归引起一系列的函数调用,并且有可能会有一系列的重复计算,递归算法的执行效率相对较低. 迭代:利用变量的原值推算出变量的一个新值. 如果递归是自己调用自己的话,迭代就是A不停的调用B. 所谓递归,简而言之就是应用程序自身调用自身,以实现层次数据结构的查询和访问。

7、  枚举(enumeration),在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。枚举是一个被命名的整型常数的集合!遍历(traversal),是树形结构的一种重要运算,指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。 每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。循环(loop):指的是在满足条件的情况下,重复执行同一段代码。一般语言都会有三种类型的循环语句:for语句、while语句和do While语句。递归函数(Recursion function):是在一个函数通过名字调用自身的情况下构成的。递归(recursion)在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。

8、  递归:recursion典型例子,阶乘,挪大小盘子的问题(河内塔?)