實踐、實踐、實踐
本書通過不同的例子展示機器學習在具體項目中的應用和實踐經驗
使用 scikit-learn 作為編程框架,強調簡單、快速地建立模型
《機器學習——Python實踐》係統地講解瞭機器學習的基本知識,以及在實際項目中使用機器學習的基本步驟和方法;詳細地介紹瞭在進行數據處理、分析時怎樣選擇閤適的算法,以及建立模型並優化等方法,通過不同的例子展示瞭機器學習在具體項目中的應用和實踐經驗,是一本非常好的機器學習入門和實踐的書籍。
不同於很多講解機器學習的書籍,本書以實踐為導嚮,使用 scikit-learn 作為編程框架,強調簡單、快速地建立模型,解決實際項目問題。讀者通過對《機器學習——Python實踐》的學習,可以迅速上手實踐機器學習,並利用機器學習解決實際問題。《機器學習——Python實踐》非常適閤於項目經理、有意從事機器學習開發的程序員,以及高校相關專業在的讀學生閱讀。
魏貞原,IBM 高級項目經理,主要負責銀行客戶的復雜係統開發。同時是 IBM CIC量子計算 COE 團隊的 Python 領域專傢(Subject Matter Expert),負責量子計算應用的探索工作,對機器學習和深度學習有深入的研究,精通於運用機器學習來解決數據科學的問題。並運營“知之Python”公眾號,定期分享 Python 在機器學習和深度學習中的實踐知識。
基於大數據的人工智能如今異常火爆。 對於普通人而言,人工智能意味著自動駕駛、電腦醫生,甚至意味著許許多多人類的工作將被機器取代。而對於有誌於投身大數據和人工智能領域的傳統IT 人士來說,需要瞭解這些名詞的真正內涵,更加需要瞭解支撐這個所謂“智能時代”背後的機和原理。機器的智能當然不是天生的,需要通過從數據中學習來獲得,而 Python 是目前數據分和機器學習領域處於領先地位的編程語言。本書以初學者的視角,帶領讀者通過 Python 編程實踐,實際接觸和瞭解機器學習以及 Python 語言本身,希望在給讀者帶去知識和技能的同時,也能大傢悄悄開啓一段駕馭智能時代的旅程。
——王若平 IBM 客戶創新中心質量保證部負責人
本書麵嚮於有一定編程基礎,並且有誌於大數據分析、數據挖掘和算法的程序員、項目經理,以及相關專業的學生。本書不同於教授編程語言的普通教材,而是通過列舉很多經典實例,來幫助讀者理解 Python 語言,同時可以使讀者理解和延伸對大數據分析與挖掘的認識。未來是一個數據的世界,希望讀者通過這本書能夠很好地駕馭數據,給予我們更大的幫助!同時感謝作者的辛努力與智慧!
——李鴻飛,IBM 高級經理, Cloud Application Development Leader,Complex SI & Arch Leade
第一部分 初始
1 初識機器學習 2
1.1 學習機器學習的誤區 2
1.2 什麼是機器學習 3
1.3 Python 中的機器學習 3
1.4 學習機器學習的原則 5
1.5 學習機器學習的技巧 5
1.6 這本書不涵蓋以下內容 6
1.7 代碼說明 6
1.8 總結 6
2 Python 機器學習的生態圈 7
2.1 Python 7
2.2 SciPy 9
2.3 scikit-learn 9
2.4 環境安裝 10
2.5 總結 12
3 第一個機器學習項目 13
3.1 機器學習中的 Hello World 項目 13
3.2 導入數據 14
3.3 概述數據 15
3.4 數據可視化 18
3.5 評估算法 20
3.6 實施預測 23
3.7 總結 24
4 Python 和 SciPy 速成 25
4.1 Python 速成 25
4.2 NumPy 速成 34
4.3 Matplotlib 速成 36
4.4 Pandas 速成 39
4.5 總結 41
第二部分 數據理解
5 數據導入 44
5.1 CSV 文件 44
5.2 Pima Indians 數據集 45
5.3 采用標準 Python 類庫導入數據 46
5.4 采用 NumPy 導入數據 46
5.5 采用 Pandas 導入數據 47
5.6 總結 47
6 數據理解 48
6.1 簡單地查看數據 48
6.2 數據的維度 49
6.3 數據屬性和類型 50
6.4 描述性統計 50
6.5 數據分組分布(適用於分類算法) 51
6.6 數據屬性的相關性 52
6.7 數據的分布分析 53
6.8 總結 54
7 數據可視化 55
7.1 單一圖錶 55
7.2 多重圖錶 58
7.3 總結 61
第三部分 數據準備
8 數據預處理 64
8.1 為什麼需要數據預處理 64
8.2 格式化數據 65
8.3 調整數據尺度 65
8.4 正態化數據 67
8.5 標準化數據 68
8.6 二值數據 69
8.7 總結 70
9 數據特徵選定 71
9.1 特徵選定 72
9.2 單變量特徵選定 72
9.3 遞歸特徵消除 73
9.4 主要成分分析 75
9.5 特徵重要性 76
9.6 總結 76
第四部分 選擇模型
10 評估算法 78
10.1 評估算法的方法 78
10.2 分離訓練數據集和評估數據集 79
10.3 K 摺交叉驗證分離 80
10.4 棄一交叉驗證分離 81
10.5 重復隨機分離評估數據集與訓練數據集 82
10.6 總結 83
11 算法評估矩陣 85
11.1 算法評估矩陣 85
11.2 分類算法矩陣 86
11.3 迴歸算法矩陣 93
11.4 總結 96
12 審查分類算法 97
12.1 算法審查 97
12.2 算法概述 98
12.3 綫性算法 98
12.4 非綫性算法 101
12.5 總結 105
13 審查迴歸算法 106
13.1 算法概述 106
13.2 綫性算法 107
13.3 非綫性算法 111
13.4 總結 113
14 算法比較 115
14.1 選擇最佳的機器學習算法 115
14.2 機器學習算法的比較 116
14.3 總結 118
15 自動流程 119
15.1 機器學習的自動流程 119
15.2 數據準備和生成模型的 Pipeline 120
15.3 特徵選擇和生成模型的 Pipeline 121
15.4 總結 122
第五部分 優化模型
16 集成算法 124
16.1 集成的方法 124
16.2 裝袋算法 125
16.3 提升算法 129
16.4 投票算法 131
16.5 總結 132
17 算法調參 133
17.1 機器學習算法調參 133
17.2 網格搜索優化參數 134
17.3 隨機搜索優化參數 135
17.4 總結 136
第六部分 結果部署
18 持久化加載模型 138
18.1 通過 pickle 序列化和反序列化機器學習的模型 138
18.2 通過 joblib 序列化和反序列化機器學習的模型 140
18.3 生成模型的技巧 141
18.4 總結 141
第七部分 項目實踐
19 預測模型項目模闆 144
19.1 在項目中實踐機器學習 145
19.2 機器學習項目的 Python 模闆 145
19.3 各步驟的詳細說明 146
19.4 使用模闆的小技巧 148
19.5 總結 149
20 迴歸項目實例 150
20.1 定義問題 150
20.2 導入數據 151
20.3 理解數據 152
20.4 數據可視化 155
20.5 分離評估數據集 159
20.6 評估算法 160
20.7 調參改善算法 164
20.8 集成算法 165
20.9 集成算法調參 167
20.10 確定最終模型 168
20.11 總結 169
21 二分類實例 170
21.1 問題定義 170
21.2 導入數據 171
21.3 分析數據 172
21.4 分離評估數據集 180
21.5 評估算法 180
21.6 算法調參 184
21.7 集成算法 187
21.8 確定最終模型 190
21.9 總結 190
22 文本分類實例 192
22.1 問題定義 192
22.2 導入數據 193
22.3 文本特徵提取 195
22.4 評估算法 196
22.5 算法調參 198
22.6 集成算法 200
22.7 集成算法調參 201
22.8 確定最終模型 202
22.9 總結 203
5 數據導入
在訓練機器學習的模型時,需要用到大量數據,最常用的做法是利用曆史的數據來訓練模型。這些數據通常會以 CSV 的格式來存儲,或者能夠方便地轉化為 CSV 格式。在開始啓動機器學習項目之前,必須先將數據導入到 Python 中。下麵將介紹三種將 CSV數據導入到 Python 中的方法,以便完成對機器學習算法的訓練。
通過標準的 Python 庫導入 CSV 文件。
通過 NumPy 導入 CSV 文件。
通過 Pandas 導入 CSV 文件。
5.1 CSV 文件
CSV 文件是用逗號(,)分隔的文本文件。在數據導入之前,通常會審查一下 CSV文件中包含的內容。在審查 CSV 文件時,通常要注意以下幾個方麵。
5.1.1 文件頭
如果 CSV 的文件裏包括文件頭的信息,可以很方便地使用文件頭信息來設置讀入數據字段的屬性名稱。如果文件裏不含有文件頭信息,需要自己手動設定讀入文件的字段屬性名稱。數據導入時,設置字段屬性名稱,有助於提高數據處理程序的可讀性。
5.1.2 文件中的注釋
在 CSV 文件中,注釋行是以“井”號(#)開頭的。是否需要對讀入的注釋行做處理,取決於采用什麼方式讀入 CSV 文件。
5.1.3 分隔符
CSV 文件的標準分隔符是逗號(,),當然也可以使用 Tab 鍵或空格鍵作為自定義的分隔符。當使用這兩種分隔符時,文件讀取是要指明分隔符的。
5.1.4 引號
當有的字段值中有空白時,這些值通常都會被引號引起來,默認使用雙引號來標記這些字段值。如果采用自定義格式,那麼在文件讀取時要明確在文件中采用的自定義格式。
5.2 Pima Indians 數據集
首先介紹一下在本章和後續章節中要使用的測試數據。目前在 UCI 機器學習倉庫(http://archive.ics.uci.edu/ml/datasets.html)中有大量的免費數據,可以利用這些數據來學習機器學習,並訓練算法模型 。本章選擇的 Pima Indians 數據集就是從 UCI 中獲取的。這是一個分類問題的數據集, 主要記錄瞭印第安人最近五年內是否患糖尿病的醫療數據。
這些數據都是以數字的方式記錄的,並且輸齣結果是 0 或 1,使我們在機器學習的算法中建立模型變得非常方便。
5.3 采用標準 Python 類庫導入數據
Python 提供瞭一個標準類庫 CSV,用來處理 CSV 文件。這個類庫中的 reader()函數用來讀入 CSV 文件。當 CSV 文件被讀入後,可以利用這些數據生成一個 NumPy 數組,用來訓練算法模型。首先下載數據文件到應用目錄下,並命名文件為 pima.csv。這個文件中所有的數據都是數字,並且數據中不含有文件頭。代碼如下:
from csv import reader
import numpy as np
# 使用標準的 Python 類庫導入 CSV 數據
filename = 'pima_data.csv'
with open(filename, 'rt') as raw_data:
readers = reader(raw_data, delimiter=',')
x = list(readers)
data = np.array(x).astype('float')
print(data.shape)
執行結果如下:
(768, 9)
代碼非常簡單,就不詳細進行講解瞭。詳細內容請查閱 Python 的 API 介紹。
5.4 采用 NumPy 導入數據
也可以使用 NumPy 的 loadtxt()函數導入數據。使用這個函數處理的數據沒有文件頭,並且所有的數據結構是一樣的,也就是說,數據類型是一樣的。代碼如下:
from numpy import loadtxt
# 使用 NumPy 導入 CSV 數據
filename = 'pima_data.csv'
with open(filename, 'rt') as raw_data:
data = loadtxt(raw_data, delimiter=',')
print(data.shape)
這段代碼就比直接使用 Python 的標準類庫簡潔瞭很多,執行結果如下:
(768, 9)
5.5 采用 Pandas 導入數據
前麵介紹瞭如何通過標準的 Python 類庫和 NumPy 來導入數據。接下來會通過一個例子來演示如何通過 Pandas 導入 CSV 文件的數據。 通過 Pandas 來導入 CSV 文件要使用pandas.read_csv()函數。這個函數的返迴值是 DataFrame,可以很方便地進行下一步的處理。這個函數的名稱非常直觀,便於代碼的閱讀和後續對數據的處理。在機器學習的項目中,經常利用 Pandas 來做數據清洗與數據準備工作。因此,在導入 CSV 文件時,推薦大傢使用這個方法。代碼如下:
from pandas import read_csv
# 使用 Pandas 導入 CSV 數據
filename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age',
'class']
data = read_csv(filename, names=names)
print(data.shape)
這段代碼為數據補充瞭文件頭,執行結果如下:
(768, 9)
5.6 總結
本章主要介紹瞭三種導入 CSV 文件到 Python 的方法,分彆是:通過標準的 Python 類庫導入、通過 NumPy 導入和通過 Pandas 導入。在進行機器學習項目實踐時,建議采用 Pandas方式導入數據。 到目前為止, 本書已經介紹瞭在機器學習中的基本環境和相應的類庫的使用方法,以及一個簡單的機器學習的分類的例子。本章介紹瞭如何導入數據到 Python 中,接下來就通過描述統計的方式來理解導入的數據。
前言
“這是最好的時代,也是最壞的時代”,這是英國文豪狄更斯的名著《雙城記》開篇的第一句話,一百多年來不斷被人引用。這裏再次引用它來形容智能革命給我們帶來的未來社會。從 2016 年 AlphaGo 在圍棋比賽中戰勝韓國選手李世石,到 2017 年 Master 戰勝世界排名第一的圍棋選手柯潔,人工智能再一次引起瞭世人的注意。在大數據齣現之前,人工智能的概念雖然一直存在,但是計算機一直不擅長處理需要依賴人類的智慧解決的問題,現在換個思路就可以解決這些問題,其核心就是變智能問題為數據問題。由此,全世界開始瞭新一輪的技術革命——智能革命。
自從 1687 年艾薩剋·牛頓發錶瞭論文《自然定律》,對萬有引力和三大運動定律進行瞭描述,人類社會進入瞭科學時代。在此之後,瓦特通過科學原理直接改進蒸汽機,開啓瞭工業革命的篇章,由於機器的發明及運用成為這個時代的標誌,因此曆史學傢稱這個時代為“機器時代”。機器時代是利用機器代替人力,在原有的産業基礎上加上蒸汽機形成新的産業,例如馬車加上蒸汽機成為火車,改變瞭人的齣行方式;帆船加上蒸汽機成為輪船,讓貨物的運輸變得更加便捷。同時,原有的工匠被更加便宜的工人替代,社會的財富分配不均,社會進入動蕩期,如英國大約花費瞭半個世紀的時間纔完成瞭工業革命的變革。同樣,第二次工業革命和信息革命,每一次變革都讓財富更加集中,給社會帶來動蕩。第二次工業革命同樣花費瞭半個世紀的時間,一代人纔消除工業革命帶來的影響,讓大部分人受益。當前的智能革命也會帶來財富的重新分配和社會的動蕩,當然目前的政府對這次革命的過程都有瞭足夠的瞭解,能夠把社會的動蕩控製在最小範圍,但是在變革中的人依然需要經受這次變革帶來的動蕩。
每一次變革都是一次思維方式的改進, 工業革命是機器思維替代瞭農耕時代的思想;信息革命是香農博士(1916—2001 年)的信息論帶來的思想方法替代機器思維,並成為社會主導思想;在這次智能革命中,以大數據為核心的思維方式將會主導這次變革。在曆次的技術革命中,一個人、一傢企業,甚至一個國傢,可以選擇的道路隻有兩條:要麼加入變革的浪潮,成為前 2%的弄潮兒;要麼觀望徘徊,被淘汰。要成為 2%的弄潮兒,需要積極擁抱這次智能變革,掌握在未來社會不會被淘汰的技能。在以大數據為基石的智能社會,利用機器學習算法對數據進行挖掘,是使機器更智能的關鍵,掌握數據挖掘是擁抱智能社會的舉措之一。本書就將介紹如何利用機器學習算法來解決問題,對數據進行挖掘。
作 者
序言:
人工智能作為一種新技術,它的發展變遷可以用著名的 S 麯綫來錶示。具有劃時代意義的新技術(Disruptive Innovation),往往齣現在社會發展的成熟期。這時國傢的 GDP 增長開始減緩,生産成本居高不下,相比之下社會需求卻沒有顯著增加。現在的人工智能技術發展正處於這樣一個時期,可以說是應運而熱。但我們更關心的是它是否到瞭騰飛的前期。我個人覺得時機已經到來,原因有三:數字化、物聯網及人工智能(AI)技術。
第一,社會生活的高度數字化進程已經讓人與人之間的聯結幾乎完全可以用數字化的方式來描述。這一切極大地歸功於智能手機和社交媒體的深度普及。關於我們的信息都被記錄在信息係統裏,無論是以格式化的形式(ERP、銀行係統、電商係統等),還是以非格式化的形式(社交媒體上的文字或語音的交流),這些都已成為機器可以分析解讀的數據,而且還在不斷積纍中。
第二, 物聯網技術使信息係統能夠實時不間斷地從我們的日常活動中獲取新的信息,並且可以通過雙嚮通信機製給予實時反饋。比如智能手錶和智能掃地機器人等。
第三,人工智能技術本身的發展已經到瞭足以支撐大規模商業化應用的階段。無論是人臉識彆還是醫療文獻分析,人工智能已經作為工具齣現在我們的身邊。
很多人還在爭論人工智能是否會成為人類的敵人,尤其是在 AI 技術發展到泛人工智能(Artificial General Intelligence, AGI)甚至超級人工智能(Artificial SuperIntelligence, ASI)的時候。這是否會成為現實或者什麼時候會成為現實誰也說不清楚。但在人機同行的今天,如果還不趕快學習充實自己,明天我們肯定會遇到已經用 AI 版本升級瞭的人類對手。這種痛也許隻有百多年前抵抗英法聯軍的八旗子弟纔領悟過,但為時已晚。如何不掉隊,趕上甚至超越時代發展潮流,學習新技術是唯一手段。
就像前幾次工業革命一樣,人工智能帶來的技術革命也有三個關鍵成功因素(3M):數據(原材料: Raw Material)、技術(機器: Machine)及商業模式(Business Model)。在現實世界中,數據的金礦已經大量積纍,並等待我們去開采和精煉。技術,如 Python、捲積神經網絡等都已被成熟應用。商界精英更是想齣瞭很多商業化的應用場景,在同聲翻譯、文本分析、醫療影像分析等領域展開瞭眾多的投資和商業化應用。本書作為一本介紹 Python 的技術類專業書籍,立足機器學習中的監督式學習,圍繞著課程、項目和方法深入淺齣地介紹瞭如何使用 Python 來完成機器學習的相關工作。內容涵蓋瞭人能的三個關鍵成功因素,以體係化和細緻的講解方便讀者理解和學習有關機器學習的全過程。本書是一本實戰性很強的參考書籍,幫助我們在人工智能時代迅速掌握新技術的精髓。
周德標
副閤夥人
IBM 大中華區董事長執行助理
“周教授談人工智能”微信公眾號作者
專業綜閤網上購物商城,銷售超數萬品牌,4020萬種商品
評分還沒閱讀。是正版。好好學習,天天嚮上?
評分很不錯的書級,自學起來難度不算太大
評分不錯,很實惠,物流速度很快
評分書很好,快遞速度也快,稱搞活動滿減買的,很劃算
評分東西不錯,可以看看,就是基於win10係統的,不是linux係統
評分不錯,一直是我想找的類型的書。
評分活動購買 不管好壞 慢慢看吧 不過據說很一般 那就也隨便看看吧 活動最重要
評分物流很快,一直信賴京東
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有