Machine Learning in Action機器學習實戰——勘誤

Machine Learning in Action

機器學習實戰——勘誤

最近在閱讀《Machine Learning in Action》的中文版,即由人民郵電出版社出版出版的《機器學習實戰》(2017年第25次印刷)。該書對機器學習演算法的講解淺顯易懂,而且大量的python代碼實現了各種傳統的機器學習演算法。可是,我也發現了書中部分瑕疵,有些是印刷錯誤,有些是翻譯錯誤,也有些是作者的表述錯誤等等。儘管如此,我依舊大力推薦機器學習的新手們去閱讀該書。

接下來,我按照章節將書中的瑕疵整理如下。

第五章 Logistic回歸

第83頁第二段第2行「這種方法在每次隨機從列表中選出一個值,然後從列表中刪除該值(再進行下一次迭代)」。這句話的表述是對應「程序清單5-4」中代碼如下。

同時,我也找到了英文原版的句子「The way you randomly select a value from a list of integers and then delete it from the list is similar to what we did in chapter 3」。英文原版要表達的意思感覺也沒有很明確。若dataIndex每次隨機的數字可以重複且可以是之前選擇的數字,那麼代碼沒有問題。若dataIndex每次隨機的數字可以重複但不能是之前選擇的數字,那麼代碼是存在問題。根據書中前後文的意思,我猜測這裡每次dataIndex取出的數字應該不能是之前選擇的數字。所以,這裡需要修改如下:

第六章 支持向量機

第92頁和93頁之間的數學公式中針對alpha的下標問題,相信這個問題部分人也有遇到過。一開始以為是印刷問題,後來查詢英文原版發現,不怪印刷,截圖如下:

圖中標記的alpha,應該全部有下標,具體形式如下:

第七章 利用AdaBoost元演算法提高分類性能

第116頁倒數第3段第2行「但是在前者當中,不同的分類器是通過串列訓練而獲得的」。我感覺這句話有歧義。「在前者中」是指在bagging?(本頁的7.1.1講解了bagging)還是boosting。要知道bagging可是分類器的並行訓練啊!所以,我查詢了英文原版,「But in boosting, the different classifiers are trained sequentially.」不理解翻譯為何會翻譯成「在前者」。這裡羅列出來主要是提醒廣大新手們注意。

第14章 利用SVD簡化數據

第262頁第1段第1行「給出的是兩個物品當中已經被評分的那個元素」,結合代碼,我感覺應該改為「給出的是對兩個物品都進行評分的用戶」。這樣修改後能夠更好的理解代碼或原書要表達的意思。

第264頁程序清單14-3,紅框圈出來的應該放在for循環裡面,而且根據作者提供的源碼也證實了這一點。

推薦閱讀:

製作假新聞?AI送你去喝茶!
強化學習——簡介
機器學習面試題,更有大廠內推機會
9幅圖快速理解支持向量機(SVM)的工作原理
邏輯回歸的重要性

TAG:機器學習 | 深度學習DeepLearning | 演算法 |