《實用C++后端編程》是一本全面的指南,為讀者提供了成為熟練的C++后端開發人員所需的工具和知識。本書著重于實際應用和實際實現,帶領讀者深入了解后端開發的多層次領域,因此對于任何有志成為或已經是后端開發人員的人來說,都是一份重要的資源。
本書從基礎開始,介紹了C++,為讀者提供了關于語言、結構和與后端編程相關的核心概念的堅實基礎。從那里,讀者深入研究了后端開發的更復雜要素。通過我們引人入勝的章節、用例和示例,讀者將接觸高級主題,如并發編程,探討線程和多進程處理密集型計算任務,從而為可擴展的應用程序奠定基礎。
本書深入探討了API,特別是gRPC,以及緩存策略和數據庫管理,選擇MongoDB作為NoSQL數據庫。與此同時,讀者將學會在實際環境中實施這些技術,從頭開始構建一個博客應用程序,從而彌合理論與實際實施之間的差距。書中專門介紹了保護應用程序的整個部分,其中書中教授了身份驗證、授權和數據庫安全,并演示了如何在博客應用程序中實施這些措施。
本書的另一個極為重要的部分是涵蓋了測試策略,教讀者如何使用Google Test(gtest)創建強大且不易出錯的后端解決方案。最后,本書提供了一步一步的指南,以在AWS上部署應用程序,確保讀者具備將應用程序投入實際運行所需的技能。
主要學習內容
目標受眾 本書適合有一定C++背景但沒有后端開發經驗的讀者。無論你是初學者剛剛入門后端開發,還是經驗豐富的專業人士想要磨練技能和學到新東西,都能從中受益。無論你是學生、職業人士還是業余愛好者,本書都將教會你掌握C++后端開發的藝術所需的一切知識。
并行、并發和分布式計算(CPDC)越來越多地融入到幾乎所有的計算機使用環節中。僅僅具備傳統順序編程的能力對于任何級別的程序員來說已經不夠了。甚至初級程序員也需要能做更多的事情。本書討論了并行性的實踐探索,目標讀者是沒有或只有最基礎編程經驗的學生的教師。實踐活動是在Scratch編程語言中開發的。Scratch在各種高等教育機構被用作專業和非專業的第一語言。Scratch的一個優點是,編程是通過拖拽和連接塊來完成的,因此學生可以非常快速地創建有趣的程序。這對于無先決條件的方法來說是至關重要的。隨著大量數據的可用性和同時使用互聯網的人數的持續增加,“并行”進行計算活動也變得越來越重要,這也被稱為并發。并行和分布式計算的概念適用于計算機科學領域的許多子領域。這些子領域包括算法、計算機架構、網絡、操作系統和軟件工程。在21世紀初,多處理器的設計以及其他使復雜程序運行得更快的策略的發展如雨后春筍。并發、互斥、狀態和內存操作的一致性、消息傳輸和共享內存模型構成了并行和分布式計算的基礎。本書包含多個小例子、演示材料和樣本練習,教師可以用它們來教授剛剛接觸基礎編程概念的學生并行編程概念。更具體地說,它解決了Python多處理特性,如fork/join線程、消息傳遞、線程間共享資源和使用鎖。并行性的應用示例來自搜索、排序、模擬和圖像處理等應用領域。這本書總共分為八個不同的章節。第一章為讀者深入介紹了計算模型。并行、并發和分布式計算的發展是第二章的討論主題。第三章詳細討論了并發計算的概念。在第四章中,讀者會全面了解并行計算的概念。分布式計算模型是第五章的主要討論話題。第六章闡述了并發計算、并行計算和分布式計算的應用。在第七章中,討論了計算模型的最新進展。在最后一章,“并發、并行和分布式計算”,我們討論了這三種計算的前景。這本書很好地概述了計算機領域的許多不同方面。書中的材料以一種即使是沒有計算機知識的讀者也能理解并熟悉涉及的基本思想的方式呈現。
這本書涵蓋了凸優化的介紹,凸優化是一種強大且易處理的優化問題,可以在計算機上高效求解。本書的目標是幫助讀者了解凸優化是什么以及如何在不斷擴大的實際應用場景中使用,特別強調在機器學習領域的應用。本書的第一部分涵蓋了凸集、凸函數和相關基本定義,這些概念有助于理解凸優化及其相應的模型。第二部分講述了一個非常有用的理論——對偶性,它使我們能夠:(1)獲得算法洞察;(2)為通常難以解決的非凸優化問題獲得近似解。最后一部分關注機器學習和深度學習的現代應用。這本書的一個特點是,它簡潔地講述了凸優化如何通過歷史示例和當前機器學習應用發揮作用的“故事”。另一個關鍵特點是,它包括了基于優化基礎原理啟發的各種機器學習算法的編程實現,以及所使用編程工具的簡要教程。實現基于Python,CVXPY和TensorFlow。本書并未遵循傳統教科書式的組織結構,而是通過一系列緊密相關的講義進行簡化,圍繞連貫的主題和概念展開。本書主要作為高年級本科生課程教材,同時也適用于一年級研究生課程。讀者需要具備良好的線性代數背景,一定程度的概率知識和對Python的基本熟悉。本書由三部分組成。在第一部分中,我們將學習基本概念和幾個數學定義,以便理解什么是凸優化,以及如何將感興趣的問題轉化為凸問題。然后,我們將探索凸優化問題的五個實例:LP、最小二乘、QP、SOCP和SDP。我們將專注于識別(和轉換)這類問題的技術。我們還將研究一些用于解決這些問題的著名算法。在第二部分中,我們將研究最優化領域中的一個關鍵理論,稱為對偶性。二元性有兩種類型:(1)強二元性;(2)弱對偶性。強對偶性對于獲得凸問題的算法見解是非常有用的。福利對偶性通過提供近似解來幫助處理困難的非凸問題。在最后的第三部分,我們將探討機器學習的應用:(1)監督學習,最流行的機器學習方法之一;(ii)生成對抗網絡(GANs),無監督學習的突破性模型之一;(iii)公平分類器,這是機器學習中的熱門話題之一。
現在是學習集成方法的最佳時機。本書介紹的模型主要分為三類。 //www.manning.com/books/ensemble-methods-for-machine-learning
基礎集成方法——每個人都聽說過的經典方法,包括歷史集成技術,如bagging、隨機森林和AdaBoost * 最先進的集成方法——現代集成時代經過試驗和測試的強大工具,它們構成了許多現實世界中生產中的預測、推薦和搜索系統的核心 * 新興的集成方法-最新的方法的研究代工廠處理新的需求和新興的優先級,如可解釋性
每一章將介紹一種不同的集成技術,使用三管齊下的方法。首先,你將通過逐步可視化學習實際是如何進行的,了解每種集成方法背后的直覺。其次,你將自己實現每個集成方法的基本版本,以完全理解算法的具體細節。第三,你將學習如何實際應用強大的集成庫和工具。 大多數章節都有自己的案例研究,這些案例來自手寫數字預測、推薦系統、情感分析、需求預測等應用。這些案例研究在適當的情況下解決了幾個現實世界的問題,包括預處理和特征工程,超參數選擇,高效的訓練技術和有效的模型評估。 本書分為三部分,共九章。第1部分是集成方法的簡單介紹,第2部分介紹并解釋了幾個基本的集成方法,第3部分涵蓋了高級主題。 第1部分,“集成的基礎”,介紹集成方法以及為什么你應該關注它們。這一部分還包含本書其余部分將介紹的集成方法的路線圖。 ?第1章討論了集成方法和基本的集成術語。它還引入了適應性與復雜性的權衡(或者更正式的叫法是偏差-方差權衡)。你將在本章中構建第一個集成。 第2部分,“基本集成方法”,介紹了幾個重要的集成方法族,其中許多被認為是“基本的”,在現實世界的應用中廣泛使用。在每一章中,你都將學習如何從零開始實現不同的集成方法,它們的工作原理,以及如何將它們應用于實際問題。
?第2章開始我們的旅程,平行集成方法,特別是平行同質集成。集成方法包括bagging、隨機森林、粘貼、隨機子空間、隨機補丁和額外的樹。 ?第3章繼續介紹更多并行集成,但本章的重點是并行異構集成。介紹的集成方法包括通過多數投票組合基礎模型、通過加權組合、使用Dempster-Shafer進行預測融合以及通過堆疊進行元學習。 ?第4章介紹了另一類集成方法——順序自適應集成——特別是將許多弱模型提升為一個強大模型的基本概念。介紹的集成方法包括Ada- Boost和LogitBoost。 ?第5章建立在boosting的基本概念之上,并涵蓋了另一種基本的序列集成方法,梯度boosting,它將梯度下降與boosting相結合。本章將討論如何使用scikit-learn和LightGBM訓練梯度增強集成。 ?第6章繼續探索牛頓boosting的序列集成方法,牛頓boosting是梯度boosting的有效擴展,結合了牛頓下降和boosting。本章將討論如何使用XGBoost訓練Newton boosting集合。 第3部分“實際應用中的集成:使集成方法適用于數據”向您展示了如何將集成方法應用于許多場景,包括具有連續和計數型標簽的數據集以及具有分類特征的數據集。你還將學習如何解釋集合以及它們的預測: ?第7章展示了我們如何為不同類型的回歸問題和廣義線性模型訓練集成,其中訓練標簽是連續的或計數的。本章涵蓋了線性回歸、泊松回歸、伽馬回歸和Tweedie回歸的并行和順序集成。 ?第8章確定了使用非數值特征學習的挑戰,特別是分類特征,以及將幫助我們為此類數據訓練有效集成的編碼方案。本章還討論了兩個重要的實際問題:數據泄漏和預測偏移。最后,我們將看到如何使用ordered boosting和CatBoost克服這些問題。 ?第9章從集成方法的角度涵蓋了新興的非常重要的主題可解釋人工智能。本章將介紹可解釋性的概念以及它的重要性。還討論了幾種常見的黑盒可解釋性方法,包括排列特征重要性、部分依賴圖、代理方法、局部可解釋的模型無關解釋、Shapley值和Shapley加性解釋。介紹了玻璃盒集成方法、可解釋增強機和InterpretML包。 ?結語以其他主題結束我們的旅程,以供進一步探索和閱讀。
《機器學習:理論與實踐》介紹了機器學習中最流行的方法。本書涵蓋了回歸(包括正則化)、基于樹的方法(包括隨機森林和增強樹)、人工神經網絡(包括卷積神經網絡)、強化學習和專注于聚類的無監督學習。主題以概念的方式以及必要的數學細節介紹。解釋清楚明了,用數字和例子加以說明。對于所討論的每一種機器學習方法,本書都提供了R編程語言的適當庫以及編程示例。 以一種適合高級本科生或剛開始學習的研究生,以及希望自學機器學習的數學和/或面向編程的個人的方式,提供了常用機器學習算法的易于閱讀的介紹。
涵蓋討論的機器學習算法的數學細節,以確保詳實的理解,使進一步的探索成為可能。 給出了合適的編程示例,從而確保對機器學習方法的概念、理論和實踐理解。這本書的目的主要是介紹機器學習的基本主題先進的本科生和開始研究生。題目的數量被控制在很小的范圍內,以便在一個學期或一個季度內涵蓋所有內容。在短時間內所能教授的內容范圍內,這些主題覆蓋得很深入。因此,這本書可以為學生閱讀高級書籍和研究論文提供基礎。
//www.routledge.com/Machine-Learning-Theory-and-Practice/Kalita/p/book/9780367433543
面向數據編程是介紹面向數據范式的獨一無二的指南。這種開創性的方法用通用的不可變數據結構表示數據。它簡化了狀態管理,簡化了并發性,并消除了在面向對象代碼中會發現的常見問題。這本書通過對話、代碼片段和圖表展示了強大的新思想,幫助您快速了解關于DOP的偉大之處。最重要的是,該范例與語言無關,您將學習編寫可以用JavaScript、Ruby、Python、Clojure實現的DOP代碼,也可以用傳統的OO語言(如Java或c#)實現。
//www.manning.com/books/data-oriented-programming
面向數據的編程是為了幫助開發人員降低他們構建的系統的復雜性而編寫的。本書中的思想主要適用于操作信息的系統,如前端應用程序、后端Web服務器或Web服務。
這本書講述了一個故事,說明了面向數據編程(DOP)的價值,以及如何在現實生產系統中應用它的原則。我的建議是跟著故事走,按順序讀各個章節。然而,如果有些章節比其他章節更能激發你的好奇心,請注意,第一部分和第7部分的材料是需要理解第二和第三部分的。在本書中,我們使用Lodash ()來說明如何使用泛型函數操作數據。如果您正在閱讀的代碼片段使用的是您不熟悉的Lodash函數,您可以參考附錄D來理解函數的行為。第1部分,靈活性,包含六個章節,重點介紹了傳統面向對象編程(OOP)的挑戰,并將面向數據編程(DOP)放在中心位置,揭示了如何使用DOP的基本原則來構建靈活的系統。這些章節是這樣排列的:
在第一章“面向對象編程的復雜性”中,我們將討論面向對象編程的復雜性。然后,我們的DOP傳奇開始了!聽一聽高級開發人員Theo和他前途無量的同事Dave之間的對話。對Theo與OOP的復雜性作斗爭感到同情,并發現嘗試不同編程范式的一個極好的理由。
第二章,代碼和數據的分離,我們的朋友Theo正在尋找一種解決方案,可以降低系統的復雜性,增加系統的靈活性。他的工作有危險。Joe是一位經驗豐富的開發人員,他有一個答案——dop。了解DOP原則#1如何幫助降低信息系統的復雜性。
第三章,基本數據操作,探討了如何通過應用DOP原則#2,將數據從類剛性的封裝中解放出來,并使用泛型函數自由地操作它。Vive la革命!
第四章,狀態管理,通過多版本方法探索狀態管理,通過將系統恢復到以前的狀態,讓我們回到過去,因為在DOP中,狀態只是數據。時間旅行是真實存在的!
第五章,基本并發控制,通過應用樂觀并發控制策略,幫助我們在并發系統中獲得高的讀寫吞吐量。不需要玫瑰色的眼鏡!
第六章,單元測試,提供了一杯咖啡…與喬!我們的朋友Joe證明了面向數據的代碼單元測試非常簡單,你可以在咖啡店里完成它。喝杯茶,了解一下為什么它如此簡單——即使是突變!當你和Joe一起寫DOP單元測試的時候。它很酷豆!
第2部分 (可擴展性)演示了如何大規模構建DOP系統,重點關注數據驗證、多線程環境、大型數據集合、數據庫訪問和web服務。需要超大的系統?沒問題!
第7章,基本數據驗證,教我們如何確保數據進出我們的系統是有效的,只是以防萬一…因為,正如Joe所說,您不必在DOP中強制驗證數據,但是在需要時可以驗證。驗證還是不驗證,這是一個問題!
第8章,高級并發控制,在我們的朋友Joe分解原子機制的實現細節之后,我們將學習如何在不使用任何鎖的情況下以線程安全的方式管理整個系統狀態。你根本不知道從原子到原子的復雜性!
第9章,持久數據結構,轉移到一個更學術的環境,我們的朋友Joe揭示了一個更安全、更可伸縮的方式來保持數據不變性的內部細節,以及如何有效地實現它,無論數據大小。現在開始上課!
第10章,數據庫操作,教我們如何表示、訪問和操作數據庫中的數據,并提供額外的靈活性,你猜對了!表示“不”的復雜性。?第11章,Web服務,讓我們發現與Web服務通信的簡單性。我們會學到喬說的“我們應該像構建外部那樣構建系統的內部”是什么意思。
第3部分,可維護性,介紹高級數據驗證、多態、有效代碼和調試技術的DOP技術,這些技術在團隊中工作時非常重要。歡迎加入我們的團隊!
第12章,高級數據驗證,允許我們發現未來事物的形狀。在這里,您將學習如何在數據在系統內部流動時驗證數據,通過定義函數參數和返回值的預期形狀,從而簡化開發。
第13章,多態性,帶我們和Theo和Dave一起上了一節鄉下的課——一個適合與動物玩耍的地方,并通過多重方法學習沒有對象的多態性。
第十四章,高級數據操作,讓我們看到Dave和Theo如何應用Joe的明智建議,在他們創建自己的數據操作工具時,將乏味的代碼變成有說服力的代碼。本末倒置。“——又是喬送的寶石!”
第十五章,調試,把Dave和Theo帶到博物館最后一次“歡呼”,因為他們創造了一個創新的解決方案來重現和修復錯誤。
深入機器學習模型的超參數調優,關注什么是超參數以及它們是如何工作的。這本書討論了超參數調優的不同技術,從基礎到高級方法。
這是一個循序漸進的超參數優化指南,從什么是超參數以及它們如何影響機器學習模型的不同方面開始。然后通過一些基本的(蠻力的)超參數優化算法。進一步,作者提出了時間和內存約束的問題,使用分布式優化方法。接下來,您將討論超參數搜索的貝葉斯優化,它從以前的歷史中學習。
這本書討論了不同的框架,如Hyperopt和Optuna,它們實現了基于順序模型的全局優化(SMBO)算法。在這些討論中,您將關注不同的方面,比如搜索空間的創建和這些庫的分布式優化。
機器學習中的超參數優化創建了對這些算法如何工作的理解,以及如何在現實生活中的數據科學問題中使用它們。最后一章總結了超參數優化在自動機器學習中的作用,并以創建自己的AutoML腳本的教程結束。
超參數優化是一項繁瑣的任務,所以請坐下來,讓這些算法來完成您的工作。
//link.springer.com/book/10.1007/978-1-4842-6579-6#about
你會:
了解超參數的變化如何影響模型的性能。
將不同的超參數調優算法應用于數據科學問題
使用貝葉斯優化方法創建高效的機器學習和深度學習模型
使用一組機器來分配超參數優化
利用超參數優化方法實現自動機器學習
這里有一本關于世界上最流行的編程語言的全面和最新的指南!無論您是新手還是專家,您都將找到使用c++ 20最新特性所需要的東西。作為編程語言的主力,c++為您提供了對數據使用、接口和資源分配的最大控制。如果你的工作涉及數據,精通c++意味著你是不可或缺的!
這個版本給了你8本書合在一本中完全掌握c++。在本書中,國際知名專家John Paul Mueller將帶您從使用對象和類的基礎知識,到編寫使用通常與c++不相關的范例的應用程序,例如那些用于函數式編程策略的范例。該書還包括在線資源,如源代碼。您將了解如何使用c++ GNU編譯器來構建應用程序,甚至如何使用您的移動設備進行編碼。
掌握高級編程和故障排除 用lambda表達式簡化代碼 在你需要的地方使用c++:游戲、企業應用程序和Web服務 揭開對象的秘密,包括設計模式的使用 了解如何使用函數式編程技術使代碼簡潔易讀
這個快速的c++ 20指南是對流行編程語言的代碼和語法的濃縮參考,完全針對c++ 20進行了更新。它以一種組織良好的格式展示了基本的c++ 20代碼語法,可以用作方便的參考。
在c++ 20快速語法參考中,您將找到簡短、簡單且重點突出的代碼示例。這本書包括一個精心安排的目錄和一個全面的索引,允許容易的審查。在這本書中,你會發現這是一種簡明扼要、切中要點、易于理解的語言參考。這本書包含了很多有用的信息,是任何c++程序員的必備品。
你將學習
這本書是給誰的
這本書以一種結構化的、直觀的、友好的方式學習c++編程語言。這本書教授現代c++編程語言、c++標準庫和現代c++標準的基礎知識。不需要以前的編程經驗。
c++是一種不同于其他語言的語言,它的復雜性令人驚訝,但在許多方面都非常優美和優雅。它也是一種不能通過猜測來學習的語言,是一種很容易出錯的語言。為了克服這一點,每個部分都充滿了現實世界中逐漸增加復雜性的例子。面向絕對初學者的現代c++教的不僅僅是用c++ 20編程。它提供了一個可在其上進行構建的堅實的c++基礎。
作者帶您了解c++編程語言、標準庫和c++ 11到c++ 20標準基礎知識。每一章都附有適量的理論和大量的源代碼示例。
您將使用c++ 20個特性和標準,同時還將比較和查看以前的c++版本。您將使用大量相關的源代碼示例來實現此目的。
你將學到什么
這本書是給誰的
關于大數據技術的信息很多,但將這些技術拼接到端到端企業數據平臺是一項艱巨的任務,沒有得到廣泛的討論。通過這本實用的書,您將學習如何在本地和云中構建大數據基礎設施,并成功地構建一個現代數據平臺。
本書非常適合企業架構師、IT經理、應用程序架構師和數據工程師,它向您展示了如何克服Hadoop項目期間出現的許多挑戰。在深入了解以下內容之前,您將在一個徹底的技術入門中探索Hadoop和大數據領域中可用的大量工具:
-平臺: 了解部署、操作、安全性、高可用性和災難恢復的各個方面,以及將平臺與企業IT的其他部分集成在一起所需了解的所有內容