2021-03-15 15:18:02來自星星的喵

零基礎入門的機器學習圖鑑:2大類機器學習╳ 17種演算法 ╳ Python基礎教學,讓你輕鬆學以致用


零基礎入門的機器學習圖鑑:2大類機器學習╳ 17種演算法 ╳ Python基礎教學,讓你輕鬆學以致用
作者:秋庭伸也、杉山阿聖、寺田學 出版社:采實文化 出版日期:2020-12-29 00:00:00

<內容簡介>

★★★最淺顯易懂的機器學習專書★★★
與其害怕被AI取代,
不如學會機器學習,讓AI為你所用!

☆日本亞馬遜資訊相關類暢銷榜No. 1

‧針對各類機器學習全圖像化,深入淺出的機器學習入門書
‧詳解各種機器學習演算法的概念和用途,學會如何選對演算法
‧所有機器學習演算法皆提供Python範例程式碼,讓你現學現用

【什麼是機器學習?】
人工智慧(AI)、機器學習、深度學習??與人類的生活密不可分,
但多數人對這些專有名詞一知半解,甚至有些誤解,
實現 AI 的方法包羅萬象,但機器學習是實現AI最普及的方法,
有些人誤以為深度學習就是AI,但事實上深度學習也是種機器學習。

機器學習顧名思義,就是電腦會透過演算法,根據問題或環境自動學習,
並運用學習結果來解決問題。

【機器學習的應用觸及各領域】
機器學習可以應用在各種領域,包括:
自動駕駛、文書處理、資料分析、自動翻譯、醫療診斷、預測天氣??

近年來,因為電腦價格降低,讓機器學習普及,不再是高深的技術,
讓非理科出身的文科人也能容易學習,運用在工作上。
由於機器學習有許多種類,因此懂得如何選擇最適合的演算法,
才能讓精準解決問題,事半功倍。

【2大類 ╳ 17種演算法,弄懂機器學習的邏輯與概念】
◎ 9種監督式學習:將問題的答案輸入電腦,讓電腦自己學習,像是過濾垃圾郵件
‧問題分類(分類):羅吉斯迴歸、單純貝氏分類器
‧找出特徵關聯性(迴歸):線性迴歸、正則化
‧分類且找出關聯性:支持向量機、Kernel法、隨機森林、類神經網路、kNN

◎ 8種無監督式學習:提供電腦問題與特徵,讓電腦自行分類,例如找出有車的照片
‧選擇特徵與數量(降維): PCA、LSA、NMF、LDA、LLE、t-SNE
‧特徵分類(分群):k-means分群法、高斯混合分布

【Python是時下最熱門的程式語言】
在學習機器學習的演算法時,
Python是最容易上手,適用於各作業系統,也完全免費的程式語言軟體,
與機器學習及統計相關的函式庫也非常豐富。
本書所有範例程式碼都是使用Python語法編寫,
因此書中還附有Python基礎教學。

本書用一張圖帶你掌握機器學習的整體輪廓,學會機器學習的基礎知識和概念,
了解在學習機器學習的演算法時最重要的處理過程,
幫你學會如何精準選對演算法,只要掌握每一種演算法的性質,
相信就能學會實際操作機器學習,解決生活和工作上的問題,讓AI為你所用!

【本書適合哪些人閱讀?】
‧對機器學習感興趣,已經開始學習的人
‧已懂得一些機器學習演算法,想學習更多的人
‧不熟悉方程式,看不懂機器學習專書的人
‧想學會如何因應問題來選擇機器學習演算法的人
‧有程式設計經驗,有能力執行範例程式碼的人

★專家推薦:

李忠謀|國立台灣師範大學資訊工程系教授、國際資訊奧林匹亞競賽主席
資工心理人|竹謙科技研發工程師
鄭國威|泛科知識公司知識長
蘇書平|為你而讀/人資商學院創辦人

「這本書可作為對機器學習完全不懂的新手,踏入這個領域的敲門磚,本書先是說明機器學習的基礎知識,接著介紹17種機器學習的基礎演算法,每個章節皆有實際的程式碼範例,並且用圖片來視覺化這些演算法是如何去處理分類資料,建議讀者可以邊學邊做,嘗試著書中的程式碼來解決問題,相信會有滿滿的收穫,讓您在讀完本書之後,也能夠掌握機器學習的基礎知識,不管是要面對實作的問題,或者是學習更進階的方法,都能夠無往不利。」──資工心理人,竹謙科技研發工程師

「商業分析師在台灣的求職市場上已經慢慢變成最熱門的職缺之一,如果你懂得機器學習的基礎技術,更可以幫助你從大量原始的數據挖掘有意義的情報,解決各種複雜性的商業問題。這是我一本我看過最淺顯易懂的好書,非常推薦給你。」──蘇書平,為你而讀/人資商學院創辦人

★目錄:

好評推薦
推薦序 兼具實作與理論的機器學習實用指南/蔡明亨
前言 把機器學習化繁為簡的圖鑑大全
本書使用方法

第1章 機器學習的基礎
1.1 機器學習的概要
何謂機器學習
機器學習的種類
機器學習的應用

1.2 機器學習的主要步驟
資料的重要性
監督式學習(分類)範例
實作
非監督式學習(分群)範例
視覺化
圖的種類與繪製方法:使用Matplotlib繪圖
使用pandas分析並處理資料
小結

第2章 監督式學習
01 線性迴歸
02 正則化
03 羅吉斯迴歸
04 支持向量機
05 支持向量機(Kernel法)
06 單純貝氏分類器
07 隨機森林
08 類神經網路
09 kNN

第3章 非監督式學習
10 PCA
11 LSA
12 NMF
13 LDA
14 k-means分群法
15 高斯混合分布
16 LLE
17 t-SNE

第4章 評估方法及各種資料的運用
4.1 評估方法
監督式學習的評估
分類問題的評估方法
迴歸問題的評估方法
均方誤差與決定係數的差異
使用不同演算法時的差異
超參數的設定
模型的過度擬合
防止過度擬合的方法
訓練資料與測試資料的切分
交叉驗證
超參數的搜尋

4.2 文字資料的轉換處理
透過詞彙計數進行轉換
透過TF-IDF進行轉換
套用機器學習模型

4.3 圖像資料的轉換處理
將畫素資訊直接視為數值
輸入轉換後的向量資料,套用機器學習模型

第5章 環境設置
5.1 安裝Python3
Windows
macOS
Linux
使用Anaconda在Windows安裝

5.2 虛擬環境
使用官方安裝程式的使用者
使用Anaconda安裝程式的使用者

5.3 安裝套件
何謂第三方套件
安裝套件

附錄
方程式說明
專有名詞說明

參考文獻

<作者簡介>

秋庭伸也
2012年畢業於早稻田大學基礎理工學院
2015年畢業於早稻田大學理工學術院基礎理工學研究科機械科學專攻碩士班
現為Recruit Communications股份有限公司技術長

杉山阿聖
曾任職於某製造業旗下之資訊子公司,iOS App開發資歷3年、聊天機器人開發資歷2年。

現於SENSY股份有限公司擔任市場分析研究員,將機器學習運用於業務中。
樂於參加工程師讀書會、發表演說。

寺田學
‧CMS Communications股份有限公司董事長
‧一般社團法人PyCon JP 代表理事
‧Plone Foundation Ambassador
‧一般社團法人Python工程師培育推廣協會 顧問理事
‧PSF(Python Software Foundation) Contributing members

協助建構Python Web相關業務並提供諮詢。2010年起積極參與日本國內之Python社群,致力發展PyCon JP。2013年3月擔任一般社團法人PyCon JP之代表理事,同時也在OSS相關社群擔任版主或工作人員。
擔任一般社團法人Python工程師培育推廣協會顧問理事,積極推廣Python教育。
為了向人們傳達Python的魅力,近期致力於擔任講師,教導初學者機器學習領域的Python。
共著作品有《使用Python之最新資料分析教科書》,審定作品有《輕鬆了解Python》,文章散見於各處。

監修:加藤公一
Silver Egg Technology股份有限公司首席科學家。主要從事推薦系統(Recommendation System)相關之研究開發,尤其擅長機器學習演算法之設計和實作。資訊工程博士。
著有《機器學習的精華》。

審定:王立綸
美國伊利諾大學香檳分校電腦科學博士,Google Research軟體工程師。

審定:李重毅
台大資訊系畢,Google Ads軟體工程師。

審定:馮俊菘
台大資訊系畢,Google Research軟體工程師。

審定:蔡明亨
台大資訊系畢,Google Research軟體工程師。

譯者:周若珍
日文教師,日文翻譯。對教育充滿熱忱,並從事各領域的口筆譯工作。
深愛動物,支持以領養代替購買,以結紮代替撲殺。
FB粉絲頁「???????日本語教室」:facebook.com/narumi.nihongo

★內文試閱:

‧推薦序

兼具實作與理論的機器學習實用指南
──蔡明亨,台大資訊系畢,Google Research軟體工程師

近年來,機器學習的技術有許多突破,並且應用在許多產業,創造了更多產值。此外,許多產業也準備以機器學習解決以前無法處理的問題,或是提高效率。因此,對於具備機器學習知識的人才需求也越來越高。
以前,只有人工智慧研究員需要機器學習的知識,然而,現今很多不同領域的人都需具備這方面的能力,因為跨領域的合作將創造更大產值,例如將機器學習應用在醫療與商業決策等方面。我相信,隨著產業發展,機器學習會像是寫程式一樣,將會成為一個現代人或多或少都必須具備的技能。
這本書深入淺出地介紹許多機器學習的概念及演算法,並且對於每個演算法都附有實作的程式範例,可以幫你了解實作上的細節,而非只是理論。本書兩百多頁的內容,各個章節的長度安排適合在通勤或是飯前等零碎時間閱讀。除此之外,這本書的難度對於需要「使用」機器學習相關知識的人而言,是十分合宜的。
我在加州大學柏克萊分校延伸教育學院教授機器學習時,課堂上選用的經典演算法也和這本書涵蓋的範圍類似。如果讀完本書之後,對於這個領域特別感興趣,可以考慮學習更進階的理論學與實作細節,甚至可以考慮做個資料科學家。

‧摘文

把機器學習化繁為簡的圖鑑大全
「大數據」、「AI」、「深度學習」等自2010年代初期開始流行的用語,如今已完全普及;而其相關技術─ 機器學習─ 更是與人們的生活密不可分。
該如何學習機器學習的演算法、該如何將機器學習應用在商務場合等課題,並非數據科學家專屬,軟體工程師或PM往往也必須面對。而本書正是一本介紹各種機器學習演算法的書籍。
剛開始接觸機器學習的讀者,是否常因為艱澀的方程式或統計學用語而傷透腦筋呢?這時若有一張淺顯易懂的圖來幫助理解,相信一定有助於各位在腦中建構機器學習的概念。為了讓不是機器學習專家的一般讀者也能輕鬆吸收,本書盡可能減少方程式,改以圖表為主來進行說明,使各種演算法的特徵與差異一目了然。
希望本書能為曾學過機器學習,卻因為複雜的方程式和統計學用語而受挫的讀者帶來幫助。
此外,本書的範例程式碼皆使用Python語法編寫。Python是當前最熱門的程式語言,與機器學習及統計相關的函式庫也非常豐富。在閱讀本書時,請務必親自操作,實際執行各範例程式碼。

本書適合對象
本書乃以下列讀者為對象撰寫而成。
對機器學習感興趣,已經開始學習的人。
已懂得一些機器學習演算法,想學習更多的人。
不熟悉方程式,看不懂機器學習專書的人。
想學會如何因應問題來選擇機器學習演算法的人。
有程式設計經驗,有能力執行範例程式碼的人。
本書並無詳細解說機器學習的數學原理及最佳化的具體運算過程,若想更深入了解,請參考本書引用的文獻或專書。

本書建議閱讀順序
本書各章內容如下:
第1章:說明機器學習的基礎知識。若想掌握機器學習的整體輪廓,請從第1章開始依序閱讀。
第2章與第3章:介紹各種機器學習演算法。若已具備某種程度的機器學習相關知識,或想查詢特定演算法,亦可從這兩章挑選自己所需的部分閱讀。
第4章:統整機器學習的評估方法。在實際使用機器學習時,本章的解說應能帶來幫助。
另外,Python環境設定方法、機器學習所需的數學知識等,皆詳載於附錄中。

何謂機器學習
機器學習,是指電腦根據被賦予的問題或環境,自動進行學習,並運用學習結果來解決問題的一連串過程。
與機器學習一起出現的詞彙,包括人工智慧(AI)及深度學習(Deep Learning)等等,現在就讓我們來一一釐清。
首先,人工智慧涵蓋的意義非常廣泛,是一種總括性的概念。而機器學習,則是實現人工智慧的方法之一;換言之,機器學習雖不是實現人工智慧的唯一方法,但近年在人工智慧的相關研究裡,以機器學習最為普遍。實現人工智慧的方法包羅萬象,有事先制定規則的方法,也有進行數理預測的方法等等。
近年備受矚目的,是一種名為深度學習的機器學習演算法。有些人誤以為深度學習就是人工智慧,但事實上,深度學習只是機器學習的演算法之一。起初,深度學習是因為在圖像辨識領域中成效卓越,才開始受到注目,如今已廣泛運用於其他領域。
機器學習有許多演算法,使用者必須根據機器學習的對象選擇最適合的演算法,而本書的目標正是幫助各位學會如何適切地選擇演算法。只要掌握每一種演算法的性質,相信就能學會實際操作機器學習。

機器學習的種類
機器學習有許多種類,根據輸入資料(input data),可分類如下:
? 監督式學習(Supervised Learning)
? 非監督式學習(Un-supervised Learning)
? 強化學習(Reinforcement Learning)
以下將逐一詳述。

監督式學習
監督式學習是將問題的答案輸入電腦,讓電腦學習機器學習模型的方法,前提是必須具備「表示特徵的資料」與「作為答案的目標資料」。
假設我們提供電腦「身高」和「體重」作為特徵資料,再提供「性別(男性/女性)」作為答案資料,讓電腦學習並建立預測模型。
之後,只要將新的「身高」、「體重」資料輸入預測模型,便能預測出「性別」。
日常生活中常見的分類問題之一,就是垃圾郵件過濾器。由使用者自行判斷垃圾郵件並貼上標籤,作為目標變數,而寄件者與郵件內文則是特徵。使用者貼上標籤的資料愈多,機器學習就會進行得愈順利,預測的結果也會更精確。
除了分類問題,監督式學習中還有「迴歸問題」(Regression),可預測大小關係具有意義的數值。例如,先將「性別」與「身高」作為特徵資料輸入電腦,再輸入「腳掌長」作為答案資料。
在分類問題中,雖然可以將「男」視為0、將「女」視為1,也就是將標籤加以數值化,但此數值的大小關係並不具備任何意義。相對地,鞋子的尺寸,也就是「26.5cm」與「24cm」等數值的大小關係,則具有意義。
預測這種具有意義的數值,就是所謂的迴歸。在迴歸問題中,我們會將目標變數視為一種連續值,因此像23.7cm 這種並非一般鞋子尺寸的數值,也可能成為預測值。

非監督式學習
上述的監督式學習,是同時透過特徵與目標變數(正確答案)來學習的方法,而非監督式學習則不會提供目標變數(正確答案)給電腦。
有些人可能會感到疑惑──假如不告訴電腦答案,電腦要怎麼學習?
在非監督式學習中,我們會先輸入特徵資料,再將這些資料加以轉換,以其他方式呈現,或是找出資料中的子集合;這麼做的主要目的是分析輸入資料的結構。
此外,相較於監督式學習,非監督式學習的結果較難以解釋,或是必須根據分析者的經驗來進行帶有主觀的解釋。這是因為監督式學習的指標,是「能不能正確地預測目標變數」;但採用非監督式學習時,則必須對輸入資料具有某種程度的先備知識,才能針對結果進行解釋。
以下將以「分析某國中的學生成績」為例,來說明非監督式學習。假設「擅長數學的學生,也很擅長理化,但不擅長國文和社會科」。
非監督式學習中另有一種名為分群(Clustering)的分析方法,可將資料區分為多個群集(Cluster,由相似資料組成的群體),再加以分析。一般人很難直接看懂多變量資料(Multivariate Data,由3種以上變數組成的資料),但只要使用分群,便可用群集這種簡單的形式呈現。

強化學習
強化學習旨在學習如何使在某個環境中行動的智慧代理人(Agent)獲得最大效益,不過強化學習並不在本書討論範圍內。
舉例而言,強化學習就好比玩家(智慧代理人)在電玩(環境)中不斷嘗試錯誤,以獲取高分(效益),贏得最後的勝利。我們也可以將強化學習視為一種監督式學習,效益則相當於目標變數的值。
以電玩來比喻,玩家在遊戲中每個場景裡的行動有太多組合,想光靠人力來替每個動作評分是極為困難的。若將遊戲的場景與玩家的行動視為特徵,將分數視為目標變數,那麼玩家只要反覆玩幾次遊戲,電腦便能自動收集特徵與目標變數的組合。在強化學習中,反覆學習玩家在遊戲中的行動與遊戲結果,便能逐漸學會最有效益的行動。

機器學習的應用
機器學習可應用在各種領域,其中最有名的就是與汽車自動駕駛相關的研究;在文字資料的自動分類與自動翻譯方面,也有顯著的成果。在醫療領域,機器學習可用於分析X 光片,幫助人們及早發現疾病。此外,在氣象資訊中,一直以來也有類似機器學習的應用。
近年電腦因為價格降低而大為普及,加速了機器學習相關研究的進展。
網際網路與IoT 等的發達,使我們可以輕鬆獲取大量的資料。
這個領域最有趣的地方,就是根據不同的資料選擇最適合的演算法,獲得前所未有的新發現。下一節,我們將學習機器學習的具體步驟,以期達到利用實際資料進行機器學習的目標。