2019/11/2
1、 表現層狀態轉換(REST, representational state transfer.)一種萬維網軟體架構風格,目的是便于不同軟體/程式在網路(例如互聯網)中互相傳遞資訊,表現層狀態轉換是根基于超文本傳輸協議(HTTP)之上而確定的一組約束和屬性,是一種設計提供萬維網路服務的軟體構建風格,符合或兼容于這種架構風格(簡稱為 REST 或 RESTful)的網路服務,允許客戶端發出以統一資源識別符號訪問和操作網路資源的請求,而與預先定義好的無狀態操作集一致化,因此表現層狀態轉換提供了在互聯網路的計算系統之間,彼此資源可互動使用的協作性質(interoperability),
REST是設計風格而不是標準,REST通常基于使用HTTP,URI,和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-learn. Ensemble 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,典型例子,階乘,挪大小盤子的問題(河內塔?)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/31326.html
標籤:HTML5
上一篇:前端學習日記 (一)
