官术网_书友最值得收藏!

  • Python機器學(xué)習(xí)
  • (印)阿布舍克·維賈亞瓦吉亞(Abhishek Vijayvargia)
  • 6864字
  • 2021-02-08 16:52:23

1.2 機器學(xué)習(xí)過程

機器學(xué)習(xí)不僅僅是一種簡單的算法,還可以將其放在其他任何地方以獲得奇妙的結(jié)果。機器學(xué)習(xí)是一個從定義數(shù)據(jù)開始,最終獲得一定準(zhǔn)確率的模型的過程。在本節(jié)中,我們將學(xué)習(xí)這個過程。

1.問題定義

機器學(xué)習(xí)的過程從定義一個商業(yè)問題開始。機器學(xué)習(xí)的需求是什么?這個任務(wù)真的需要高級的預(yù)測算法來解決嗎?

問題定義是非常重要的,它提供了更正式地思考解決方案的方向。它基本上處理兩個問題。

A.問題是什么?

這個問題涵蓋了問題的定義,并使問題變得更加正式。假設(shè)我們想要確認(rèn)圖像中是否包含人。

現(xiàn)在定義這個任務(wù),將其分為任務(wù)(T)、經(jīng)驗(E)和性能(P)。

  • 任務(wù)(T):根據(jù)圖像中是否包含人對圖像進行分類。
  • 經(jīng)驗(E):帶有是否包含人的標(biāo)簽的圖像。
  • 性能(P):錯誤率。在所有的分類圖像中,錯誤預(yù)測的百分比是多少。錯誤率越低,準(zhǔn)確率越高。

B.為什么這個問題需要解決方案?

這個問題更側(cè)重于商業(yè)方面,它包括解決問題的動機和益處。

假如你是一個研究者,希望解決某個問題并發(fā)表論文,使之成為他人解決問題的基準(zhǔn),這可能就是你的動機。

關(guān)于你的問題其他需要確定的是,在沒有安全措施的情況下,夜間在銀行的自動取款機上是否有人類活動(假設(shè)所要解決的問題與自動取款機的安全有關(guān))。

還需要定義可以使用此解決方案的場景。這是一個通用型的解決方案,還是為特定任務(wù)(ATM傳感器中的檢測人員)所設(shè)計的呢?解決方案的失效日期是什么時候(它是終身的還是在特定的期限內(nèi))?

2.?dāng)?shù)據(jù)采集

在定義問題之后,開始進行數(shù)據(jù)采集。收集數(shù)據(jù)有多種不同的方式,如果想把評論與評級聯(lián)系起來,就要從抓取網(wǎng)站開始。為了分析Twitter數(shù)據(jù)并將其與情感聯(lián)系起來,就要從Twitter提供的API入手,收集標(biāo)簽數(shù)據(jù)或者與某個公司相關(guān)聯(lián)的數(shù)據(jù)。市場調(diào)查人員通過創(chuàng)建不同的調(diào)查表格,并將其放在網(wǎng)站上來收集數(shù)據(jù)。對于像Amazon、 Facebook這樣擁有眾多用戶的公司,其數(shù)據(jù)是巨大的,而根據(jù)問題的不同,還需要收集數(shù)據(jù)和標(biāo)簽。假設(shè)要建立一個新聞分類器,將新聞劃分為體育新聞、市場新聞和政治新聞。因此,收集到的每一條新聞都需要一個與之相關(guān)的標(biāo)簽,通過這些數(shù)據(jù)可以構(gòu)造機器學(xué)習(xí)的分類器。

正確的數(shù)據(jù)是解決機器學(xué)習(xí)問題的關(guān)鍵。即使是基本算法,高質(zhì)量的數(shù)據(jù)也會產(chǎn)生令人滿意的結(jié)果。

3.?dāng)?shù)據(jù)準(zhǔn)備

在采集數(shù)據(jù)之后,需要專注于數(shù)據(jù)準(zhǔn)備。收集的數(shù)據(jù)要準(zhǔn)備成機器學(xué)習(xí)算法所能使用的格式。算法不是魔術(shù)表演,數(shù)據(jù)必須以正確的形式輸入到機器學(xué)習(xí)算法中才能獲得結(jié)果。根據(jù)算法庫的不同,算法可以適應(yīng)不同類型的輸入格式。

數(shù)據(jù)準(zhǔn)備是從數(shù)據(jù)選擇開始的,并不是收集到的每個數(shù)據(jù)都對問題的解決有幫助。假設(shè)你正在分析服務(wù)器上的日志,在每個用戶活動之后會生成許多與系統(tǒng)相關(guān)的信息,如果正在預(yù)測的是營銷活動的市場反應(yīng),那么這個日志可能就不起作用了。所以,基于所要解決的問題,應(yīng)將無關(guān)數(shù)據(jù)從之后的操作中刪除。

在更高層次的基礎(chǔ)上識別數(shù)據(jù)后,需要對數(shù)據(jù)進行轉(zhuǎn)換或預(yù)處理,使之能更好地應(yīng)用于機器學(xué)習(xí)算法。以下是數(shù)據(jù)預(yù)處理過程中的一些過程。

  • 清理(Cleaning):數(shù)據(jù)可能含有需要移除的錯誤。假設(shè)數(shù)據(jù)中缺少某些屬性的數(shù)值,由于目前并沒有適合的算法能夠處理值缺失問題,因此可以用一些值(數(shù)值的均值/中值和分類值的默認(rèn)值)代替缺失值。如果數(shù)據(jù)包含敏感信息,如電子郵件的ID和用戶的聯(lián)系號碼,則需要在與團隊共享數(shù)據(jù)之前刪除數(shù)據(jù)中的敏感信息。
  • 格式化(Formatting):算法需要預(yù)定義格式的數(shù)據(jù)。基于Python機器學(xué)習(xí)庫的要求,采用Python列表的形式表示數(shù)據(jù)。一些實時的機器學(xué)習(xí)庫使用的是JSON格式的數(shù)據(jù),而Excel文件使用CSV格式的數(shù)據(jù)。根據(jù)使用工具或技術(shù)的不同,需要對數(shù)據(jù)進行格式化,使其滿足使用工具或技術(shù)對數(shù)據(jù)格式的要求。
  • 采樣(Sampling):并非所有的數(shù)據(jù)都是有用的。一些在模型中存儲數(shù)據(jù)的算法很難實時生成預(yù)測,可以從數(shù)據(jù)中刪除類似的實例。如果是分類模型,可以按照標(biāo)簽進行等比例采樣。
  • 分解(Decomposition):分解會使得一些特征更加有用。以數(shù)據(jù)庫中的日期屬性為例,可以把日期分解成日、月、年,還可以創(chuàng)建諸如周末或工作日、季度、閏年或日期等特征,使其在預(yù)測中更有用。
  • 縮放(Scaling):不同的屬性遵循不同的單位和值。假設(shè)通常以厘米為單位測量一個人的身高,而對于一些數(shù)據(jù),可能是以英寸為單位。所以,需要先將其換算成厘米。另外,一個屬性的高/低值可能會影響到其他屬性。例如有3個特征,如人的年齡、體重和年收入,現(xiàn)在希望根據(jù)它們預(yù)測醫(yī)療保險計劃。如果直接使用這些數(shù)據(jù),模型將高度依賴于工資,因為工資的數(shù)值遠(yuǎn)遠(yuǎn)高于其他屬性的值。所以,需要對每個屬性的值進行縮放,調(diào)整為[0,1]或[-1,1 ]。

這個過程也稱為特征處理(Feature Processing),它包括特征選擇、預(yù)處理以及將其轉(zhuǎn)換為對于機器學(xué)習(xí)算法有益處的格式。

4.?dāng)?shù)據(jù)分割——訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)

機器學(xué)習(xí)算法的目標(biāo)是對未知的新數(shù)據(jù)進行預(yù)測。我們使用訓(xùn)練數(shù)據(jù)來建立模型。在訓(xùn)練數(shù)據(jù)時,算法將逐漸減少訓(xùn)練的誤差。但是,不能將訓(xùn)練數(shù)據(jù)的準(zhǔn)確率(Accuracy)視為廣義的準(zhǔn)確率,其原因在于該算法可能會記住實例并對其進行相應(yīng)的分類。所以,為了評估生成的模型,需要將數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。利用訓(xùn)練數(shù)據(jù)進行算法訓(xùn)練,利用測試數(shù)據(jù)來計算生成模型的最終準(zhǔn)確率。測試數(shù)據(jù)并不參與算法訓(xùn)練。

一般將60%~80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),剩余的部分作為測試數(shù)據(jù)。所以,在測試數(shù)據(jù)中獲得最好結(jié)果的模型可以作為目標(biāo)模型。

5.算法選擇

我們從一組機器學(xué)習(xí)算法開始,并將訓(xùn)練數(shù)據(jù)的特征應(yīng)用到算法中,算法選擇依賴于問題的定義。如果從電子郵件中收集數(shù)據(jù),并將郵件分為垃圾郵件或非垃圾郵件,則這時所需要的算法是在輸入變量后輸出相應(yīng)的結(jié)果(垃圾郵件或者非垃圾郵件),這類算法稱為分類(Classification)算法(如決策樹、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)等)。如果想預(yù)測某一任意連續(xù)變量(如預(yù)測即將到來的季度銷售量),則使用回歸(Regression)算法(如線性回歸、核回歸等)。如果所解決的問題并沒有相關(guān)的任何輸出或反應(yīng),則可以使用聚類(Clustering)算法,根據(jù)它們的特性對其分組。每種類別中都有大量的算法,我們將在后續(xù)的章節(jié)中給出示例。

6.算法訓(xùn)練

在選擇算法之后,開始訓(xùn)練模型。訓(xùn)練模型是在訓(xùn)練數(shù)據(jù)集上進行的,大多數(shù)算法的權(quán)值/參數(shù)在訓(xùn)練開始時都是隨機分配的,并在每次迭代中加以改進。算法訓(xùn)練過程中,在訓(xùn)練數(shù)據(jù)集上多次運行以產(chǎn)生結(jié)果,如圖1.1所示。例如,在線性回歸的情況下,算法在開始時隨機放置分離線,在每次迭代之后不斷地改進自身(也就是移動分離線)。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0101.jpg

圖1.1

7.測試數(shù)據(jù)評估

利用訓(xùn)練數(shù)據(jù)生成最佳算法后,在測試數(shù)據(jù)集上對算法的性能進行評估。測試數(shù)據(jù)集并不能參與算法訓(xùn)練,因此測試數(shù)據(jù)并不能影響算法的決策。

8.參數(shù)調(diào)整

在選擇正確的算法后,可以嘗試對其進行改進以獲得更好的性能。每個算法都有不同的參數(shù)設(shè)置方式,可以對其進行配置從而更改算法性能,這稱為參數(shù)調(diào)整(Parameter Tuning)。例如可以改變算法學(xué)習(xí)的速率(學(xué)習(xí)率)來提高算法性能,這些參數(shù)稱為超參數(shù)(Hyper Parameter)。對于機器學(xué)習(xí)來說,參數(shù)調(diào)整更像是一門藝術(shù)。

9.模型使用

上述所有步驟完成之后,就可以獲得在訓(xùn)練集上訓(xùn)練生成,并在測試集上完成評估的模型。現(xiàn)在可以使用這個模型來預(yù)測新數(shù)據(jù)的值。對于生產(chǎn)環(huán)境,可以將模型部署到服務(wù)器,并通過API接口使用模型的預(yù)測功能。當(dāng)然,這個模型并不總一樣的,每當(dāng)獲得新數(shù)據(jù)時,都要將上面所列出的步驟重新進行一遍,以改進模型的性能。

因此,在機器學(xué)習(xí)中,從問題開始,最后以一個解決問題的預(yù)測算法結(jié)束。

通過下面的問題,我們開始嘗試了解機器學(xué)習(xí)算法是如何解決問題的。

假設(shè)你需要購買一棟房子,現(xiàn)在開始查看市場上正在出售的房屋,并據(jù)此核對你的預(yù)算。你對將要購買的房子有多個要求,首先就是房子的面積。

在圖1.2的情景中,你先考查了一棟600平方英尺(約56m2)的房子,價格是220 000英鎊(約1 942 578元)。這個房子的確很不錯,但是它并不滿足你的要求——你將和你的家人一同居住,而這個房子面積太小,并不能讓每個人都住得舒適。所以,你繼續(xù)研究并找到一棟1700平方英尺(約158m2)的房子,價格是730 000英鎊(約6 445 827元)。這個房子滿足你的要求,但是它的價格有些超出你現(xiàn)在的預(yù)算——你的預(yù)算與小面積房子的價格相比要高一些,但也不像大房子的價格那么高。然而,只有當(dāng)你與業(yè)主或代理人見面并提交詳細(xì)資料后,才能得到房子的實際價格。但是你并不想與每一個業(yè)主或者代理人見面。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0102.jpg

圖1.2

在二維(2D)平面上分析一下你所考查的兩個屬性,如圖1.3所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0103.jpg

圖1.3

現(xiàn)在,你在城市里閑逛,找到一棟面積在這兩棟房子之間的房子。

這棟新房子的面積大約有1 250平方英尺(約116m2),但你還不知道價格。所以,你想預(yù)測房子的價格,看其是否符合預(yù)算和要求。

將新房子的信息放在同一個二維平面上,試著預(yù)測這個房子的價格,如圖1.4所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0104.jpg

圖1.4

為了預(yù)測房屋的價格,將設(shè)置一條符合已知結(jié)果(即房屋價格和房屋面積)的直線,這里得到了如圖1.5所示的一條直線。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0105.jpg

圖1.5

通過這條直線,可以預(yù)測出1250平方英尺(約116m2)的房子的價格是475 000英鎊(約4 194 202.5元)。所以,我們得到了一條根據(jù)房子面積來預(yù)測房子價格的直線,這種技術(shù)稱為線性回歸(Linear Regression)。可以把這種技術(shù)理解為在現(xiàn)有數(shù)據(jù)點上尋找最佳直線。

比如,計算3個點到直線距離之和的最小值。首先,隨機選擇一條線,直線上方有A、B、C共3個點,如圖1.6所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0106.jpg

圖1.6

然后,計算每個點到直線的距離,如圖1.7所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0107.jpg

圖1.7

可以得到總距離是a+b+c。現(xiàn)在,移動直線的位置(向下移動)并再次計算點到直線的距離,如圖1.8所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0108.jpg

圖1.8

改變了線的位置,但總距離a+b+c增加了。顯然,這不是我們想要的結(jié)果。讓我們將直線朝另一個方向(向上移動)移動,如圖1.9所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0109.jpg

圖1.9

這條直線(見圖1.9)比第一條直線(見圖1.7)要更符合要求。現(xiàn)在移動這條線,并試著重復(fù)進行同樣的步驟。最終通過這種方式結(jié)束直線的選擇,從而確定直線位置,如圖1.10所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0110.jpg

圖1.10

對于給定的3個點(A、 B、 C)來說,圖1.10所示的直線是最符合條件的。在這里取3個點到直線的非負(fù)距離,找到這條線的方法稱為梯度下降法。

有時在所有數(shù)據(jù)點上擬合一條直線并沒有多大意義。現(xiàn)在思考圖1.11所示的點集。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0111.jpg

圖1.11

如果嘗試使用線性回歸技術(shù)來擬合一條直線,它看起來如圖1.12所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0112.jpg

圖1.12

很明顯,這條線不適合用來預(yù)測。相反,可以用圖1.13所示的曲線來對數(shù)據(jù)建模。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0113.jpg

圖1.13

這就是所謂的多項式回歸(Polynomial Regression) —— 因為其參數(shù)是多項式。

再來看另一個例子,例如有一個售鞋網(wǎng)站,其中包含來自不同公司的各種鞋子,可以通過其網(wǎng)上商店訂購鞋子。鞋子成功交付后,公司將發(fā)送電子郵件獲取顧客的反饋。顧客在評論區(qū)內(nèi)留言,其中有些評論是正面的,有些評論則是負(fù)面的。

該公司每天銷售數(shù)千雙鞋,需要跟蹤每一個評論并采取相應(yīng)的行動。如果顧客評論說鞋子質(zhì)量不佳,則需向生產(chǎn)商詢問有關(guān)產(chǎn)品的質(zhì)量問題;有些鞋子反響很好,則最好將它們放在網(wǎng)站的首頁。

為了解決這個問題,首先需要從一組顧客評論開始,將每個評論分為負(fù)面評論或者正面評論,下面給出部分示例。

正面評論

A1:質(zhì)量不錯!我很喜歡這雙鞋子。

A2:非常好的產(chǎn)品。

A3:給我爸爸買的,他很喜歡。

負(fù)面評論

B1:材質(zhì)不好,不適合。

B2:很不喜歡這個產(chǎn)品,包裝也很不好。

B3:千萬不要買這個產(chǎn)品。

分析示例中的正面評論和負(fù)面評論,會發(fā)現(xiàn),如果評論中包含“喜歡”這個詞,那么它更可能是一個正面評論。因此,創(chuàng)建這條規(guī)則并檢查所有數(shù)據(jù)集,會發(fā)現(xiàn)60%的正面評論中包含“喜歡”這個詞;另一方面,只有10%的負(fù)面評論中包含“喜歡”這個詞。

同樣,其他詞語所占的比例如表1.1所示。

表1.1

正面評論

負(fù)面評論

喜歡

60%

10%

很好

45%

7%

36%

8%

4%

62%

很差

2%

23%

因此,對于將來可能獲得的評論,根據(jù)其所包含的詞的復(fù)合概率,可以判定該評論是正面評論還是負(fù)面評論,這就是樸素貝葉斯分類器(Na?ve Bayes Classifier)

再列舉一個向不同的人推薦雜志的例子。假設(shè)已經(jīng)記錄了用戶的年齡、性別、位置以及他們閱讀的雜志類型,表1.2所列為記錄的數(shù)據(jù)。

表1.2

年齡

性別

位置

雜志

21

美國

運動

15

美國

兒童

37

印度

政治

42

英國

商業(yè)

32

美國

運動

14

印度

兒童

53

印度

政治

現(xiàn)在,通過對這些數(shù)據(jù)進行觀察,可以發(fā)現(xiàn)小于15歲的人喜歡閱讀兒童雜志。根據(jù)其制作一個節(jié)點和它的決策,如圖1.14所示。每個圓節(jié)點表示決策節(jié)點,圖的邊緣(箭頭)則表示相應(yīng)的決策,每個矩形節(jié)點表示通過圖分支之后采取的決策。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0114.jpg

圖1.14

因此,可以說每個年齡小于或等于15歲的人都有可能閱讀兒童雜志。現(xiàn)在再來處理大于15歲的讀者的分支。

現(xiàn)在,第二個觀察特征是男性,他們喜歡閱讀政治雜志。為其創(chuàng)建相同的決策節(jié)點和分支,如圖1.15所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0115.jpg

圖1.15

接下來,需要看一下年齡在15歲以上的女性的選擇。還有一個信息可以利用——地區(qū)。因此,可以說,來自美國的女性喜歡閱讀體育雜志,而其他地區(qū)的女性則喜歡商業(yè)雜志。在這里形成的節(jié)點如圖1.16所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0116.jpg

圖1.16

正確地對每個數(shù)據(jù)點進行分類,這個過程中形成了決策樹。可能存在多種創(chuàng)建決策樹的方法。根據(jù)現(xiàn)有的數(shù)據(jù),這些方法可以做出正確的預(yù)測。

圖1.17所示的這棵樹對數(shù)據(jù)進行了準(zhǔn)確的分類。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0117.jpg

圖1.17

再來舉另一個例子,有幾個人每年申請貸款,銀行根據(jù)他們的收入和貸款額從而決定是否對其提供貸款,目標(biāo)是向那些在規(guī)定時間內(nèi)償還債務(wù),且沒有任何違約的人提供貸款。

如果一個人月收入是20 000美元,他申請了100 000美元的貸款,銀行根據(jù)他的收入來源可以批準(zhǔn)貸款;如果一個人月收入是3 000美元,他申請了600 000美元的貸款,則銀行可能會早早地拒絕他。

因此,銀行基于以往違約者的歷史創(chuàng)建了一個數(shù)據(jù),如圖1.18所示。紅點表示銀行拒絕受理的申請,綠點表示銀行批準(zhǔn)的申請。橫坐標(biāo)是請求的貸款額度,縱坐標(biāo)是月收入。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0118.jpg

圖1.18

現(xiàn)在,一個月收入10 000美元的人想要貸款300 000美元,銀行是否會給予批準(zhǔn)呢?可以通過一條直線來分割數(shù)據(jù),如圖1.19所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0119.jpg

圖1.19

根據(jù)上面的直線,可以預(yù)測銀行將同意月薪20 000美元的人申請300 000美元的貸款申請。

現(xiàn)在,已經(jīng)有一條合適的直線來分割現(xiàn)有的數(shù)據(jù)點。我們使用的算法(梯度下降法)與在線性回歸過程中使用的算法相同。在這里,目標(biāo)變量是類別而不是在線性回歸情況下連續(xù)的預(yù)測值,這種技術(shù)稱為邏輯回歸(Logistics Regression)

現(xiàn)在,銀行來了一位新的經(jīng)理,他要檢查所有記錄,他認(rèn)為銀行批準(zhǔn)或拒絕貸款申請的參數(shù)是荒謬的,一些像10 000美元或20 000美元的貸款申請并沒有風(fēng)險,銀行可以同意這部分貸款申請。所以,他改變了規(guī)則和數(shù)據(jù),如圖1.20所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0120.jpg

圖1.20

顯然,僅僅使用一條直線并不能將紅點和綠點分開,既然這樣,那使用兩條直線呢?如圖1.21所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0121.jpg

圖1.21

與一條直線相比,使用兩條直線可以將紅點和綠點分開。這種技術(shù)被稱為神經(jīng)網(wǎng)絡(luò)(Neural Network)。神經(jīng)網(wǎng)絡(luò)是基于大腦中的神經(jīng)元的概念提出的。大腦中的神經(jīng)元收集信息并將其傳遞給其他神經(jīng)元。簡單來說,就是基于先前神經(jīng)元的輸入,下一個神經(jīng)元接收要求并決定輸出,它還將信息傳遞給其他神經(jīng)元。最后,通過處理不同的神經(jīng)元,大腦做出決定。

這個概念可以用下面的模型(見圖1.22)來理解。在這個模型中,兩個神經(jīng)元通過使用不同的假設(shè)建立模型,并且將它們的發(fā)現(xiàn)發(fā)送給另一個神經(jīng)元。根據(jù)收集到的信息,輸出神經(jīng)元做出決策。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0122.jpg

圖1.22

在處理數(shù)據(jù)時,對于一條分割數(shù)據(jù)點的直線,可能有不同的選擇。如圖1.23所示的兩個例子。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0123.jpg

圖1.23

與直線1相比,直線2的邊距更大,其在分割數(shù)據(jù)方面似乎更好,如圖1.24所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0124.jpg

圖1.24

現(xiàn)在我們要尋找最佳分割路線,而梯度下降并不能解決這個問題,需要線性優(yōu)化才能實現(xiàn)。這種技術(shù)被稱為最大間隔分類器或支持向量機(Support Vector Machine, SVM)

在現(xiàn)實世界中,數(shù)據(jù)并不能完全分割開。它可能會如圖1.25所示的那樣。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0125.jpg

圖1.25

所以,不能通過一條直線就把紅點和綠點分開。但是如果通過一個平面來區(qū)分紅點和綠點,就可以用一個分類器對它們進行分類。創(chuàng)建一個新的維度并用這個平面來分割紅點和綠點,如圖1.26所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\0126.jpg

圖1.26

現(xiàn)在使用一個新的維度將紅點和綠點分開。這種技術(shù)被稱為核函數(shù)(Kernel Trick)

真實的數(shù)據(jù)非常復(fù)雜,而且有很多維度。帶有支持向量機分類器的核函數(shù)可以用來解決這些復(fù)雜的問題。

現(xiàn)在來看另一個問題。如圖1.27所示,有一家雜貨店A2A。他們提供電話送貨服務(wù),每當(dāng)接到電話時,他們就會將地址發(fā)送給派送員,派送員會趕赴送貨地點并交付商品。他們設(shè)法將辦公室設(shè)在城市的中心,以便為越來越多的人及時提供服務(wù)。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\圖像113326.png

圖1.27

這里的點代表A2A的服務(wù)需求。現(xiàn)在他們意識到,這種一個配送中心處理所有的需求的做法并不明智。于是,他們決定在城市中開設(shè)4個配送中心,依照不同地區(qū)來接受需求并提供服務(wù)。

因此,為了解決這個問題,首先可以隨機地添加4個配送中心并給予其商品派送需求,如圖1.28所示。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\圖像113335.png

圖1.28

顯然,這不是配送中心的最佳分配位置。接下來,將每個點移動到分類點的中心。然后,將所有點分類到最近的配送中心,并將配送中心的位置移動到之前的分類中心。經(jīng)過多次迭代,將得到圖1.29所示的分配位置。

E:\0在線編撰系統(tǒng)圖書\50135\50135\1-3\OEBPS\image\圖像113347.png

圖1.29

因此,每個點的分配都是基于點到中心的距離。這種技術(shù)稱為K-均值聚類(K-Means Clustering)

也可以使用另一種方法進行聚類。把所有的點看作是獨立的集群,而不是首先將它們分組到集群中再對其進行重新分配。然后,將兩個最近的點進行分組,形成一個簇。一直這樣操作,直到出現(xiàn)較大的距離或者形成最小數(shù)量的簇。這種技術(shù)稱為層聚類(Hierarchical Clustering)

在這一章中,列舉了許多日常生活中機器學(xué)習(xí)的例子。本書將詳細(xì)地介紹這里提到的每一個技術(shù)并用Python編寫代碼實現(xiàn),同時也將涉及一些先進技術(shù)。

主站蜘蛛池模板: 河池市| 白河县| 建湖县| 安义县| 涞源县| 莱西市| 潼关县| 饶河县| 朔州市| 通渭县| 松江区| 辽阳市| 崇州市| 馆陶县| 张北县| 张家港市| 通榆县| 张家港市| 肇源县| 石家庄市| 宁武县| 科技| 沙河市| 山阳县| 石门县| 邹城市| 宁陵县| 司法| 元朗区| 玉山县| 太白县| 周宁县| 商洛市| 治县。| 卓尼县| 龙山县| 沙河市| 山丹县| 彰武县| 建德市| 临沂市|