關(guān)于機(jī)器學(xué)習(xí)的傻瓜式指南
成為2級新手
我第一次在工作中遇到實(shí)際的機(jī)器學(xué)習(xí)應(yīng)用。我們要準(zhǔn)備一個識別Zooplus商店中欺詐行為的應(yīng)用。在經(jīng)過幾個月嘗試了不同的解決方案之后:外部提供者,在代碼中額外的if語句,滅火腳本等諸如此類,我們最終得到機(jī)器學(xué)習(xí)是最適合該工作的結(jié)論。自此以后,我們試著說服周圍的人投資我們的教育并繼續(xù)機(jī)器學(xué)習(xí)之路,但是并沒有引人關(guān)注的成功。然而偶然的一個機(jī)會,我通過嘗試Amazon的機(jī)器學(xué)習(xí)功能邁出了我的第一步,因而我認(rèn)為自己是一個2級新手。在本文中,我會嘗試向你 — 1級新手 — 展示如何邁出第一步,并切實(shí)地感受什么是機(jī)器學(xué)習(xí)。
什么是機(jī)器學(xué)習(xí)?
在互聯(lián)網(wǎng)上,也許有成百上千的機(jī)器學(xué)習(xí)的定義。但是,我是初級的傻瓜,我們希望得到一些簡單的東西——一些傻瓜式的東西!讓我們一起來解決這個問題吧。
術(shù)語中的“機(jī)器”可能指的是計(jì)算機(jī)。我們可以想到計(jì)算機(jī),無人駕駛飛機(jī)和其他東西,但是他們是由計(jì)算機(jī)控制的,對么?所以,機(jī)器學(xué)習(xí)是關(guān)于“計(jì)算機(jī)學(xué)習(xí)”的。
學(xué)習(xí)實(shí)際上是指的什么呢?計(jì)算機(jī)并沒有大腦!沒有神經(jīng)元的激活,沒有路徑的創(chuàng)建。它能做的所有只是存儲一些數(shù)據(jù)和進(jìn)行一些操作。但是我們知道它是和數(shù)據(jù)有關(guān)的,而且是大數(shù)據(jù)(至少DZone是這么說明的)。所以我們有“關(guān)于大數(shù)據(jù)的計(jì)算機(jī)處理”。
那么,“處理”指的是什么呢?作為2級新手,我可以大概講解一下(不過我敢打賭,真正的從業(yè)人員會認(rèn)為我說的話一點(diǎn)也不正派)。我所說的,就是利用1級新手和2級新手不想知道的高級算法進(jìn)行統(tǒng)計(jì)分析。
我想,這樣就足以形成我們在這篇文章中給機(jī)器學(xué)習(xí)定下的最終定義:“電腦對大數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析”。夠酷吧?
機(jī)器學(xué)習(xí)有什么用?
我懂,我懂。讀了這么多,你還是不曉得這一切關(guān)于機(jī)器學(xué)習(xí)的知識到底有什么用。作為2級新手,我要再次說一下,我有了一個學(xué)習(xí)機(jī)器學(xué)習(xí)的機(jī)會。
有兩種機(jī)器學(xué)習(xí):監(jiān)督與非監(jiān)督。
監(jiān)督學(xué)習(xí)
我非常希望給出監(jiān)督孩子的類比,但是我并不能夠。是誰發(fā)明的這個名字?!
監(jiān)督學(xué)習(xí)是當(dāng)你為計(jì)算機(jī)提供你期望查找的信息時,-還記得我工作識別欺詐行為的例子嗎?那就是監(jiān)督學(xué)習(xí)。-我告訴計(jì)算機(jī):我希望知道這個客戶是否是一個欺詐者!而計(jì)算機(jī)器執(zhí)行其高級魔法并給出答案:是的,主人!或者,不是,主人!他是一個笨蛋,但是普通的一個。通常,監(jiān)督學(xué)習(xí)用于所謂的分類問題中。你為計(jì)算機(jī)提供大量的數(shù)據(jù),而它進(jìn)行分類:美國人是否會再次投票給 Mr. Trump ?這個人是否得了癌癥?你是否會繼續(xù)閱讀這篇長而有趣的文章?
非監(jiān)督學(xué)習(xí)
非監(jiān)督學(xué)習(xí)是你并不清楚你正在尋找什么時,你毫無思路,你告訴計(jì)算機(jī):這里有一堆數(shù)據(jù)!找出一些有趣的內(nèi)容來。而它會執(zhí)行比監(jiān)督學(xué)習(xí)中所用的更為高級的算法。
因?yàn)槲覀儾⒉皇呛翢o頭緒-我們確切地知道我們需要什么(而且我們對更為高級的算法并不感興趣),在接下來的部分我們會專注于監(jiān)督ML。
Amazon ML簡介
在不久以前,對于你和我這樣的新手接觸機(jī)器學(xué)習(xí)非常困難。它是整天思考數(shù)字并且認(rèn)為Scala與Python是好的編程語言的書呆子們的游戲。多虧了Amazon,精于銷售的這幫家伙開始賣他們自己的基礎(chǔ)設(shè)施,并且為我們提供了偉大的工具:Amazon機(jī)器學(xué)習(xí)。
創(chuàng)建數(shù)據(jù)源
我們擁有超過600個文本單詞,所以我們最好直接進(jìn)入工作。打開你的Amazon Web控制面板并找到“機(jī)器學(xué)習(xí)”按鈕。點(diǎn)擊!你會看到一些為你提供教程之類內(nèi)容的屏幕。忽略它!你不需要新手教程,因?yàn)槟阋呀?jīng)在新手教程的中間部分了。你應(yīng)該看到如下內(nèi)容:
所以,在大數(shù)據(jù)上執(zhí)行計(jì)算統(tǒng)計(jì)分析的第一步將是提供真正的大數(shù)據(jù)。使用下面的鏈接下載文件并將其放入S3桶中:
https://s3.amazonaws.com/aml-sample-data/banking.csv
(是的,我們正在使用AWS文檔教程所提供的數(shù)據(jù)。只是這個教程相對更好!)
你一旦完成,你可以返回機(jī)器學(xué)習(xí)屏幕并選擇 “Create new…” ,然后選擇 “Datasource”. 你應(yīng)該可以看到如下內(nèi)容:
Insert the S3 location and choose a Datasource name. 名字無所謂。 (最終我們會將其刪除), 所以你可以為其指定任意名字。完成后點(diǎn)擊 “Verify” 并選擇 “Continue”.
你應(yīng)該可以看到類似如下的屏幕內(nèi)容:
正如你看到的,Amazon通過將數(shù)據(jù)分割為不同的數(shù)據(jù)類型試圖使該數(shù)據(jù)更為合理。因?yàn)檫@是他們的新手教程數(shù)據(jù),所有內(nèi)容都應(yīng)該更為平滑。你只需要對列名相關(guān)的問題點(diǎn)擊 “Yes” ,如果一切順利,最后一頁命名為 “y” 應(yīng)該是 “Binary” 類型。如果正是這種情況,點(diǎn)擊 “Continue”;否則,我不知道 – 我只是一個2級新手。
在第三頁,Amazon最終會詢問我們真正希望得到什么樣的魔法結(jié)果。那正是 “Target” 。在如下的屏幕中選擇最后一列:
正如你看到的,Amazon將其識別為一個二分類問題,這意味著我們現(xiàn)在是監(jiān)督者了!點(diǎn)擊 “Continue”。
我們的數(shù)據(jù)并不包含標(biāo)識符,所以點(diǎn)擊 “Review” 并選擇 “Create Datasource”。他需要一段時間直到創(chuàng)建完成。一旦完成,你應(yīng)該看到如下內(nèi)容:
我們完成了數(shù)據(jù)源!在系統(tǒng)中我們擁有我們的大數(shù)據(jù)了!
有了上千的單詞,我們已為了最重要的部分做好了準(zhǔn)備。我們將會創(chuàng)建實(shí)際的統(tǒng)計(jì)分析部分。ML模型是我們的超酷的機(jī)器學(xué)習(xí)解決方案的大腦。它是由Amazon基于我們的大數(shù)據(jù)與設(shè)置所創(chuàng)造的神奇生物,可以為所提供的數(shù)據(jù)預(yù)測列 “y” 的值。讓我們開始吧!
回到機(jī)器學(xué)習(xí)面板,再一次選擇 “Create new…” 然后選擇 “ML Model”。選擇我們新創(chuàng)建的數(shù)據(jù)源。我們應(yīng)該看到類似如下的內(nèi)容:
點(diǎn)擊 “Continue” 然后選擇 “Review” 與 “Create ML Model”. 我們并不希望修改任何高級設(shè)置。記住,我們僅是1級與2級的新手;我們僅是希望可以看到一切可以正常工作。
一段時間后按F5刷新,我們應(yīng)該看到成功界面(如下所示)。我們的ML模型已成功創(chuàng)建!
創(chuàng)建預(yù)測
如果我們創(chuàng)建了我們解決方案的神奇大腦而不預(yù)測任何事情,那我們會感到遺憾。由ML模型成功界面的左邊選擇 “Try real-time predictions” 。 點(diǎn)擊 “Paste a record” 按鈕并粘貼如下內(nèi)容:
32,services,divorced,basic.9y,no,unknown,yes,cellular,dec,mon,110,1,11,0,nonexistent,-1.8,94.465,-36.1,0.883,5228.1
該行與我們的大數(shù)據(jù)文件具有相同的格式,但是缺少最后一列 – “y” 。這正是我們的神奇ML模型將要預(yù)測的內(nèi)容。如果已為驚奇做好準(zhǔn)備,點(diǎn)擊 “Create prediction” 。
Yes, yes, yes! 它起作用了!它預(yù)測了!如果你正確地做了我告訴你的所有事情,你預(yù)測屏幕的右邊應(yīng)是類似如下的內(nèi)容:
“Predicted label” 是我們預(yù)測的結(jié)果 – 驚人的 0!正是它!
清理
確保由S3桶中刪除數(shù)據(jù),從而你不會為存儲支付費(fèi)用。你可以由你的帳戶中刪除機(jī)器學(xué)習(xí),這取決于你,因?yàn)樗粫ㄙM(fèi)任何費(fèi)用。
總結(jié)
我們由給出一個糟糕的機(jī)器學(xué)習(xí)定義開始。然后,我們學(xué)習(xí)監(jiān)督機(jī)器學(xué)習(xí)與非監(jiān)督機(jī)器學(xué)習(xí)之間的區(qū)別。最后,我們通過Amazon機(jī)器學(xué)習(xí)接口創(chuàng)建了一個簡單的預(yù)測?,F(xiàn)在你也許想要知道的是:我們預(yù)測了什么?我們在那里放置的是什么數(shù)據(jù)?如果它沒有起作用該怎么辦?目前,這些無所謂。它僅是一個例子?,F(xiàn)在重要的是,我的2級新手是你希望預(yù)測什么?你有什么可以利用的數(shù)據(jù)?以及為使其起作用你可以做什么?在下面我會為你提供一些資源,祝你在成長為3級的道路上好運(yùn)!