Python人工智能編程實踐
定 價:79.9 元
叢書名:高等學校創(chuàng)意創(chuàng)新創(chuàng)業(yè)教育系列叢書
讀者對象:本書適用于高等學校師生
本書在不涉及大量數(shù)學與編程知識的前提下,從零開始,逐步帶領讀者熟悉并掌握當下最流行的基于Python 3的人工智能編程工具,包括但不限于數(shù)據(jù)分析(Pandas),以及支持單機(Scikitlearn)、深度(PyTorch、TensorFlow、PaddlePaddle)和分布式(PySparkML)機器學習的開源程序庫,等等。全書共分為4部分,分別如下。(1) 入門篇: 包括對全書核心概念的指南性介紹,以及如何在多種主流PC操作系統(tǒng)上(如Windows、macOS和Ubuntu)配置基本編程環(huán)境的詳細說明。(2) 基礎篇: 涵蓋了Python 3.11的編程基礎、基于Pandas 2.0的數(shù)據(jù)分析,以及使用Scikitlearn 1.3解決大量經(jīng)典的單機(單核/多核)機器學習問題。(3) 進階篇: 介紹如何使用PyTorch 2.0、TensorFlow 2.12,以及PaddlePaddle 2.5,分別搭建多種深度學習神經(jīng)網(wǎng)絡框架。嘗試基于PySpark 3.4的ML編程庫完成一些常見的分布式機器學習任務。(4) 實踐篇: 利用全書所講授的Python編程、數(shù)據(jù)分析,以及(單機、深度、分布式)機器學習知識,從事Kaggle多種類型的競賽實戰(zhàn)。同時,介紹如何使用Git工具,在Gitee與GitHub平臺上更新和維護自己的日常代碼與編程項目。綜上,本書面向所有對人工智能領域感興趣的讀者,特別適合從事數(shù)據(jù)挖掘、機器學習、計算機視覺、自然語言處理等相關技術研發(fā)和應用實踐的初學者。
本書在不涉及大量數(shù)學與編程知識的前提下,從零開始,逐步帶領讀者熟悉并掌握當下最流行的基于Python 3的人工智能編程工具:包括,但不限于數(shù)據(jù)分析(Pandas),以及支持單機(Scikit-learn)、深度(PyTorch、TensorFlow、PaddlePaddle)和分布式(PySpark-ML)機器學習的開源程序庫等。
自本書的第1版《Python機器學習及實踐: 從零開始通往Kaggle競賽之路》于2016年付梓以來,我始終投身于人工智能(Artificial Intelligence,AI)新產(chǎn)品與技術的研發(fā)領域。時隔多年,回望這段時間,我親身感受到了人工智能理論和技術的飛速發(fā)展,幾乎可以用日新月異一詞來形容。在這段時間里,我看到了大量承載著前沿人工智能理念和技術的次世代原型產(chǎn)品被孵化出來,不斷刷新著人類的認知。這些典型的例子包括波士頓動力(Boston Dynamics)公司的機器人Atlas可以像人類運動員一樣,實現(xiàn)跑步越障、后空翻和驚人的三級跳動作;OpenAI發(fā)布的聊天機器人ChatGPT能夠與用戶進行多輪流暢的對話、創(chuàng)作故事,甚至編寫軟件代碼;DeepMind構建的AlphaGo系列對弈程序,接連戰(zhàn)勝了多位人類頂尖圍棋大師;以及國內(nèi)外自動駕駛平臺(如特斯拉FSD和百度Apollo)所支持的新型智能汽車陸續(xù)投入量產(chǎn),等等。同時,許多世界頂級科研人員在機器視覺、語音合成、閱讀理解等人工智能的細分領域進行著不懈的理論探索。在這期間,我們不斷聽聞人工智能已經(jīng)在這些細分領域逐漸超越人類的平均水平。這些細分的領域技術經(jīng)過工程化的打磨和融合之后,又重新在一些既有的人工智能產(chǎn)品上給我們帶來了全新的用戶體驗(例如,更加實時和準確的機器同聲傳譯;或者是那些敢同真人打電話,聊天過程完全不尬,甚至還略帶點兒萌腔的語音助手)。這些新的技術進步和大量的讀者來信時刻鞭策著我。許多熱情洋溢的讀者來信肯定了上一版書籍所給予他們的莫大幫助;同時,也有資深的前輩指出了其中的疏漏與不足。在這里我一并誠摯地感謝大家!從上一個版本開始,書中一些關鍵的基于Python 3的機器學習與數(shù)據(jù)分析工具(包括但不限于Pandas、Scikitlearn、PyTorch、TensorFlow、PaddlePaddle、PySpark)均已經(jīng)有了較大幅度的版本更新,甚至一些工具的常用API也進行了調(diào)整和修改。因此,本人決定開始新一版書籍的規(guī)劃與寫作。同時,考慮到本書將更加廣泛地涉及人工智能編程實踐的方方面面,自2024年始,本書正式更名為《Python人工智能編程實踐》。《Python人工智能編程實踐》將持續(xù)跟進Python、Pandas、Scikitlearn、PyTorch、TensorFlow、PaddlePaddle,以及PySparkML的更新,維護書籍內(nèi)容的先進性和代碼的可用性。同時,本書將繼續(xù)保持我們的核心理念: 力求減少讀者對編程技能和數(shù)學知識的過分依賴,進而降低理解與實踐人工智能的門檻;并試圖讓更多的興趣愛好者體會到使用單機、深度乃至分布式機器學習方法解決實際問題的樂趣。全書所介紹的上述核心工具,均是作者本人長期總結行業(yè)經(jīng)驗和精心篩選的成果。在面對現(xiàn)實中的工程或者科研難題,甚至是參加一些公開競賽(如Kaggle、天池競賽等)的時候,相信本書都能夠幫助讀者使用Python編程語言快速上手,并結合一系列經(jīng)典的開源工具,搭建行之有效的計算機程序來解決實際問題。在大數(shù)據(jù)時代,只要是與數(shù)據(jù)相關的從業(yè)人員,掌握Python編程、數(shù)據(jù)分析乃至機器學習的能力,都是一個不錯的職業(yè)加分項。不論是在金融、統(tǒng)計、數(shù)理研究、物理計算、社會科學、工業(yè)工程等領域的從業(yè)者,還是在互聯(lián)網(wǎng)行業(yè)的程序員、數(shù)據(jù)分析師、運營人員、產(chǎn)品經(jīng)理等,都會對本書有著不同程度的學習需求。本書所介紹的知識,相信一定能夠幫助讀者通過一些專業(yè)類的培訓、考試和資格評定,如國家人工智能工程技術職業(yè)培訓、省/市級人工智能工程師職稱評定、注冊數(shù)據(jù)分析師認證(CDA、CPDA),等等。鑒于內(nèi)容的入門性和普適性,本書也可以被廣泛用于初、高中生的信息學興趣培養(yǎng),?坡殬I(yè)教育,本科、研究生通識課程的講授,等等。衷心希望每一位讀者都能夠從本書中獲益,這也是對我最大的支持和鼓勵。普及人工智能,使機器學習的理論與實踐成為一種大眾的通識教育,始終是我編寫此系列書籍的長期目標和動力。
范淼2024年1月
入門篇第1章全書指南31.1Python編程31.2數(shù)據(jù)分析51.3機器學習61.3.1任務81.3.2經(jīng)驗81.3.3表現(xiàn)91.4Kaggle競賽111.5Git代碼管理12小結13第2章基本環(huán)境搭建與配置142.1Windows下基本環(huán)境的搭建與配置142.1.1查看Windows的版本與原始配置142.1.2下載并安裝Anaconda3(Windows版本)152.1.3創(chuàng)建虛擬環(huán)境python_env162.1.4在虛擬環(huán)境python_env下安裝Jupyter Notebook172.2macOS下基本環(huán)境的搭建與配置182.2.1查看macOS的版本與原始配置182.2.2下載并安裝Anaconda3(macOS版本)192.2.3創(chuàng)建虛擬環(huán)境python_env202.2.4在虛擬環(huán)境python_env下安裝Jupyter Notebook212.3Ubuntu下基本環(huán)境的搭建與配置222.3.1查看Ubuntu的版本與原始配置222.3.2下載并安裝Anaconda3(Linux版本)232.3.3創(chuàng)建虛擬環(huán)境python_env232.3.4在虛擬環(huán)境python_env下安裝Jupyter Notebook25Python人工智能編程實踐目錄2.4Jupyter Notebook使用簡介262.4.1在虛擬環(huán)境python_env下啟動Jupyter Notebook262.4.2創(chuàng)建一個.ipynb文件272.4.3試運行.ipynb文件內(nèi)的Python 3程序282.5PyCharm使用簡介282.5.1安裝PyCharm292.5.2在虛擬環(huán)境python_env下啟動PyCharm302.5.3創(chuàng)建一個.py文件312.5.4試運行.py文件內(nèi)的Python 3程序32小結32基礎篇第3章Python編程基礎353.1Python環(huán)境配置353.1.1基于命令行/終端的交互式編程環(huán)境353.1.2基于Web的交互式開發(fā)環(huán)境363.1.3集成式開發(fā)環(huán)境383.2Python基本語法393.2.1注釋393.2.2賦值403.2.3縮進413.3Python數(shù)據(jù)類型413.4Python數(shù)據(jù)運算443.5Python流程控制463.5.1分支語句473.5.2循環(huán)控制483.6Python函數(shù)設計493.7Python面向?qū)ο缶幊?93.8Python編程庫(包)/模塊導入513.9Python編程綜合實踐53小結54第4章Pandas數(shù)據(jù)分析554.1Pandas環(huán)境配置554.1.1使用Anaconda Navigator搭建和配置環(huán)境564.1.2使用conda命令搭建和配置環(huán)境574.2Pandas核心數(shù)據(jù)結構584.2.1序列584.2.2數(shù)據(jù)框594.3Pandas讀取/寫入文件數(shù)據(jù)604.3.1讀取/寫入CSV文件數(shù)據(jù)604.3.2讀取/寫入JSON文件數(shù)據(jù)624.3.3讀取/寫入Excel文件數(shù)據(jù)644.4Pandas數(shù)據(jù)分析的常用功能674.4.1添加數(shù)據(jù)674.4.2刪除數(shù)據(jù)694.4.3查詢/篩選數(shù)據(jù)694.4.4修改數(shù)據(jù)704.4.5數(shù)據(jù)統(tǒng)計714.4.6數(shù)據(jù)排序724.4.7函數(shù)應用734.5Pandas數(shù)據(jù)合并744.6Pandas數(shù)據(jù)清洗754.7Pandas數(shù)據(jù)分組與聚合77小結78第5章Scikitlearn單機機器學習805.1Scikitlearn環(huán)境配置815.1.1使用Anaconda Navigator搭建和配置環(huán)境815.1.2使用conda命令搭建和配置環(huán)境825.2Scikitlearn無監(jiān)督學習835.2.1降維學習與可視化835.2.2聚類算法915.3Scikitlearn監(jiān)督學習985.3.1分類預測模型985.3.2數(shù)值回歸模型1145.4Scikitlearn半監(jiān)督學習模型1235.4.1自學習框架1235.4.2標簽傳播算法1265.5單機機器學習模型的常用優(yōu)化技巧1275.5.1交叉驗證1275.5.2特征工程1295.5.3參數(shù)正則化1355.5.4超參數(shù)尋優(yōu)1395.5.5并行加速訓練140小結142進階篇第6章PyTorch/TensorFlow/PaddlePaddle深度學習1476.1PyTorch/TensorFlow/PaddlePaddle環(huán)境配置1486.1.1PyTorch環(huán)境配置1486.1.2TensorFlow環(huán)境配置1506.1.3PaddlePaddle環(huán)境配置1516.2全連接神經(jīng)網(wǎng)絡1536.2.1全連接神經(jīng)網(wǎng)絡的PyTorch實踐1536.2.2全連接神經(jīng)網(wǎng)絡的TensorFlow實踐1576.2.3全連接神經(jīng)網(wǎng)絡的PaddlePaddle實踐1596.3卷積神經(jīng)網(wǎng)絡1616.3.1卷積神經(jīng)網(wǎng)絡的PyTorch實踐1626.3.2卷積神經(jīng)網(wǎng)絡的TensorFlow實踐1666.3.3卷積神經(jīng)網(wǎng)絡的PaddlePaddle實踐1686.4殘差神經(jīng)網(wǎng)絡1716.4.1殘差神經(jīng)網(wǎng)絡的PyTorch實踐1726.4.2殘差神經(jīng)網(wǎng)絡的TensorFlow實踐1756.4.3殘差神經(jīng)網(wǎng)絡的PaddlePaddle實踐1786.5循環(huán)神經(jīng)網(wǎng)絡1816.5.1循環(huán)神經(jīng)網(wǎng)絡的PyTorch實踐1826.5.2循環(huán)神經(jīng)網(wǎng)絡的TensorFlow實踐1856.5.3循環(huán)神經(jīng)網(wǎng)絡的PaddlePaddle實踐1876.6注意力機制1906.6.1注意力機制的PyTorch實踐1916.6.2注意力機制的TensorFlow實踐1946.6.3注意力機制的PaddlePaddle實踐1966.7自動編碼器1996.7.1自動編碼器的PyTorch實踐2006.7.2自動編碼器的TensorFlow實踐2036.7.3自動編碼器的PaddlePaddle實踐2066.8變換模型2096.8.1變換模型的PyTorch實踐2106.8.2變換模型的TensorFlow實踐2146.8.3變換模型的PaddlePaddle實踐2166.9深度學習模型的常用優(yōu)化技巧2196.9.1隨機失活2196.9.2批標準化2286.9.3層標準化235小結244第7章PySpark分布式機器學習2467.1PySpark環(huán)境配置2487.1.1使用Anaconda Navigator搭建和配置環(huán)境2487.1.2使用conda命令搭建和配置環(huán)境2497.1.3安裝JRE2507.2PySpark分布式數(shù)據(jù)結構2517.2.1RDD2527.2.2DataFrame2547.3PySpark分布式特征工程2557.3.1特征抽取2557.3.2特征轉(zhuǎn)換2607.4PySpark分布式機器學習2637.4.1PySparkML分類預測模型2647.4.2PySparkML數(shù)值回歸模型2697.5分布式機器學習模型的常用優(yōu)化技巧2737.5.1超參數(shù)尋優(yōu): 留一驗證2747.5.2超參數(shù)尋優(yōu): 交叉驗證275小結277實踐篇第8章Kaggle競賽實踐2818.1Titanic罹難乘客預測2828.1.1數(shù)據(jù)分析2828.1.2數(shù)據(jù)預處理2848.1.3模型設計與尋優(yōu)2858.1.4提交測試2868.2Ames房產(chǎn)價格評估2878.2.1數(shù)據(jù)分析2888.2.2數(shù)據(jù)預處理2928.2.3模型設計與尋優(yōu)2948.2.4提交測試2948.3Twitter短文本分類2958.3.1數(shù)據(jù)分析2968.3.2數(shù)據(jù)預處理2978.3.3模型設計與尋優(yōu)2988.3.4提交測試2998.4CIFAR100圖像識別3008.4.1數(shù)據(jù)分析3018.4.2數(shù)據(jù)預處理3028.4.3模型設計與尋優(yōu)3038.4.4提交測試305小結306第9章Git代碼管理3089.1Git本地環(huán)境搭建3099.1.1Windows下Git工具的安裝與配置3099.1.2macOS下Git工具的安裝與配置3099.1.3Ubuntu下Git工具的安裝與配置3099.2Git遠程倉庫配置3109.2.1GitHub介紹3119.2.2GitHub遠程倉庫的創(chuàng)建與配置3119.2.3Gitee介紹3129.2.4Gitee遠程倉庫的創(chuàng)建與配置3129.3Git基本指令3139.3.1克隆倉庫3139.3.2提交修改3149.3.3遠程推送3149.4Git分支管理3169.4.1創(chuàng)建分支3179.4.2分支合并3179.4.3合并沖突3179.4.4刪除分支3199.5貢獻Git項目3199.5.1復刻項目3199.5.2本地克隆、修改與推送3209.5.3發(fā)起拉取請求320小結322后記323