91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以預(yù)測(cè)葡萄酒品質(zhì)作為例子,帶你步入機(jī)器學(xué)習(xí)的大門(mén)

zhKF_jqr_AI ? 來(lái)源:未知 ? 作者:李倩 ? 2018-07-02 08:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編者按:Udacity機(jī)器學(xué)習(xí)、深度學(xué)習(xí)導(dǎo)師Ashwin Hariharan以預(yù)測(cè)葡萄酒品質(zhì)作為例子,帶你步入機(jī)器學(xué)習(xí)的大門(mén)。

機(jī)器學(xué)習(xí)(ML)是人工智能的一個(gè)子領(lǐng)域。它賦予計(jì)算機(jī)學(xué)習(xí)的能力,而無(wú)需顯式地編程。從搜索趨勢(shì)來(lái)看,這幾年機(jī)器學(xué)習(xí)的流行度和需求明顯上漲。

這篇機(jī)器學(xué)習(xí)入門(mén)教程是我寫(xiě)的上一篇數(shù)據(jù)科學(xué)教程的姊妹篇。上一篇展示了如何使用數(shù)據(jù)科學(xué)來(lái)理解葡萄酒的屬性。如果你還沒(méi)有讀過(guò)上一篇,推薦首先閱讀一下,你將了解數(shù)據(jù)科學(xué)大概是怎么回事。

什么是機(jī)器學(xué)習(xí)?

人類通過(guò)過(guò)往的經(jīng)驗(yàn)學(xué)習(xí)。利用眼、耳、觸等感官輸入從周圍獲得數(shù)據(jù)。我們接著以許多有趣、有意義的方式使用這些數(shù)據(jù)。最常見(jiàn)的,我們使用它對(duì)未來(lái)做出精確的預(yù)測(cè)。換句話說(shuō),我們學(xué)習(xí)。

例如,今年的這個(gè)時(shí)候會(huì)下雨嗎?如果你忘記了女友的生日,她會(huì)發(fā)瘋嗎?紅燈時(shí)應(yīng)該停下嗎?你應(yīng)該投資某處不動(dòng)產(chǎn)嗎?Jon Snow在《權(quán)力的游戲》的下一季存活的概率?為了回答這些問(wèn)題,你需要過(guò)去的數(shù)據(jù)。

另一方面,傳統(tǒng)上計(jì)算機(jī)不像我們一樣使用數(shù)據(jù)。它們需要一組明確的指令(算法)以供遵循。

現(xiàn)在問(wèn)題來(lái)了——計(jì)算機(jī)可以像人類一樣從過(guò)去的經(jīng)驗(yàn)(數(shù)據(jù))中學(xué)習(xí)嗎?是的——你可以賦予它們學(xué)習(xí)和預(yù)測(cè)未來(lái)事件的能力,而無(wú)需顯式地編程。從自動(dòng)駕駛到搜索行星,機(jī)器學(xué)習(xí)的應(yīng)用場(chǎng)景廣闊無(wú)垠。

另外,我讀過(guò)一篇很棒的解釋數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、人工智能區(qū)別的文章。這是一篇比較詳盡全面的文章,所以我在這里總結(jié)一下:

數(shù)據(jù)科學(xué)產(chǎn)生洞見(jiàn)

機(jī)器學(xué)習(xí)產(chǎn)生預(yù)測(cè)

人工智能產(chǎn)生行動(dòng)

這些領(lǐng)域間有許多交叉重疊,因此這些術(shù)語(yǔ)經(jīng)常被不加區(qū)別地使用。

融資時(shí),是AI招聘時(shí),是ML。實(shí)現(xiàn)時(shí),是線性回歸。調(diào)試時(shí),是printf()

在Netflix,機(jī)器學(xué)習(xí)用來(lái)從用戶的行為數(shù)據(jù)中學(xué)習(xí),顯示推薦。Google搜索顯示和你有關(guān)的結(jié)果——同樣,這需要使用很多ML技術(shù)不斷學(xué)習(xí)場(chǎng)景背后的數(shù)據(jù)。在數(shù)據(jù)科學(xué)和ML地帶,數(shù)據(jù)就是黃金。如果Tyrion Lannister面對(duì)ML和AI的世界,他可能會(huì)說(shuō):

一家公司需要數(shù)據(jù),就像劍需要磨刀石才能保持鋒利。

現(xiàn)在我們理解了什么是機(jī)器學(xué)習(xí),是時(shí)候深入了。

誰(shuí)應(yīng)該閱讀這篇教程:

如果你想要入門(mén)機(jī)器學(xué)習(xí),卻因?yàn)榘l(fā)現(xiàn)數(shù)學(xué),統(tǒng)計(jì)學(xué),從頭實(shí)現(xiàn)算法太復(fù)雜,本文很適合你。

在你學(xué)習(xí)的某個(gè)階段,你將需要進(jìn)一步深入——你不可能總是回避數(shù)學(xué)!我希望你讀完本文后,能有動(dòng)機(jī)探索這一領(lǐng)域各個(gè)深度的問(wèn)題。

如果你有Python編程基礎(chǔ),并閱讀過(guò)上一篇文章,你可以開(kāi)始了。

讓我們開(kāi)始!

我們將學(xué)習(xí)構(gòu)建一個(gè)基于葡萄酒屬性預(yù)測(cè)葡萄酒品質(zhì)的機(jī)器學(xué)習(xí)模型。讀完本文后,你將理解:

不同的ML算法和技術(shù)

如何訓(xùn)練和創(chuàng)建分類器

構(gòu)建ML模型的常見(jiàn)錯(cuò)誤,以及如何擺脫它們

如何分析和解釋模型的表現(xiàn)

機(jī)器學(xué)習(xí)類型

監(jiān)督學(xué)習(xí)(本教程將討論這一主題)

顧名思義,監(jiān)督學(xué)習(xí)需要人類來(lái)“監(jiān)督”,告訴計(jì)算機(jī)正確答案。我們傳入包含許多特征的訓(xùn)練數(shù)據(jù),并給出正確答案。

為了類比,想象計(jì)算機(jī)是一個(gè)如同一張白紙的小孩。他什么也不知道。

現(xiàn)在,你如何教會(huì)Jon Snow貓和狗的區(qū)別?答案很直觀——你帶它出去散步,當(dāng)你看到一只貓時(shí),你指著貓說(shuō):“這是貓。”你繼續(xù)走,可能會(huì)看到一條狗,所以你指著狗說(shuō):“這是狗?!彪S著時(shí)間的推移,你不斷展示狗和貓,小孩會(huì)學(xué)習(xí)兩者的區(qū)別。

當(dāng)然,你總是可以給Jon看很多貓狗圖片,而不用外出散步。Instagram是你的救星!:P

就我們的葡萄酒數(shù)據(jù)集而言,我們的機(jī)器學(xué)習(xí)模型將學(xué)習(xí)葡萄酒的品質(zhì)(quality)和剩余屬性的關(guān)系。換句話說(shuō),它將學(xué)習(xí)識(shí)別特征和目標(biāo)(品質(zhì))間的模式。

無(wú)監(jiān)督學(xué)習(xí)

這里我們不給計(jì)算機(jī)需要預(yù)測(cè)的“目標(biāo)”標(biāo)簽。相反,我們讓計(jì)算機(jī)自行發(fā)現(xiàn)模式,接著選擇最說(shuō)得通的模式。這一技術(shù)很有必要,因?yàn)榻?jīng)常我們甚至不知道要在數(shù)據(jù)中找出什么。

強(qiáng)化學(xué)習(xí)

強(qiáng)化學(xué)習(xí)用來(lái)訓(xùn)練智能體的“表現(xiàn)”,以及學(xué)習(xí)給定場(chǎng)景下的最佳行動(dòng),基于獎(jiǎng)勵(lì)和反饋。這和AI有很多交叉。

除此之外,還有其他類型的ML,比如半監(jiān)督學(xué)習(xí)、聚類。

監(jiān)督學(xué)習(xí)可以解決什么問(wèn)題?

總體來(lái)說(shuō),監(jiān)督學(xué)習(xí)用于解決兩類問(wèn)題:

圖片來(lái)源:aldro61.github.io

分類:當(dāng)你需要將特定觀測(cè)歸類為一組。在上圖中,給定一個(gè)數(shù)據(jù)點(diǎn),你需要分類它是藍(lán)點(diǎn)還是紅點(diǎn)。其他例子包括,識(shí)別垃圾郵件,分配資訊的類別——比如運(yùn)動(dòng)、天氣、科學(xué)。

回歸:用于預(yù)測(cè)連續(xù)值。例如,預(yù)測(cè)不動(dòng)產(chǎn)價(jià)格。

注意,分類問(wèn)題不一定是二元的——我們可以有兩個(gè)分類以上的問(wèn)題。

另一方面,判定癌癥患者的期望壽命會(huì)是一個(gè)回歸問(wèn)題。在這一情形下,我們的模型將需要找到一條能夠很好地概括大多數(shù)數(shù)據(jù)點(diǎn)的直線或曲線。

一些回歸問(wèn)題也可以被轉(zhuǎn)換為分類問(wèn)題。此外,某些特定種類的問(wèn)題可能既是分類問(wèn)題,又是回歸問(wèn)題。

機(jī)器學(xué)習(xí)的機(jī)制

大部分監(jiān)督學(xué)習(xí)問(wèn)題分為三步:

第一步:預(yù)處理、轉(zhuǎn)換、分割數(shù)據(jù)

第一步是分析數(shù)據(jù),并為訓(xùn)練作準(zhǔn)備。我們觀察數(shù)據(jù)的傾向性、分布、特征的平均數(shù)和中位數(shù)等統(tǒng)計(jì)數(shù)據(jù)。上一篇教程介紹了這些。

之后我們可以預(yù)處理數(shù)據(jù),并在必要時(shí)應(yīng)用特征轉(zhuǎn)換。

接著,我們將數(shù)據(jù)分為兩部分——較大的一部分用作訓(xùn)練,較小的一部分用作測(cè)試。分類器將使用訓(xùn)練數(shù)據(jù)集進(jìn)行“學(xué)習(xí)”。我們需要單獨(dú)的數(shù)據(jù)來(lái)測(cè)試和驗(yàn)證,這樣我們可以看到我們的模型在未見(jiàn)數(shù)據(jù)上工作得有多好。

第二步:訓(xùn)練

接著我們創(chuàng)建模型。我們通過(guò)創(chuàng)建函數(shù)或“模型”,并使用數(shù)據(jù)訓(xùn)練它做到這一點(diǎn)。函數(shù)將使用我們選擇的算法,使用我們的數(shù)據(jù)訓(xùn)練自身,并理解模式(也就是學(xué)習(xí))。注意,分類器表現(xiàn)得多好取決于它的老師——我們需要以正確的方式訓(xùn)練它。

憂心忡忡的父母:如果你所有的朋友跳橋了,你會(huì)跟隨他們嗎?機(jī)器學(xué)習(xí)算法:會(huì)。

第三步:測(cè)試和驗(yàn)證

訓(xùn)練好模型后,我們可以給它新的未見(jiàn)數(shù)據(jù),而模型將給出輸出或預(yù)測(cè)。

第四步:超參數(shù)調(diào)整

最后,我們將嘗試改善算法的表現(xiàn)。

現(xiàn)在,在我們深入機(jī)器學(xué)習(xí)算法之前,讓我們了解下分類或回歸問(wèn)題中可能出現(xiàn)的誤差。

偏離導(dǎo)致的誤差——精確度和欠擬合

當(dāng)模型具有足夠多的數(shù)據(jù)但復(fù)雜度不足以捕捉其中的關(guān)系時(shí),偏離出現(xiàn)了。模型持續(xù)、系統(tǒng)地錯(cuò)誤表示數(shù)據(jù),導(dǎo)致預(yù)測(cè)的低精確度。這被稱為欠擬合。

簡(jiǎn)單而言,當(dāng)我們擁有一個(gè)貧乏的模型時(shí),偏離出現(xiàn)了。例如,當(dāng)我們?cè)噲D基于《權(quán)力的游戲》角色的身高和服飾識(shí)別他們是貴族還是農(nóng)夫時(shí),如果我們的模型只能根據(jù)身高劃分和分類角色,那么它會(huì)把Tyrion Lannister(矮人)標(biāo)記為農(nóng)夫——這大錯(cuò)特錯(cuò)!

另一個(gè)例子,當(dāng)我們想要通過(guò)顏色和形狀分類目標(biāo)(例如復(fù)活節(jié)彩蛋)時(shí),如果我們的模型只能根據(jù)顏色劃分和分類目標(biāo),它將持續(xù)地錯(cuò)誤標(biāo)記未來(lái)的目標(biāo)——例如將五顏六色的彩虹標(biāo)記為復(fù)活節(jié)彩蛋。

就我們的葡萄酒數(shù)據(jù)集而言,如果我們的機(jī)器學(xué)習(xí)分類器只“喝”一種葡萄酒,它會(huì)欠擬合。:P

另一個(gè)例子是本質(zhì)上為多項(xiàng)式的連續(xù)數(shù)據(jù),而模型只能表示線性關(guān)系。在這一情形下,我們傳給模型再多的數(shù)據(jù)也無(wú)濟(jì)于事,因?yàn)槟P蜔o(wú)法表示內(nèi)在的關(guān)系。為了克服偏離導(dǎo)致的誤差,我們需要更復(fù)雜的模型。

方差導(dǎo)致的誤差——準(zhǔn)確率和欠擬合

方差是衡量模型對(duì)訓(xùn)練數(shù)據(jù)的子集有多“敏感”的測(cè)度。

訓(xùn)練模型時(shí),我們通常使用有限數(shù)量的樣本。如果我們使用隨機(jī)選擇的數(shù)據(jù)子集反復(fù)訓(xùn)練模型,我們會(huì)期望它的預(yù)測(cè)會(huì)因?yàn)樘囟颖镜牟煌煌?/p>

出現(xiàn)一些方差是正常的,但過(guò)多方差意味著模型無(wú)法將其預(yù)測(cè)推廣到更大的數(shù)據(jù)集。在這一場(chǎng)景下,模型在已見(jiàn)數(shù)據(jù)上表現(xiàn)得很精確,但在未見(jiàn)數(shù)據(jù)點(diǎn)上表現(xiàn)得很糟糕。對(duì)訓(xùn)練集高度敏感也稱為過(guò)擬合,一般在模型過(guò)于復(fù)雜時(shí)出現(xiàn)。

通常我們可以通過(guò)訓(xùn)練更多數(shù)據(jù)降低模型預(yù)測(cè)的方差,提升預(yù)測(cè)的準(zhǔn)確率。如果無(wú)法獲得更多數(shù)據(jù),我們也可以通過(guò)限制模型的復(fù)雜度控制方差。

對(duì)于程序員而言,挑戰(zhàn)在于使用能夠解決問(wèn)題的最優(yōu)算法,避免高偏離或高方差,因?yàn)椋?/p>

增加偏離將減少方差

增加方差將減少偏離

這通常被稱為偏離和方差的折衷。關(guān)于這點(diǎn)的細(xì)節(jié),可以參考scott.fortmann-roe.com/docs/BiasVariance.html

和傳統(tǒng)編程不同,當(dāng)你試圖找到機(jī)器學(xué)習(xí)和深度學(xué)習(xí)問(wèn)題的最佳模型時(shí),常常需要涉及大量基于試錯(cuò)的方法。

現(xiàn)在,你需要對(duì)可以用來(lái)訓(xùn)練模型的一些算法有個(gè)概念。我不會(huì)深入數(shù)學(xué)或底層的實(shí)現(xiàn)細(xì)節(jié),但應(yīng)該足以讓你觀其大略。

一些最常用的機(jī)器學(xué)習(xí)算法:

1. 高斯樸素貝葉斯

這個(gè)方法在20世紀(jì)50年代就出現(xiàn)了。它屬于概率分類器或條件概率算法家族,假定特征之間相互獨(dú)立。對(duì)識(shí)別垃圾郵件和分類資訊之類的分類問(wèn)題而言,樸素貝葉斯很有效。

2. 決策樹(shù)

基本上這是一個(gè)類樹(shù)的數(shù)據(jù)結(jié)構(gòu),作用和流程圖差不多。決策樹(shù)是一種使用類樹(shù)的數(shù)據(jù)結(jié)構(gòu)建模決策和可能結(jié)果的分類算法。算法工作的方式是:

將數(shù)據(jù)集的最佳屬性作為樹(shù)的根節(jié)點(diǎn)。

節(jié)點(diǎn),或者說(shuō)分岔處,經(jīng)常被稱為“決策節(jié)點(diǎn)”。它通常表示一個(gè)測(cè)試或條件(比如是多云還是晴天)。

分岔表示每個(gè)決策的輸出。

葉節(jié)點(diǎn)表示最終輸出,即標(biāo)簽(在分類問(wèn)題中),或離散值(在回歸問(wèn)題中)。

3. 隨機(jī)森林

單獨(dú)使用時(shí),決策樹(shù)傾向于過(guò)擬合。而隨機(jī)森林有助于糾正可能出現(xiàn)的過(guò)擬合。隨機(jī)森林使用多棵決策樹(shù)——使用大量不同的決策樹(shù)(預(yù)測(cè)不同),結(jié)合這些樹(shù)的結(jié)果以得到最終輸出。

隨機(jī)森林使用一種稱為bagging的集成算法,這種算法有助于減少方差和過(guò)擬合。

給定訓(xùn)練集X = x1, …, xn,相應(yīng)標(biāo)簽/輸出Y = y1, …, yn,bagging反復(fù)(B次)選擇訓(xùn)練集中的一個(gè)隨機(jī)樣本(有放回)。

基于這些樣本訓(xùn)練決策樹(shù)。

通過(guò)分類樹(shù)的多數(shù)投票做出最終分類。

除此之外,還有其他機(jī)器學(xué)習(xí)算法,比如支持向量機(jī),集成方法和很多非監(jiān)督學(xué)習(xí)方法。

現(xiàn)在,是時(shí)候開(kāi)始我們的訓(xùn)練了!

首先,我們需要預(yù)備我們的數(shù)據(jù)

在機(jī)器學(xué)習(xí)的游戲中,你回歸,或者你分類

在這篇教程中,我們將把回歸問(wèn)題轉(zhuǎn)換為分類問(wèn)題。所有評(píng)分低于5分的葡萄酒分類為0(差),評(píng)分為5分或6分的葡萄酒分類為1(一般),7分以上的葡萄酒分類為2(好)。

# 定義類別的分割點(diǎn)。

bins = [1,4,6,10]

# 定義類別

quality_labels=[0,1,2]

data['quality_categorical'] = pd.cut(data['quality'], bins=bins, labels=quality_labels, include_lowest=True)

# 顯示頭兩行

display(data.head(n=2))

# 分離數(shù)據(jù)為特征和目標(biāo)標(biāo)簽

quality_raw = data['quality_categorical']

features_raw = data.drop(['quality', 'quality_categorical'], axis = 1)

如你所見(jiàn),我們有了一個(gè)新的列quality_categorical(品質(zhì)類別),基于之前選擇的區(qū)間分類品質(zhì)評(píng)分。quality_categorical列將作為目標(biāo)值,而其他列作為特征。

接著,創(chuàng)建數(shù)據(jù)的訓(xùn)練子集和測(cè)試子集:

from sklearn.model_selection import train_test_split

# 將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集

X_train, X_test, y_train, y_test = train_test_split(features_raw,

quality_raw,

test_size = 0.2,

random_state = 0)

# 顯示分離的結(jié)果

print("Training set has {} samples.".format(X_train.shape[0]))

print("Testing set has {} samples.".format(X_test.shape[0]))

Trainingset has 1279 samples.

Testingset has 320 samples.

在上面的代碼中,我們使用了sklearn的train_test_split方法。該方法接受特征數(shù)據(jù)(X)和目標(biāo)標(biāo)簽(y)作為輸入。它打亂數(shù)據(jù)集,并將其分為兩部分——80%用于訓(xùn)練,剩余20%用于測(cè)試。

接著,我們將使用一種算法訓(xùn)練,并評(píng)估其表現(xiàn)

我們需要一個(gè)函數(shù),接受我們選擇的算法、訓(xùn)練數(shù)據(jù)集、測(cè)試數(shù)據(jù)集。函數(shù)將運(yùn)行訓(xùn)練,接著使用一些表現(xiàn)測(cè)度評(píng)估算法的表現(xiàn)。

最終我們編寫(xiě)了一個(gè)可以使用任意3種選定的算法的函數(shù),并為每種算法進(jìn)行訓(xùn)練。然后匯總結(jié)果,并加以可視化。

# 從sklearn導(dǎo)入任意3種監(jiān)督學(xué)習(xí)分類模型

from sklearn.naive_bayes importGaussianNB

from sklearn.tree importDecisionTreeClassifier

from sklearn.ensemble importRandomForestClassifier

#from sklearn.linear_model import LogisticRegression

# 初始化3個(gè)模型

clf_A = GaussianNB()

clf_B = DecisionTreeClassifier(max_depth=None, random_state=None)

clf_C = RandomForestClassifier(max_depth=None, random_state=None)

# 計(jì)算訓(xùn)練集1%、10%、100%樣本數(shù)目

samples_100 = len(y_train)

samples_10 = int(len(y_train)*10/100)

samples_1 = int(len(y_train)*1/100)

# 收集結(jié)果

results = {}

for clf in [clf_A, clf_B, clf_C]:

clf_name = clf.__class__.__name__

results[clf_name] = {}

for i, samples in enumerate([samples_1, samples_10, samples_100]):

results[clf_name][i] =

train_predict_evaluate(clf, samples, X_train, y_train, X_test, y_test)

#print(results)

# 可視化選定的3種學(xué)習(xí)模型的測(cè)度

vs.visualize_classification_performance(results)

輸出將類似:

上圖第一行為訓(xùn)練數(shù)據(jù)上的表現(xiàn),第二行為測(cè)試數(shù)據(jù)上的表現(xiàn)。這些表現(xiàn)測(cè)度意味著什么?請(qǐng)繼續(xù)閱讀……

分類問(wèn)題的表現(xiàn)測(cè)度

精確度

最簡(jiǎn)單也最常用的測(cè)度,正確預(yù)測(cè)除以數(shù)據(jù)點(diǎn)總數(shù)。

何時(shí)精確度不是一個(gè)良好的表現(xiàn)指標(biāo)?

有時(shí),數(shù)據(jù)集中的類別分布會(huì)有很嚴(yán)重的傾向性,也就是說(shuō),某些分類有很多數(shù)據(jù)點(diǎn),而另一些分類的數(shù)據(jù)點(diǎn)要少得多。讓我們看一個(gè)例子。

在一個(gè)由100封郵件組成的數(shù)據(jù)集中,10封是垃圾郵件,其他90封不是。這意味者數(shù)據(jù)集有傾向性,并不是均勻分布的。

現(xiàn)在,想象一下,我們訓(xùn)練一個(gè)預(yù)測(cè)是否是垃圾郵件的分類器。它的表現(xiàn)是90%精確率。聽(tīng)起來(lái)很不錯(cuò)?并非如此。

分類器可以標(biāo)記或預(yù)測(cè)所有100封郵件為“非垃圾郵件”,而仍然能得到90%的精確度!但這個(gè)分類器完全無(wú)用,因?yàn)樗阉朽]件都分類為非垃圾郵件。

所以,精確度并不總是一個(gè)良好的指標(biāo)。在特定情況下,其他測(cè)度能幫助我們更好地評(píng)估模型:

準(zhǔn)確率

準(zhǔn)確率告訴我們,分類為垃圾郵件的郵件中有多少確實(shí)是垃圾郵件,即真陽(yáng)性/(真陽(yáng)性 + 假陽(yáng)性)

召回

召回或靈敏度告訴我們確實(shí)是垃圾郵件的郵件中有多少被分類為垃圾郵件,即真陽(yáng)性/(真陽(yáng)性 + 假陰性)

我們之前提到的具有90%精確度的分類器,它的準(zhǔn)確率和召回是多少呢?讓我們算一下——它的真陽(yáng)性是0,假陽(yáng)性是0,假陰性是10。根據(jù)前面提到的公式,我們的分類器的準(zhǔn)確率和召回均為0——相當(dāng)反常的評(píng)分!現(xiàn)在看起來(lái)不那么好了,不是嗎?

F1評(píng)分

F1為準(zhǔn)確率(precision)和召回(recall)的調(diào)和平均數(shù):

就F1而言,β = 1. 上式是F評(píng)分的公式,β值越大,越強(qiáng)調(diào)準(zhǔn)確率。

現(xiàn)在,讓我們回顧下我們的ML算法的表現(xiàn):

這些結(jié)果表明,高斯樸素貝葉斯的表現(xiàn)不像決策樹(shù)和隨機(jī)森林那么好。

你覺(jué)得為什么高斯樸素貝葉斯的表現(xiàn)不佳?(提示:你可以往上滾動(dòng),重新閱讀高斯樸素貝葉斯的解釋?。?/p>

特征重要性

scikit-learn提供的一些分類算法,有一個(gè)特征重要性屬性,可以讓你查看基于選定算法的每個(gè)特征的重要性。

比如,scikit-learn中的隨機(jī)森林分類器帶.feature_importance_:

# 導(dǎo)入一個(gè)帶`.feature_importance_`的模型

model = RandomForestClassifier(max_depth=None, random_state=None)

# 訓(xùn)練模型

model = model.fit(X_train, y_train)

# 提取特征重要性

importances = model.feature_importances_

print(X_train.columns)

print(importances)

# 繪圖

vs.feature_plot(importances, X_train, y_train)

結(jié)果如下:

上圖顯示了5個(gè)最重要的特征。酒精含量和揮發(fā)性酸水平看起來(lái)是最具影響力的因子,接著是硫酸鹽、檸檬酸、固定酸度。

超參數(shù)調(diào)整和優(yōu)化

你也許已經(jīng)注意到了,機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)有關(guān)。像任何科學(xué)一樣,它從一些先驗(yàn)觀測(cè)開(kāi)始。接著你做出假說(shuō),運(yùn)行一些試驗(yàn),然后分析它們多大程度上重現(xiàn)了之前的觀測(cè)。這被稱為科學(xué)方法,其實(shí)這和工程過(guò)程也很相似。

假說(shuō)可以被認(rèn)為是“假定”。創(chuàng)建分類器的時(shí)候,我們首先假設(shè)一些算法,在我們看來(lái),這些算法的效果應(yīng)該不錯(cuò)。但我們的假說(shuō)也可能不對(duì)。常常,我們需要調(diào)整我們的假說(shuō),看看它們能不能做得更好。

當(dāng)選擇機(jī)器學(xué)習(xí)模型時(shí),我們做了一些關(guān)于它們的超參數(shù)的假定。超參數(shù)是特殊類型的配置變量,其值無(wú)法通過(guò)數(shù)據(jù)集直接計(jì)算。數(shù)據(jù)科學(xué)家或機(jī)器學(xué)習(xí)工程師需要通過(guò)試驗(yàn)找出這些超參數(shù)的最佳值。這一過(guò)程稱為超參數(shù)調(diào)整。

現(xiàn)在,就隨機(jī)森林算法而言,哪些可能是它的超參數(shù)?

森林中決策樹(shù)的數(shù)目

尋找樹(shù)的最佳分岔時(shí)考慮的特征數(shù)

樹(shù)的最大深度,即根節(jié)點(diǎn)至葉節(jié)點(diǎn)的最長(zhǎng)路徑

就這些超參數(shù)而言,我們的隨機(jī)森林分類器使用scikit-learn的默認(rèn)值。

scikit-learn提供了一個(gè)非常方便的API,讓我們可以在“網(wǎng)格”中指定超參數(shù)的不同值,然后通過(guò)scikit-learn的GridSearchCV API使用這些超參數(shù)的可能組合訓(xùn)練并進(jìn)行交叉驗(yàn)證,給出最優(yōu)配置。這樣我們就不用手工運(yùn)行這么多迭代。

from sklearn.model_selection importGridSearchCV

from sklean.metrics import make_scorer

clf = RandomForestClassifier(max_depth=None, random_state=None)

# 創(chuàng)建打算調(diào)整的參數(shù)列表,有必要時(shí)使用字典。

"""

n_estimators: 森林中的決策樹(shù)數(shù)量

max_features: 尋找最佳分割時(shí)考慮的特征數(shù)量

max_depth: 樹(shù)的最大深度

"""

parameters = {'n_estimators': [10, 20, 30], 'max_features': [3, 4, 5, None], 'max_depth': [5, 6, 7, None]}

# 創(chuàng)建F0.5評(píng)分

scorer = make_scorer(fbeta_score, bate=0.5, average="micor")

# 進(jìn)行網(wǎng)格搜索

grid_obj = GridSearchCV(clf, parameters, scoring=scorer)

# 找到最優(yōu)參數(shù)

grid_fit = grid.obj.fit(X_train, y_train)

# 得到最佳逼近

best_clf = grid_fit.best_estimator_

# 分別使用未優(yōu)化超參數(shù)的模型和優(yōu)化了超參數(shù)的模型進(jìn)行預(yù)測(cè):

predictions = (clf.fit(X_train, y_train)).predict(X_test)

best_predicotins = best_clf.predict(X_test)

# 報(bào)告之前和之后的評(píng)分

print("Unpotimized model ------")

print("Accuracy score on testing data: {:.p6}".format(accuracy_score(y_test, predictions)))

print("F-score on testing data: {:.4f}".format(fbeta_score(y_test,predictions, beta=0.5, average="micro")))

好了。你可以看到,我們模型的表現(xiàn)略有提升。

使用模型進(jìn)行預(yù)測(cè)

最終,給我們的模型多個(gè)特征的一組值,看看它的預(yù)測(cè):

恭喜!你成功搭建了你自己的機(jī)器學(xué)習(xí)分類器,該分類器可以預(yù)測(cè)好酒和烈酒。

思考題

你的分類器更適合檢測(cè)一般的葡萄酒,還是更適合檢測(cè)好的葡萄酒?你認(rèn)為可能的原因是什么?

你會(huì)向釀酒廠推薦你的分類器嗎?為什么?

如果使用回歸技術(shù),而不是分類技術(shù),模型的表現(xiàn)將如何?

接下來(lái)呢?

嘗試在白葡萄酒數(shù)據(jù)集上預(yù)測(cè)酒的品質(zhì)

去Kaggle逛逛,看看不同的數(shù)據(jù)集,嘗試下你覺(jué)得有趣的數(shù)據(jù)集

編寫(xiě)一個(gè)使用你的機(jī)器學(xué)習(xí)模型的API服務(wù),然后創(chuàng)建一個(gè)web應(yīng)用/移動(dòng)應(yīng)用

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1819

    文章

    50151

    瀏覽量

    265900
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8558

    瀏覽量

    137069
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1238

    瀏覽量

    26226

原文標(biāo)題:如何使用機(jī)器學(xué)習(xí)預(yù)測(cè)葡萄酒品質(zhì)

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    PSoC Creator在線或W / W /葡萄酒問(wèn)題

    我通過(guò)Kickstarter上的FieleSo項(xiàng)目(和StudidIO兼容)介紹了PSoC 5芯片。他們是阿杜諾社區(qū)的一部分。我試著用PSoC Creator和Muno和微軟.NET一起安裝葡萄酒
    發(fā)表于 06-26 09:51

    自回歸滯后模型進(jìn)行多變量時(shí)間序列預(yù)測(cè)案例分享

    1、如何建立一個(gè)模型來(lái)進(jìn)行多元時(shí)間序列預(yù)測(cè)呢?  下圖顯示了關(guān)于不同類型葡萄酒銷量的月度多元時(shí)間序列。每種葡萄酒類型都是時(shí)間序列中的一個(gè)變量?! 〖僭O(shè)要預(yù)測(cè)其中一個(gè)變量。比如,spar
    發(fā)表于 11-30 15:33

    鏈幣數(shù)字資產(chǎn)軟件開(kāi)發(fā)平臺(tái)

    、注意力、學(xué)習(xí)、購(gòu)物等,可以形成個(gè)人數(shù)字資產(chǎn)。圣餐葡萄酒連鎖行業(yè)的一項(xiàng)數(shù)字資產(chǎn),它是基于連鎖店技術(shù)和基于釀酒商在葡萄酒鏈中的激勵(lì)數(shù)據(jù)。圣
    發(fā)表于 07-11 15:09 ?588次閱讀

    鏈幣場(chǎng)景部暑軟件開(kāi)發(fā)平臺(tái)

    、注意力、學(xué)習(xí)、購(gòu)物等,可以形成個(gè)人數(shù)字資產(chǎn)。圣餐葡萄酒連鎖行業(yè)的一項(xiàng)數(shù)字資產(chǎn),它是基于連鎖店技術(shù)和基于釀酒商在葡萄酒鏈中的激勵(lì)數(shù)據(jù)。圣
    發(fā)表于 07-11 15:40 ?497次閱讀

    區(qū)塊鏈技術(shù)給葡萄酒拍賣業(yè)務(wù)帶來(lái)了哪些優(yōu)勢(shì)?

    “應(yīng)用區(qū)塊鏈技術(shù)之透明度、追蹤、大數(shù)據(jù)分析及職能合約特點(diǎn),本集團(tuán)可透過(guò)大數(shù)據(jù)分析更能了解寄賣方之寄賣品組合及買家之喜好,從而進(jìn)行配對(duì);可確保將于拍賣后即時(shí)處理付款;及可追蹤確保向買家交付拍賣葡萄酒?!?/div>
    發(fā)表于 09-17 11:15 ?937次閱讀

    通過(guò)RFID技術(shù)對(duì)藏實(shí)施智能管理 海爾智慧酒柜為消費(fèi)者提供貼心的服務(wù)

    2016年8月9日,“海爾智慧紅酒生態(tài)圈發(fā)布活動(dòng)”在北京柏翠酒窖召開(kāi)。來(lái)自海外的歐洲葡萄酒發(fā)展協(xié)會(huì)、BD貝丹德梭評(píng)機(jī)構(gòu)、咔嚓、中國(guó)業(yè)集團(tuán)、以及北京格里拉、酒仙網(wǎng)等公司以及知名
    發(fā)表于 11-21 09:15 ?1186次閱讀

    改進(jìn)粒子群優(yōu)化神經(jīng)網(wǎng)絡(luò)的葡萄酒質(zhì)量識(shí)別

    隨著我國(guó)經(jīng)濟(jì)的崛起,葡萄酒業(yè)也搭上了我國(guó)經(jīng)濟(jì)崛起的快速列車。葡萄酒產(chǎn)業(yè)規(guī)模不斷壯大,但葡萄酒質(zhì)量評(píng)定卻沒(méi)跟上業(yè)發(fā)展的腳步?,F(xiàn)今的葡萄酒質(zhì)量
    發(fā)表于 01-16 14:25 ?3次下載
    改進(jìn)粒子群優(yōu)化神經(jīng)網(wǎng)絡(luò)的<b class='flag-5'>葡萄酒</b>質(zhì)量識(shí)別

    訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)模型,實(shí)現(xiàn)了根據(jù)基于文本分析預(yù)測(cè)葡萄酒質(zhì)量

    我們可以把上述的其他信息也引入作為特征參數(shù),這樣就能構(gòu)建出一個(gè)更全面的模型來(lái)預(yù)測(cè)葡萄酒質(zhì)量。為了將文字描述與其他特征結(jié)合起來(lái)進(jìn)行預(yù)測(cè),我們可以創(chuàng)建一個(gè)集成學(xué)模型(文本分類器就是集成在內(nèi)
    的頭像 發(fā)表于 05-16 18:27 ?6967次閱讀

    安永正在提供區(qū)塊鏈解決方案來(lái)驗(yàn)證葡萄酒的真?zhèn)?/a>

    、原產(chǎn)地和意見(jiàn)的英文首字母縮略詞,該產(chǎn)品的開(kāi)發(fā)重點(diǎn)將瞄準(zhǔn)中國(guó)、日本、韓國(guó)、泰國(guó)和新加坡的歐洲葡萄酒消費(fèi)市場(chǎng)。
    發(fā)表于 05-29 10:39 ?1109次閱讀

    購(gòu)買葡萄酒模式有了區(qū)塊鏈以后會(huì)怎樣改變

    確保消費(fèi)者收到他們訂購(gòu)的葡萄酒的真實(shí)性,并允許使用加密貨幣進(jìn)行購(gòu)買。
    發(fā)表于 07-31 14:41 ?1631次閱讀

    葡萄酒防偽管理中是如何借助rfid技術(shù)的

    或許是受到國(guó)外葡萄酒企業(yè)先進(jìn)的RFID防偽技術(shù)的影響,國(guó)內(nèi)的一些葡萄酒廠商在電子標(biāo)簽防偽管理上走在了行業(yè)的前面。
    發(fā)表于 01-16 10:44 ?1237次閱讀

    IBM推出區(qū)塊鏈技術(shù)平臺(tái),提供葡萄酒供應(yīng)鏈追蹤系統(tǒng)

    12月11日消息,據(jù)國(guó)外媒體報(bào)道,IBM推出一個(gè)區(qū)塊鏈技術(shù)平臺(tái),提供葡萄酒供應(yīng)鏈追蹤系統(tǒng),從葡萄園一直到商場(chǎng)全程可追溯。 聲明稱,IBM表示已經(jīng)與葡萄酒追蹤公司eprovence合作發(fā)布
    的頭像 發(fā)表于 12-11 14:36 ?2902次閱讀

    基于田間條件下的動(dòng)態(tài)高光譜成像和機(jī)器學(xué)習(xí)對(duì)于葡萄品種分類的研究

    植物表型問(wèn)題,通常是在實(shí)驗(yàn)室條件下通過(guò)破壞技術(shù),如傳統(tǒng)的電泳和DNA分析來(lái)完成的。 本文利用高光譜成像技術(shù)和不同的機(jī)器學(xué)習(xí)算法,提出了一種在田間條件下對(duì)大量葡萄品種進(jìn)行分類的新方法。在自然光照下,使用高光譜相機(jī)
    的頭像 發(fā)表于 01-07 14:02 ?2754次閱讀

    工信部:促進(jìn)智能傳感器等在葡萄酒全產(chǎn)業(yè)鏈推廣應(yīng)用

    。 “葡萄酒產(chǎn)業(yè)是一個(gè)集社會(huì)效益、經(jīng)濟(jì)效益、文化效益、民生效益于一體的重要產(chǎn)業(yè)。”趙志國(guó)指出,中國(guó)葡萄酒已經(jīng)具備了較強(qiáng)的產(chǎn)業(yè)基礎(chǔ)和發(fā)展優(yōu)勢(shì),許多產(chǎn)區(qū)已形成若干獨(dú)具特色、品質(zhì)優(yōu)異的葡萄酒
    的頭像 發(fā)表于 06-15 08:39 ?815次閱讀

    葡萄酒俱樂(lè)部計(jì)劃部署RFID技術(shù)提高供應(yīng)鏈的透明度

    一直以來(lái),葡萄酒行業(yè)面臨著日益激烈的競(jìng)爭(zhēng)和消費(fèi)者需求的多樣化。然而,仿造、假冒產(chǎn)品和竄貨現(xiàn)象頻發(fā),嚴(yán)重影響了葡萄酒企業(yè)和消費(fèi)者的利益。一家葡萄酒俱樂(lè)部dVin Labs,正在通過(guò)區(qū)塊鏈和RFID標(biāo)簽
    的頭像 發(fā)表于 11-23 16:18 ?832次閱讀