![2024程序員40種算法_第1頁](http://file4.renrendoc.com/view11/M01/18/09/wKhkGWefpkOAcL_yAAA3D9h0Bc8829.jpg)
![2024程序員40種算法_第2頁](http://file4.renrendoc.com/view11/M01/18/09/wKhkGWefpkOAcL_yAAA3D9h0Bc88292.jpg)
![2024程序員40種算法_第3頁](http://file4.renrendoc.com/view11/M01/18/09/wKhkGWefpkOAcL_yAAA3D9h0Bc88293.jpg)
![2024程序員40種算法_第4頁](http://file4.renrendoc.com/view11/M01/18/09/wKhkGWefpkOAcL_yAAA3D9h0Bc88294.jpg)
![2024程序員40種算法_第5頁](http://file4.renrendoc.com/view11/M01/18/09/wKhkGWefpkOAcL_yAAA3D9h0Bc88295.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
程序員40第1 算法概 第5 圖算第1第1果。在英語詞典(如AmericanHeritageDictionary)中查找算法這個圖1-1 1-編碼階段:編碼階段將設(shè)計(jì)好的算法轉(zhuǎn)化為計(jì)算機(jī)程序。重要的 1-下面展示了一個名為SRPMP的資源分配算法的偽代碼。在集群計(jì)算資源池。該算法將任務(wù)分配到資源上,并創(chuàng)建一個映射集合Ω。請注段落中闡述:算法運(yùn)行時開始建立映射。此時,映射集合Ω選擇第一個分區(qū)作為T1任務(wù)的資源池(參見偽代碼第行)。TelevisionRatingPoint(TRPS)不斷地針對每個任務(wù)Ti用RheumatoidArthritis(RA)算法,為其選擇一個分區(qū)作為資源RA算法返為任務(wù)Ti選擇的資源集,表示為ωi(參見偽代碼第5Ti和ωi被添加到映射集合Ω中(參見偽代碼第6行)Ti的狀態(tài)由STATE0Idle/Mapping變?yōu)镾TATE1:注意,代碼片段并不總能代替?zhèn)未a。在偽代碼中,我塊,也就是階段中。圖1-3展示了在算法執(zhí)行前由ApacheSpark生成的段:Stage11和Stage12 1-Python(AWS)、微軟Azure和谷歌云平臺(GCP),Python自學(xué)。對Python在本書中,我希望你能夠使用Python3的最新版本。在編寫本書PythonSciPyScientificPython(SciPy)——發(fā)音為sighpie——是一組為科在/scikit-learn:這個機(jī)器學(xué)習(xí)擴(kuò)展是SciPyscikit-learn提供了一系列重要的機(jī)器學(xué)習(xí)算法,包括分類、pandas:pandas是一個開源軟件庫。它包含了表格型的復(fù)雜數(shù)據(jù)結(jié)看/Matplotlib:Matplotlib提供了強(qiáng)大的可視化工具。數(shù)據(jù)可以通Seaborn:Seaborn類似于在R語言中流行的ggplot2庫。它基于iPython:iPython是一個增強(qiáng)的交互式控制臺,旨在方便編寫、測RunningPythonprograms:交互式的編程模式對代碼的學(xué)習(xí)和實(shí)通過JupyterNotebook執(zhí)行運(yùn)行Python程序的另一種方式是通過JupyterNotebook。JupyterJupyterNotebook來展示代碼示例。能夠使用文字和圖形對代碼進(jìn)行注 1-請注意,一個JupyterNotebook頁面由被稱為單元格的不同的塊組第一點(diǎn):算法是否能產(chǎn)生我們預(yù)期的結(jié)果?第二點(diǎn):這是獲取預(yù)期結(jié)果的最佳方法嗎?第三點(diǎn):算法在更大的數(shù)據(jù)集上表現(xiàn)怎么樣?既是數(shù)據(jù)密集型算法,也是計(jì)算密集型算法:有些算法需要處理用資源進(jìn)行智能分配。體積:指算法將要處理的數(shù)據(jù)的預(yù)期規(guī)模;速度:指使用該算法時新數(shù)據(jù)生成的預(yù)期速度,它可以為零;多樣性:量化了所設(shè)計(jì)算法預(yù)計(jì)要處理多少種不同類型的數(shù)據(jù)。圖1-5更加詳細(xì)地展示了數(shù)據(jù)的3V,其中心是最簡單的數(shù)據(jù),體積小且多樣性和速度都很低。逐漸遠(yuǎn)離中心時,數(shù)據(jù)復(fù)雜度逐漸增加,這可以從三個維度中的一個或多個維度上增加。例如,在速度維度上,最簡單的是批處理過程,其次是周期性處理過程,然后是近實(shí)時處理過況。例如,由一組監(jiān)控?cái)z像頭收集的實(shí)時視頻信號的集合具有體積大、速度快和多樣性高的特點(diǎn),因此可能需要恰當(dāng)?shù)脑O(shè)計(jì)才能有效地存儲和處理數(shù)據(jù);而由Excel創(chuàng)建的單個簡單文件則具有體積小、速度慢 1- 1-注意,mapper數(shù)量將直接轉(zhuǎn)化為算法運(yùn)行時的并行度??臻g復(fù)雜度分析:估計(jì)算法運(yùn)行對內(nèi)存的需求。時間復(fù)雜度分析:估計(jì)算法的運(yùn)行時間。(ResilientDistributedDataset,RDD)——需要高效的資源分配機(jī)是試圖答下列重要問題:算法是否具有良好的可擴(kuò)展性?算法在處理為答這些問題,我們需要確定數(shù)據(jù)規(guī)模的增加對算法性能的影實(shí)現(xiàn)算法后的分析方法:這種方法先分別實(shí)現(xiàn)各種候選算法,再實(shí)現(xiàn)算法前的理論方法:這種方法在運(yùn)行算法前用數(shù)學(xué)方法近似復(fù)雜度和大O記號(本章后面會討論)為答這種問題提供了有效手大O常數(shù)時間復(fù)雜度雜度O(1)返數(shù)組的第一個元素:其輸出結(jié)果顯示為圖1-7 1-訪問哈希表中的元素(參見第2章的相關(guān)討論)桶排序(參見第2章的相關(guān)討論)。 1-查找元素找出數(shù)組中所有元素的最小值 1-對數(shù)時間復(fù)雜度(O(logn))時間為對數(shù)時間。在時間復(fù)雜度為O(logn)的算法中,隨著算法的每一圖1-注意,在所介紹的四種類型的大O記號中,O(n2能,O(logn)表示最佳性能。事實(shí)上,O(logn)可以視為任何算法性能算法性能評估的整個過程本質(zhì)上是迭代進(jìn)行的,如圖1-11 1- 1-他能夠沿該路線訪問城市列表中的每個城市之后返出發(fā)點(diǎn)(這就是問一是局部可理解的模型無關(guān)解釋(LocalInterpretableModel-AgnosticExplanation,LIME),參見2016年第22屆國際計(jì)算機(jī)學(xué)會知識發(fā)現(xiàn)和數(shù)據(jù)挖掘國際會議(ACMSIGKDD)論文集。LIME基于如下概第2第2Python要一起存儲和處理,每一組這樣的數(shù)據(jù)稱為一個集合。在Python列表(list):有序的可變元素序列。元組(tuple):有序的不可變元素序列。集合(set):無序元素序列(其中元素不重復(fù))。字典(dictionary):無序的鍵值對序列。數(shù)據(jù)幀(DataFrame):存儲二維數(shù)據(jù)的二維結(jié)構(gòu)。要創(chuàng)建一個列表,數(shù)據(jù)元素需要用[]括起來,并且需要用逗號隔在Python該代碼創(chuàng)建的四元素列表如圖2-1 2-注意,列表是Python在對列表進(jìn)行切片時,其切片范圍如下所示:包含??一么工作,它是輸入一個參數(shù)并返一個布爾值的函數(shù)。下面的代碼列表的時間復(fù)雜度可以使用大O不可變的(只讀)數(shù)據(jù)結(jié)構(gòu)。元組由一些被()包圍的元素組成。前面一段代碼所創(chuàng)建的三個鍵值對也在圖2-2 2-下表給出了使用大O一個名為yellow的集合,里面包含了黃色的東西。另一個名為red的集合,里面包含了紅色的東西。 2-如果想在Python現(xiàn)在,考慮以下代碼,它演示了如何使用Pythonyellow|red用于獲得前面定義的兩個集合(yellow和red)的并。數(shù)據(jù)幀是Python的格數(shù)據(jù)。它是算法中重要的數(shù)據(jù)結(jié)構(gòu)之一,用于處理傳統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)。我們看看以下表格:結(jié)構(gòu),例如R語言和ApacheSpark框架。標(biāo)簽(label):選擇列選擇行注意,上面的代碼將返前兩行以及所有列isEmpty:如果棧為空,則返true。pop:返最近添加的元素,并將其從棧中刪除圖2-4展示了如何使用push和pop 2-要將四個元素壓入棧中,可以使用如圖2-5 2-我們看看棧的時間復(fù)雜度(使用大O記號(dequeue)。當(dāng)在隊(duì)尾添加元素時,這種操作稱為入隊(duì)(enqueue) 2-圖2-6 2-把信件疊成一堆,每當(dāng)我們收到新的信,就把它放在郵件堆的最上面,并且會優(yōu)先被處理。從信件列表頂部取信稱為pop把信件疊成一堆,但要先處理最早的信件:每次要閱讀信件時,都每棵樹都有有限個節(jié)點(diǎn),起始數(shù)據(jù)元素對應(yīng)的節(jié)點(diǎn)稱為(root),所有節(jié)點(diǎn)通過鏈接關(guān)系組織在一起,鏈接也稱為(branch) 2-圖2-8所展示的是一棵有4層和8滿樹:滿樹是指所有非葉節(jié)點(diǎn)的度都相同的樹,這個值就是樹的 2-第3第3冒泡排序(bubblesort)歸并排序(mergesort)插入排序(insertionsort)希爾排序(shellsort)選擇排序(selectionsort)在Python我們看看交換的結(jié)果(見圖3-1) 3- 3-現(xiàn)在,我們看看如何使用Python在Python中實(shí)現(xiàn)冒泡排序的第一輪遍歷后,結(jié)果如圖3-3 3- 3-由于存在兩層循環(huán),最壞情況下的運(yùn)行時復(fù)雜度是O(n2 3-插入排序算法的Python我們使用此代碼對數(shù)組進(jìn)行排序(見圖3-6) 3-總的遍歷次數(shù)如圖3-7 3-三種算法是歸并排序算法,它是由約翰·馮·諾依曼(Johnvon 3-它使用遞歸來進(jìn)行劃分,直到每個列表的長度為1它將有序的部分歸并成一個有序的列表并返歸并排序算法的實(shí)現(xiàn)代碼如圖3-9 3- 3-丹諾德·希爾(DonaldShell)提出了希爾排序(以他的名字命 3-在Python用前面的代碼對列表進(jìn)行排序,結(jié)果如圖3-12圖3- 3-這里展示了選擇排序在Python執(zhí)行選擇排序算法時,將產(chǎn)生如圖3-14 3-線性查找(LinearSearch)二分查找(BinarySearch)插值查找(InterpolationSearch)找目標(biāo),訪問每個數(shù)據(jù)點(diǎn)從而查找匹配項(xiàng),找到匹配項(xiàng)后,返結(jié)果,現(xiàn)在,看一下代碼的輸出(見圖3-15) 3-。輸出結(jié)果如圖3-16 3-。分成兩部分。如果數(shù)據(jù)有N項(xiàng),則它最多需要O(logN)步來完成迭代,這意味著算法的運(yùn)行時間為O(logN)。輸出結(jié)果如圖3-17 3-是O(log(logN))。在此表中,第一列PersonalID與歷史數(shù)據(jù)庫中每個唯一的申請人相關(guān)聯(lián)。如果歷史數(shù)據(jù)庫中有3000萬個唯一的申請人,那么將有3000個唯一的PersonalID。每個PersonalID都在歷史數(shù)據(jù)庫系統(tǒng)中標(biāo)識一第二列是ApplicationID,每個ApplicationID都標(biāo)識了系統(tǒng)中唯數(shù)據(jù)庫中我們所擁有的不同的ApplicationID會比PersonalID多。如上表所示,JohnDoe只有一個PersonalID,卻有兩個ApplicationID為申請人發(fā)放新的ApplicationIDPersonalID。我們還需要確定歷史數(shù)據(jù)庫中已批準(zhǔn)或拒絕該申請PersonalID。Firstname:JohnSurname:DoeDOB:2000-09-19按照DOB(出生日期)對歷史數(shù)據(jù)庫進(jìn)行排序。每次有申請人到達(dá)時,向申請人發(fā)放新的申請ID。取出所有符合該出生日期的記錄,這將是主要的查找過程。在匹配的記錄中,使用名字(Firstname)和姓氏(Surname)進(jìn)如果找到匹配的申請人,則用PersonalID來指代該申請人,計(jì)算如果沒有找到匹配項(xiàng),則向該申請人發(fā)放新的PersonalID。我們先基于DOB(出生日期)進(jìn)行查找,返一組具有相同出生日第4第4根據(jù)《美國傳統(tǒng)詞典》(AmericanHeritageDictionary),算法有效的方式“實(shí)現(xiàn)某種目標(biāo)算法)功能性需求正式規(guī)定了待求解問題的輸入和輸出接口,以及與之相非功能性需求設(shè)定了對算法的性能和安全性方面的預(yù)期。第一點(diǎn):所設(shè)計(jì)算法是否能產(chǎn)生我們預(yù)期的結(jié)果?第二點(diǎn):所設(shè)計(jì)算法是獲取預(yù)期結(jié)果的最佳方法嗎?第三點(diǎn):所設(shè)計(jì)算法在更大的數(shù)據(jù)集上表現(xiàn)怎么樣?定義真實(shí)值:為了驗(yàn)證算法,對于給定的一組輸入,我們需要已知選擇度量標(biāo)準(zhǔn):我們還需要考慮如何量化運(yùn)行結(jié)果與真實(shí)值之間的值,可以選擇一個或多個度量標(biāo)準(zhǔn)(例如準(zhǔn)確率、召率或精度)來量乍一看,這個問題似乎很容易答。然而,對于某一類算法,研究多項(xiàng)式算法(polynomialalgorithm):如果算法的時間復(fù)雜度一個算法產(chǎn)生一個解(即可行解)所需要的時間tr。驗(yàn)證給出的解(可行解)所需的時間ts。類型1:類型2:肯定存在多項(xiàng)式算法用于驗(yàn)證候選解(可行解)是否最優(yōu)。肯定存在至少一種多項(xiàng)式算法來求解它們。圖4-1展示了P問題和NP 4-究所(ClayMathematicsInstitute)評選的千禧年大獎難題(MillenniumPrizeProblems),并已宣布為這個問題的解決沒有已知的多項(xiàng)式算法來生成可行解。有已知的多項(xiàng)式算法來驗(yàn)證提出的可行解是否最優(yōu)?,F(xiàn)在,我們繪制一張圖(圖4-2) 4-隨著輸入數(shù)據(jù)的增加,資源需求增加:對此進(jìn)行的估計(jì)稱為空間隨著輸入數(shù)據(jù)的增加,運(yùn)行時間增加:對此進(jìn)行的估計(jì)稱為時間分治策略動態(tài)規(guī)劃策略貪心算法策略實(shí)例——適用于ApacheSparkApacheSpark圖4-3 4-在圖4-3變換(Mapping):可以在分區(qū)上獨(dú)立運(yùn)行的任何操作都稱為變換。在圖4-3應(yīng)于三個分區(qū),有三個并行運(yùn)行的變換器。混合(shuffling):混合是將相似的鍵組合在一起的過程。一旦聚合(reducing):在相似鍵的值上運(yùn)行一個聚合函數(shù)的操作叫們需要使用一個分布式的計(jì)算框架。為此,我們將在ApacheSpark上運(yùn)首先,為了使用ApacheSpark,我們創(chuàng)建一個ApacheSpark的(ResilientDistributed 4- 4-諸如MicrosoftAzure、AmazonWebServices和GoogleCloud動態(tài)規(guī)劃是由理查德·貝爾曼(RichardBellman)在20世紀(jì)50年策略1:花更多時間尋找最接近最優(yōu)解的解,使得?i盡可能小。策略2:最小化算法開銷Ωi,采用快刀斬亂麻的方法,只需使用可假設(shè)我們有一個數(shù)據(jù)集D。在這個數(shù)據(jù)集中,選擇一個元素k它包括進(jìn)來,則將當(dāng)前解更新為Union(S,k)。重復(fù)上述過程,直到S被填滿或D實(shí)際應(yīng)用——求解列表中各城市之間的距離是已知的。在給定的列表中,每個城市只訪問一次。以下是我們用于演示TSP路線(任何路線都必須使得旅行商恰好訪問每個城市一次,且最后返我們看一下如何在Python首先注意,旅行路線{1,2,3}表示從城市1到城市2再到城市3。旅計(jì)算兩個城市a和b的距離如計(jì)算distance(ab)一樣簡單。我們只需調(diào)用generate_cities(n)就可以創(chuàng)建n個城市。線。當(dāng)n=10時,它將生成(10-1)!=362880種可能的排列組合。如果n 4-(如圖4-7所示) 4-請注意,貪心算法僅花費(fèi)0.514秒即可為2000下面,我們討論P(yáng)ageRankPageRank大學(xué)的兩位博士拉里·佩吉(LarryPage)和思爾格·布里恩(Sergey我們先正式地定義最初設(shè)計(jì)PageRank實(shí)現(xiàn)PageRankPageRank算法中最重要的部分是找到最佳方法來計(jì)算所返的查詢?yōu)榱嗽赑ython中實(shí)現(xiàn)PageRank它創(chuàng)建了網(wǎng)絡(luò)的可視化表示,如圖4-8 4- 4-請注意,此函數(shù)將返網(wǎng)絡(luò)圖的轉(zhuǎn)移矩陣G我們?yōu)榻⒌撵o態(tài)網(wǎng)絡(luò)圖生成轉(zhuǎn)移矩陣(見圖4-10) 4-0格(GeorgeDantzig)在20世紀(jì)40年代初開發(fā)的。丹特茲格在為美國空根據(jù)資源情況,盡量縮短在汽修廠修車的時間在分布式計(jì)算環(huán)境中分配可用的分布式資源,以盡量減少響應(yīng)時間在公司內(nèi)部資源優(yōu)化配置的基礎(chǔ)上,實(shí)現(xiàn)公司利潤的最大化能夠用一組方程來表述問題。方程中使用的變量必須是線性的。高級型號(A):該型號提供了完整的功能,制造每臺高級型號的基本型號(B):該型號只提供基本功能,制造每臺基本型號的產(chǎn)最大利潤A≥0:高級型號機(jī)器人的數(shù)量可以為0或更多。B≥0:基本型號機(jī)器人的數(shù)量可以為0或更多。3A+2B≤20:這是由技術(shù)員可用時間給定的限制。4A+3B≤30:這是由人工智能專家可用時間給定的限制。4A+3B≤44:這是由工程師可用時間給定的限制。例命名為Profitmaximisingproblem: 4-第5第5人與人之間的友誼在領(lǐng)英(LinkedIn)上與朋友的聯(lián)系集群中兩個節(jié)點(diǎn)的物理連接參加同一研究會議的人員現(xiàn)在,打印出所有邊和頂點(diǎn)(見圖5-1) 5-如果打印出頂點(diǎn)列表,會看到以下輸出(見圖5-2) 5-無向圖(undirectedgraph)有向圖(directedgraph)無向多重圖(undirectedmultigraph)有向多重圖(directedmultigraph) 5-Mike和Amine(Mike和Amine彼此認(rèn)識)節(jié)點(diǎn)A和節(jié)點(diǎn)B相互連接在一起(這是一個點(diǎn)對點(diǎn)的連接) 5-Mike和他的房子(Mike住在他的房子里,但他的房子不住在Mike里John管理Paul(John是Paul的經(jīng)理)。多重圖如圖5-5 5- 5-自環(huán)圖和超圖的示意圖如圖5-7 5-節(jié)點(diǎn)m被稱為中心(ego),它所連接的相距一跳( 5-社交網(wǎng)絡(luò)分析(SocialNetworkAnalysis,SNA)是圖論的重要應(yīng)圖的每個頂點(diǎn)代表一個人。頂點(diǎn)之間的邊代表人與人之間的社會關(guān)系,例如友誼、共同的愛試圖通過圖分析來答的業(yè)務(wù)問題具有很強(qiáng)的社會性。了解用戶在臉書(Facebook)、推特(Twitter)領(lǐng)英(LinkedIn)為與社交網(wǎng)絡(luò)分析相關(guān)的新技術(shù)的研究谷歌和蘋果這兩家公司曾展開過一場競賽,旨在分別在頂點(diǎn)的圖稱為完全連接網(wǎng)絡(luò)(fullyconnectednetwork)。如果我們有一個完全連接網(wǎng)絡(luò)N,請注意,三角子圖的網(wǎng)絡(luò)密度為1,度中心性介數(shù)中心性接近中心性特征向量中心性,所得的值稱為該節(jié)點(diǎn)的度中心性(degree現(xiàn)在,看一個具體的例子。思考圖5-9 5-在圖5-9中,頂點(diǎn)C的度為4特征向量中心性(eigenvectorcentrality)給圖中的所有頂點(diǎn)打用Python該代碼所生成的圖如圖5-10 5- 5-策略被稱為廣度優(yōu)先搜索(Breadth-FirstSearch,BFS),按照深度進(jìn)行搜索的策略被稱為深度優(yōu)先搜索(Depth-FirstSearch,DFS)。我們先討論BFS算法。為此,我們考慮圖5-12 5-visited:包含所有已訪問的頂點(diǎn)。在初始化時,它為空(使用列我們可以在Python現(xiàn)在,我們將該節(jié)點(diǎn)的neighbours主循環(huán)完成后,將會返visited,其中包含了所有被遍歷的節(jié)初始化和主循環(huán)的完整代碼如圖5-13 5- 5- 5-所有頂點(diǎn)。在完成一條路徑的遍歷后,算法會溯。如果可以從根節(jié)點(diǎn)如果運(yùn)行此算法,將輸出如圖5-16 5-我們看一下該圖被DFS迭代從頂層節(jié)點(diǎn)Amin在完成第一個完整分支后,溯到第二層,依次訪問第二個分該遍歷模式如圖5-17 5-定義NF現(xiàn)在,創(chuàng)建列表管理已知參與欺詐的F 5- 5-我們設(shè)計(jì)了兩種方法來將這個由節(jié)點(diǎn)q表示的新人分類為F或我們將其應(yīng)用到圖5-19中,其中鄰域n代表頂點(diǎn)n的鄰域,w(n,nj)代表它沒有評估社交網(wǎng)絡(luò)中每個頂點(diǎn)的重要性。事實(shí)上,與參與欺詐的將某人標(biāo)記為現(xiàn)有網(wǎng)絡(luò)中已知的欺詐案例時,我們沒有考慮罪行的從1分到10懷疑度(DegreeOfSuspicion,DOS)量化了某人參與欺詐行為的我們?yōu)榍懊娼o出的網(wǎng)絡(luò)中的九個節(jié)點(diǎn)分別計(jì)算每個節(jié)點(diǎn)及其歸一化后的DOS如圖5-20 5-為了計(jì)算新增節(jié)點(diǎn)的DOS,利用相關(guān)數(shù)值,我們計(jì)算新增節(jié)點(diǎn)的DOS 第6第6 6-CRISP-DM(Cross-IndustryStandardProcessforDataSEMMA(Sample、Explore、Modify、Model、Access)數(shù)據(jù)挖掘過些公司中包括克萊斯勒(Chrysler)和SPSS(StatisticalPackageforSocialScience)。SEMMA則是SAS(StatisticalAnalysis 6-錄對機(jī)器學(xué)習(xí)模型的預(yù)期值,這個預(yù)期值將在階段4發(fā)現(xiàn)數(shù)據(jù)集中的模式分析發(fā)現(xiàn)的模式,進(jìn)而理解數(shù)據(jù)集的結(jié)構(gòu)確定或推導(dǎo)目標(biāo)變量階段4:在CRISP-DM生命周期中,階段2(數(shù)據(jù)理解)和階段備可以根據(jù)對話的不同對象而答不同的內(nèi)容。 6-發(fā)現(xiàn)數(shù)據(jù)集中的多個主題將每個PDF文檔匹配到其中一個主題上 6-歐氏距離度量曼哈頓距離度量余弦距離度量監(jiān)督機(jī)器學(xué)習(xí)技術(shù)(比如聚類技術(shù))離。例如,空間中有兩個點(diǎn)A(1,1)和B(4,4),在二維空間中如圖6-5 6-A和B兩點(diǎn)之間的距離記作d(A,B),可以利用如下的勾股公式來計(jì) 6- 6-文本數(shù)據(jù)可以被視為高維空間。余弦距離度量在高維空離。這兩個點(diǎn)之間的參照點(diǎn)是原點(diǎn),亦即(0,0)。但實(shí)際上,問題空k-means值得注意的是,k-meansk-meansk-meansk-means圖6-8展示了k-means 6-終止條件:t>tmax,其中t是當(dāng)前執(zhí)行時間,tmax是為算法設(shè)定通過指定最大迭代次數(shù):終止條件:m>mmax,其中m是當(dāng)前迭代次數(shù),mmax是為算法設(shè)置編寫k-means我們看看如何在Python中編寫k-means假設(shè)存在兩個簇(k=2),通過調(diào)用fit 6-我們用matplotlib展示集群(見圖6-10) 6-k-means聚類最大的局限性在于,必須預(yù)先確定集群的數(shù)量。集群中心在初始時是隨機(jī)指派的,這意味著每次運(yùn)行算法時,可能每個數(shù)據(jù)點(diǎn)只分配給一個集群。k-means算法對異常值敏感。 6-我們學(xué)習(xí)如何用Python接下來,在二維空間中創(chuàng)建20現(xiàn)在,觀察每個數(shù)據(jù)點(diǎn)與創(chuàng)建的兩個集群之間的關(guān)聯(lián)(見圖12) 6-可以看到,分層算法和k-means點(diǎn)的緊密程度。它將為每個集群關(guān)聯(lián)[0,1]范圍內(nèi)的一個數(shù)值,其含義市場劃分靶向廣告客戶分類主成分分析(Principalcomponentanalysis,PCA)同樣也被應(yīng)特征選擇:為待求解問題選擇一組重要特征。特征聚合:選用下列算法之一來組合兩個或多個特征,以實(shí)現(xiàn)降PCA:一種線性無監(jiān)督機(jī)器學(xué)習(xí)算法線性判別分析(lineardiscriminantanalysis,LDA):一核主成分分析(kernelprincipalcomponentanalysis):我們更深入地討論一種流行的降維算法,即PCA 6-現(xiàn)在,我們打印PCA模型的系數(shù)(見圖6-14)圖6-根據(jù)這些系數(shù),我們可以為輸入數(shù)據(jù)幀X現(xiàn)在,打印在計(jì)算完P(guān)CA成分后的X(見圖6-15) 6-接下來,打印方差比,并嘗試?yán)斫釶CA的含義(見圖6-16) 6-如果選擇用PC1來代替原來的四個特征,則可以獲得大約92.3%的原如果選擇用PC1和PC2來代替原來的四個特征,則將會額外再獲得原如果選擇用PC1、PC2和PC3來代替原來的四個特征,則將再獲得原如果用四個主成分來代替原來的四個特征,則將得到原始變量100%具有衡量模式頻率的能力具有在模式間建立因果關(guān)系的能力具有量化模式有用性的能力,這種能力通過比較模式準(zhǔn)確性和隨機(jī)有助于答如下問題:在濕度、云層厚度和溫度中,哪些因素會導(dǎo)致明日有雨?何種保險(xiǎn)索賠屬于欺詐?藥物的哪些組合可能導(dǎo)致患者出現(xiàn)并發(fā)癥?第8(transactionaldata)。將關(guān)聯(lián)規(guī)則分析應(yīng)用于便利店、超市、快餐計(jì)算同時購買一組商品的條件概率,用于幫助人們答如下所示問題:貨架上物品的最佳擺放位置是什么?商品應(yīng)該如何呈現(xiàn)于銷售目錄中?如何根據(jù)用戶的購買模式來決定向其推薦何種商品?我們把超市當(dāng)作典型案例。超市中所有的商品構(gòu)成了一個集合為Δ={t1,t2,…,tn}。難釋義規(guī)則可操作規(guī)則易的常識。我們將這些規(guī)則稱為平凡規(guī)則(trivialrule)。平凡規(guī)則任何人從高層建筑上跳下時都很可能死亡。努力學(xué)習(xí)才能在考試中取得好成績。隨著氣溫下降,熱水器銷量上升了。在高速公路上開車時超速行駛會增大事故發(fā)生的概率。綠色自行車更容易被盜竊。買腌菜的人也會買尿布。規(guī)則2:下面的公式給出了為特定商品集itemseta考慮規(guī)則的數(shù)學(xué)形式 apriori算法:由阿格魯瓦(Agrawal,R.)和斯里坎特(Srikant)于1994頻繁模式增長算法:由韓家煒等人于2001年提出。apriori候選商品集生成階段:生成候選商品集,計(jì)算結(jié)果包含支持度超過過濾階段:過濾刪除置信度低于confidencethreshold的所有規(guī)則。aprioriapriori算法的主要瓶頸是生成候選規(guī)則的階段1。例如,π={1,商品2,…,商品m}可以產(chǎn)生2m頻繁模式增長算法(FP-growthAlgorithm)是對apriori算法的改填充頻繁模式樹挖掘頻繁模式出了t1的樹形表示)附加在冒號之后。比如,商品球墊的頻率是1 6-多次使用時需要增加頻率。例如,在頻繁模式樹中添加交易t2 6- 6-接下來,生成規(guī)則如圖6-20 6-步驟2:無監(jiān)督學(xué)習(xí)的使用如圖6-21 6-分類。潛在狄利克雷分配(LatentDirichletAllocation)是一種流Fashion、NewYork、Programming、Accident。這10個詞是我們現(xiàn)在成信用卡詐騙在磁共振成像(MRI)掃描中發(fā)現(xiàn)惡性腫瘤集群故障預(yù)防替考高速公路事故下一章學(xué)習(xí)多種監(jiān)督學(xué)習(xí)技術(shù)。我們從線性歸開始,然后討論更第7第7分類器和歸器。為了展示各種分類器的能力差異,我們先提出一個現(xiàn)們討論歸算法。我們提出一個類似的待求解問題,然后用三種歸算監(jiān)督學(xué)習(xí)從給定數(shù)據(jù)中進(jìn)行學(xué)習(xí)的能力類似于人腦從經(jīng) 7-本用(X,y)表示。于是,標(biāo)記后的數(shù)據(jù)集表示為:D={(X(1),y(1)),(X(2),…,(X(d),我們將D劃分為Dtrain和Dtest因而,我們的訓(xùn)練集可以表示為:Dtrain={(X(1),y(1)),y(2(X(by(b盡可能地接近實(shí)際值?;蛘哒f,y'(i)≈y(i),1≤i≤b目標(biāo)變量的值用向量表示為Y={y(1),y(2),…,y(m足夠的實(shí)例:監(jiān)督機(jī)器學(xué)習(xí)算法需要足夠的實(shí)例來訓(xùn)練模型。歷史數(shù)據(jù)中的模式:用于訓(xùn)練模型的實(shí)例需要包含某種模式。我們有效的假設(shè):用實(shí)例來訓(xùn)練監(jiān)督學(xué)習(xí)模型時,我們希望用于實(shí)例的區(qū)分分類器和歸這種異常生長的組織是惡性腫瘤嗎?根據(jù)當(dāng)前的天氣情況,明天會下雨嗎?根據(jù)申請人的個人資料,他們的按揭申請是否會獲得批準(zhǔn)?歸器:如果目標(biāo)變量是一個連續(xù)變量,則我們訓(xùn)練的是歸器。歸器可用于答如下所示的問題:根據(jù)目前的天氣情況,明天會下雨多長時間?在給定房屋特征后,房屋的價(jià)格會是多少?接下來,我們進(jìn)一步學(xué)習(xí)分類器和歸器分類算法的真正能量在于它具備了用訓(xùn)練后的模型來準(zhǔn)雖然正例和反例可以隨意定義,但是我們通常將感興趣實(shí)際的標(biāo)簽用y來表示預(yù)測的標(biāo)簽用y'來表示有人購買了產(chǎn)品,則y=1。預(yù)測結(jié)果的標(biāo)簽用y'表示。輸入特征向量x下面將會更加詳細(xì)地討論如何使用數(shù)據(jù)處理管道來組裝x文件導(dǎo)入后,我們刪掉UserID列。該列用于標(biāo)識各個用戶,在訓(xùn)數(shù)據(jù)集如圖7-2 7-碼(one-hotencoding)是完成這種轉(zhuǎn)換最有效的方法之一。在分類器轉(zhuǎn)化之后,我們再次查看數(shù)據(jù)集(見圖7-3) 7-現(xiàn)在,我們將數(shù)據(jù)集劃分為75%的訓(xùn)練數(shù)據(jù)集和25%X_train:包括訓(xùn)練數(shù)據(jù)所有特征的數(shù)據(jù)結(jié)構(gòu)X_test:包括測試數(shù)據(jù)所有特征的數(shù)據(jù)結(jié)構(gòu)Y_train:包含訓(xùn)練數(shù)據(jù)集所有標(biāo)簽值的向量Y_test:包含測試數(shù)據(jù)集所有標(biāo)簽值的向量除非要求解的問題是平凡的,否則,評估模型時會產(chǎn)生 7-真陽性(Truepositives,TP):正確分類的正例。真陰性(TrueNegatives,TN):正確分類的反例。假陽性(FalsePositives,F(xiàn)P):錯誤分類的正例。假陰性(FalseNegatives,F(xiàn)N):錯誤分類的反例。用模型預(yù)測銀行交易數(shù)據(jù)庫中的欺詐交易用模型預(yù)測飛機(jī)發(fā)動機(jī)部件發(fā)生機(jī)械故障的可能性準(zhǔn)確度更重要,它們是召率和精度。接下來依次討論這兩個指標(biāo):召率:召率計(jì)算的是命中率。在上面的第一個例子中,召率易,模型標(biāo)記出其中的78個,則在該例中召率是78/100。精度:精度衡量的是模型標(biāo)記的正例交易中有多少交易確實(shí)屬于正注意,F(xiàn)1分?jǐn)?shù)將召率和精度混合到一起。如果模型的召率和精訓(xùn)練得到了一個具有高召率和高精度的模型。 7-決策樹算法XGBoot算法隨機(jī)森林算法邏輯歸算法支持向量機(jī)算法樸素貝葉斯算法息增益(informationgain)或基尼系數(shù)(Giniimpurity)等指標(biāo)。滿足準(zhǔn)則的數(shù)據(jù)不滿足準(zhǔn)則的數(shù)據(jù)則返步驟1進(jìn)行下一輪迭代。否則,將模型標(biāo)記為訓(xùn)練完成,并將所決策樹算法可以用圖7-6 7-得到如圖7-7 7-召率和精度。運(yùn)行上述代碼將得到如圖7-8 7-決策樹分類器用于從離散問題空間中提取信息。這意味著,如果問決策樹分類器生成的樹,如果其深度過深,則模型捕獲了訓(xùn)練數(shù)據(jù)所創(chuàng)建的規(guī)則不能捕獲非線性關(guān)系。治療效果分析:訓(xùn)練一個分類器來判斷病人對特定治療方法是否有用XGBoostApacheSpark和云計(jì)算這樣的分布式基礎(chǔ)設(shè)施,比如說谷歌云和AWS(AmazonWebServices)。接下來,我們討論如何用XGBoost 7-上述過程得到如圖7-10 7-這就得到如圖7-11 7- 7-注意,在圖7-12中,我們訓(xùn)練了m棵樹,這些樹依次用C1到Cm識。這個樹集為{C1,…,Cm立預(yù)測集=P={P1,…,Pm}。最終的預(yù)測結(jié)果表示為Pf該結(jié)果可以用函數(shù)來找到(是重復(fù)次數(shù)最多的結(jié)果,亦即占多數(shù)的結(jié)果)。將各棵樹的預(yù)測結(jié)果與最終預(yù)測結(jié)果聯(lián)系起來,表示如下: 7-得到如圖7-14 7-得到如圖7-15 7-接下來,我們討論邏輯歸邏輯邏輯歸是用于二分類的分類算法。該算法使用一個邏輯函數(shù)來刻畫輸入特征與目標(biāo)變量之間的交互關(guān)系。邏輯歸是建模二分因變量的邏輯歸有如下假設(shè)訓(xùn)練數(shù)據(jù)集沒有缺失值。標(biāo)簽是二分類標(biāo)簽。標(biāo)簽是有序的,也就是說標(biāo)簽是取有序值的類別變量。所有特征或輸入變量都是相互獨(dú)立的。邏輯歸計(jì)算預(yù)測值的方法如下我們假設(shè)z=wX+j,上述關(guān)系可以用圖表示,如圖7-16 7-絕對值很大的負(fù)數(shù),則σ(z)就會等于0。因此,邏輯歸的目標(biāo)最終變邏輯回歸的命名源自該方法在形式化過程中采用的函數(shù),亦即邏輯函數(shù)(logisticfunction)或者sigmoid函數(shù)。邏輯歸的損失函數(shù)如下Loss(y'(i),y(i))=-(y(i)logy'(i)+(1-y(i))log(1-y'(i)))注意,如果y(i)=1,則Loss(y'(i),y(i))=-logy'(i)。最小化損失函數(shù)如果y(i)=0,則Loss(y'(i),y(i))=-log(1-y'(i))。最小化損失函邏輯歸的代價(jià)函數(shù)是何時使用邏輯邏輯歸在二分類器中很有用。但是,當(dāng)數(shù)據(jù)量很大但數(shù)據(jù)質(zhì)量不佳時,邏輯歸的效果不好。邏輯歸可以捕獲到不太復(fù)雜的關(guān)系。邏輯歸雖然不會有很好的性能,但是可以作為一個很好的基準(zhǔn)。用邏輯歸求解分類器挑戰(zhàn)性問下面,我們討論如何用邏輯歸算法來求解分類器挑戰(zhàn)性問題首先,我們實(shí)例化邏輯歸模型,并用訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練運(yùn)行上述代碼后,我們得到如圖7-17 7-運(yùn)行上述代碼后,我們得到如圖7-18 7- 7- 7-得到如圖7-21 7-運(yùn)行上述代碼后,我們得到如圖7-22 7-算法基于一個樸素的假設(shè),即特征和輸入變量之間的相互獨(dú)立性。算法基于貝葉斯定理。獨(dú)立事件指的是其中一個事件不影響另一個事件的發(fā)生(比如,收相關(guān)事件指的是一個事件影響另一個事件的發(fā)生,兩個事件通過某互斥事件指的是不會同時發(fā)生的事件(比如,投一次骰子,得到3ANDP(結(jié)果1和結(jié)果2)=P(結(jié)果1)×P(結(jié)果如果電子郵件接收事件的概率為31%,公司重組的概率為82%,P(電子郵件和公司重組)=P(電子郵件)×P(公司重組P(結(jié)果1和結(jié)果2)=P(結(jié)果1)×P(結(jié)果2|結(jié)果ORP(結(jié)果1或結(jié)果2)=P(結(jié)果1)+P(結(jié)果比如說,骰子出現(xiàn)6或3的概率是多少?為了答這個問題,首先應(yīng)該注P(6或接下來,打印混淆矩陣(見圖7-23) 7-得到的輸出如圖7-24 7-從上表可以看出,決策樹的準(zhǔn)確度和召率均為最佳。如果尋求精理解歸算如果目標(biāo)變量是連續(xù)變量,則監(jiān)督機(jī)器學(xué)習(xí)模型會使用歸算法。此時,機(jī)器學(xué)習(xí)模型稱為歸模型。我們在此討論可用于訓(xùn)練監(jiān)督機(jī)器學(xué)習(xí)歸模型(簡稱歸器)的所有歸算法需要解決的挑戰(zhàn)性問題。我們將這個共同的問題稱為歸器挑戰(zhàn)性問題。然后,我們使用三種不同的歸算法來求解該問題。對不同歸算法采用同一個挑戰(zhàn)性問題,這種做法有兩個好處:可以一次性準(zhǔn)備數(shù)據(jù),并將準(zhǔn)備好的數(shù)據(jù)用于三種不同的歸算可以用一種有意義的方式來比較三種歸算法的性能,因?yàn)檫@些算描述歸器挑戰(zhàn)性問題據(jù)車輛特性來預(yù)測每加侖英里數(shù)(MilesperGallon,MPG)。下面,我們討論用于訓(xùn)練歸器的歷史數(shù)據(jù)集。我們討論如何設(shè)計(jì)一個可重用的數(shù)據(jù)處理管道來求解歸器挑戰(zhàn)性問題。同前面的做法一樣,我們一次性地準(zhǔn)備數(shù)據(jù),然后在所有歸算數(shù)據(jù)集如圖7-25 7-Y_train:包含訓(xùn)練數(shù)據(jù)集所有標(biāo)簽值的向量Y_test:包含測試數(shù)據(jù)集所有標(biāo)簽值的向量現(xiàn)在,我們把準(zhǔn)備的數(shù)據(jù)集應(yīng)用到三個不同的歸器上,以便比較線性在所有的監(jiān)督學(xué)習(xí)技術(shù)中,線性歸是最容易理解的。我們先討論簡單線性歸,然后將概念拓展到多元線性歸上。簡單線性線性歸最簡單的形式就是建立一個連續(xù)自變量和另一個連續(xù)自變量之間的關(guān)系。簡單歸可以揭示因變量(y軸變量)變化能夠歸因于解釋變量(x軸變量)變化的程度。簡單線性歸可以表示為:X空氣的濕度和下雨的可能性在線性歸中,輸入變量(自變量)和目標(biāo)變量(因變量)都必須 7-評估歸 7-線性歸模型性能的一種典型量化方法是使用均方根誤差(RootMeanSquareError,RMSE)。從數(shù)學(xué)上看,它計(jì)算了訓(xùn)練模型所產(chǎn)生Loss(y'(i),y(i))=1/2(y'(i)-元,則這意味著大約68.2%的預(yù)測值將落在真實(shí)價(jià)值的上下浮動50多元事實(shí)上,現(xiàn)實(shí)世界中大部分分析都不止涉及一個自變量。多元?dú)w是簡單線性歸的一種拓展。關(guān)鍵區(qū)別是多元?dú)w對額外的每個預(yù)測變類似于簡單線性歸,因變量y被量化為截距項(xiàng)加上x的任意第i個其中ε變量和預(yù)測變量都是行向量,歸系數(shù)β和誤差ε也都是向量。用線性歸算法求解歸器挑戰(zhàn)性問首先,導(dǎo)入線性歸包接下來,我們實(shí)例化線性歸模型,并用訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)運(yùn)行上述代碼,生成如圖7-28 7-何時使用線性線性歸可以用于解決許多現(xiàn)實(shí)問題,如下所示銷量預(yù)測預(yù)測最優(yōu)的產(chǎn)品價(jià)格在諸如臨床藥物實(shí)驗(yàn)、工程安全測試和市場研究領(lǐng)域中,量化事件在已知的標(biāo)準(zhǔn)下,識別可用于預(yù)測未來行為的模式,比如說,預(yù)測線性歸的缺線性歸的缺點(diǎn)如下線性歸只對連續(xù)特征有效類別特征需要被預(yù)處理。線性歸不能有效處理缺失數(shù)據(jù)。線性歸對數(shù)據(jù)進(jìn)行了假設(shè)。歸樹算法類似于分類樹算法,只是歸樹算法處理的目標(biāo)變量是用歸樹算法求解歸器挑戰(zhàn)性問現(xiàn)在,我們討論如何用歸樹算法來求解歸器挑戰(zhàn)性問題首先,我們使用歸樹算法來訓(xùn)練模型(如圖7-29所示) 7-一旦歸樹模型訓(xùn)練完成,我們就用訓(xùn)練好的模型預(yù)測測試接下來,我們通過計(jì)算RMSE得到如圖7-30 7-梯度提升歸算我們現(xiàn)在討論梯度提升歸算法,它集成決策樹的集合來更好地描用梯度提升歸算法求解歸器挑戰(zhàn)性問下面,我們討論如何用梯度提升歸算法求解歸挑戰(zhàn)性問題首先,我們用梯度提升歸算法來訓(xùn)練模型(如圖7-31所 7-最后,計(jì)算RMSE運(yùn)行程序得到如圖7-32 7-各種歸算法的勝現(xiàn)在,我們查看一下在相同數(shù)據(jù)集和完全相同的測試用例上三種從上面的表格可以看到,在三種歸算法中,梯度提升歸算法的均方根誤差最低,性能最好。之后是線性歸算法,決策樹算法在該問訓(xùn)練該模型可用的數(shù)據(jù)存儲在名為weather.csv的CSV我們先以pandas我們查看數(shù)據(jù)幀的所有列(見圖7-33) 7-現(xiàn)在,我們看一下前13列的部分?jǐn)?shù)據(jù)(見圖7-34) 7-接下來,再看一看后10列的部分?jǐn)?shù)據(jù)(見圖7-35) 7-由于標(biāo)簽是二分變量,因此我們訓(xùn)練一個分類器。利用邏輯歸方法實(shí)現(xiàn)。首先,我們實(shí)例化邏輯歸模型:現(xiàn)在,我們計(jì)算訓(xùn)練后的模型的準(zhǔn)確性(見圖7-36) 7-算法,后面又給出了評估各種分類器性能的方法,最后討論了各種歸第8第8神經(jīng)網(wǎng)絡(luò)的概念是FrankRosenblatt于1957年提出的,其靈感源于 8-受到這種自然結(jié)構(gòu)杰作中信號處理過程的啟發(fā),F(xiàn)rankRosenblatt術(shù)。他設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的初衷非常簡單,看起來類似于線性歸模型。這 8-于左側(cè),輸出信號則是所有輸入的加權(quán)和,即輸入(x1x2xn)的每一項(xiàng)乘上(w1,w2,…,wn)中相應(yīng)的系數(shù)再求和:存在嚴(yán)重的局限性。1969年,MarvinMinsky和SeymourPapert得出感 8-注意,x為一個nx維的向量,其中nx且揭示出與我們試圖答的業(yè)務(wù)問題相關(guān)的模式。信號較為微弱,也能從較大的(用作乘數(shù)的)激活函數(shù):輸入值乘以不同的權(quán)重,然后聚合。聚合操作如何確切圖8-4 8-一個簡單的迭代過程如圖8-5 8-學(xué)習(xí)率的恰當(dāng)選擇十分重要。如果學(xué)習(xí)率太小,則訓(xùn)練 8-閾值函數(shù)(thresholdfunction)是最簡單的激活函數(shù),它的輸出 8-sigmodsigmod函數(shù)(sigmodfunction)可以被視為對閾值函數(shù)的改進(jìn), 8-sigmod函數(shù)y用PythonLinearUnit,ReLU)也是一個激活函數(shù),它接收一組輸入變量作為輸線性整流函數(shù)如圖8-9 8- 當(dāng)x大于0時,其輸出就是x的時候。帶修正的線性整流函數(shù)(LeakyReLU)解決了這個問題,其計(jì) 圖示如圖8-10所示。其中,參數(shù)β小于1 8-帶修正的線性整流函數(shù)可以用Python設(shè)定β將β做法稱為參數(shù)化線性整流函數(shù)(parametricReLU)。將β(randomizedReLU)。雙曲正切函數(shù)(hyperbolictangent)類似于sigmoid函數(shù),但它 8-雙曲正切函數(shù)y雙曲正切函數(shù)可以用Pythonx={x(1),x(2),…,softmaxTensorflowKerasMicrosoftCognitiveToolkit(CNTK):由微軟開發(fā)。 8-前面給出的三個后端引擎都可以通過技術(shù)棧底層的選擇同時運(yùn)行于CPU和GPU之上。對于CPU,使用的是一個稱為Eigen對于GPU,TensorFlow使用的是NVIDIA的CUDA深度神經(jīng)網(wǎng)絡(luò)(cuDNN)庫。學(xué)習(xí)率隱藏層數(shù)量各個隱藏層中神經(jīng)元的數(shù)量定義一個完整的Keras有兩種方式使用Keras 8- 8-在這一步中,我們定義了三種東西(見圖8- 8-模型結(jié)構(gòu)定義好之后,就可以開始訓(xùn)練了(見圖8-16) 8-理解向圖(directedgraph),其中頂點(diǎn)表示數(shù)據(jù)列表,而連接頂點(diǎn)的邊則TensorFlow 8- 8-定義兩個標(biāo)量(見圖8-19) 8-計(jì)算加法和乘法,顯示結(jié)果如圖8-20 8-可以將兩個標(biāo)量張量相加來創(chuàng)建一個新的標(biāo)量張量(見圖8-21) 8-此外,還可以執(zhí)行復(fù)雜的張量運(yùn)算,如圖8-22 8-卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionNeuralNetwork,CNN)是一種用于卷積池化降采樣過程如圖8-23 8-循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetwork,RNN)是一種基于循生成對抗網(wǎng)絡(luò)(GenerativeAdversarialNetwork,GAN)是一種生成合成數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)模型是在2014年由lanGoodfellow和視頻目標(biāo)檢測圖像目標(biāo)檢測音頻轉(zhuǎn)錄文本情感分析學(xué)習(xí)轉(zhuǎn)移到定制模型中,以便答我們自身的業(yè)務(wù)問題呢?如果能做到假設(shè)要訓(xùn)練一種模型,該模型可以通過視頻信息對蘋果和Windows 8-下面討論如何用Python首先,導(dǎo)入需要的Python注意,為了減輕過擬合,我們設(shè)定參數(shù)dropout為0.15 8-第9第9本章將介紹自然語言處理算法。這一章從理論到實(shí)踐循序漸進(jìn)展在自然語言處理領(lǐng)域訓(xùn)練機(jī)器學(xué)習(xí)來進(jìn)行電影評論情感分析。主題標(biāo)識:在文本數(shù)據(jù)庫中發(fā)現(xiàn)主題,并根據(jù)發(fā)現(xiàn)的主題對數(shù)據(jù)庫情感分析:根據(jù)文本中的積極情緒和消極情緒對文本分類。機(jī)器翻譯:把文字從一種語言翻譯成另一種語言。文本-語音轉(zhuǎn)換:把說出來的話轉(zhuǎn)換為文本。主觀翻譯:智能地解釋問題,并根據(jù)現(xiàn)有信息答問題。實(shí)體識別:從文本中識別實(shí)體(如人、地方或事物)。假新聞檢測:根據(jù)新聞內(nèi)容標(biāo)記假新聞。將所有文本轉(zhuǎn)換為大寫或小寫刪除標(biāo)點(diǎn)符號刪除數(shù)字單詞單詞組合句子段落名實(shí)體識別(NamedEntityRecognition,NER)。例如,{use,used,using,uses}=>{use}algorithm)算法是缺乏常識的。人腦將相似單詞處理為同一單詞的基于詞袋的自然語言處理傳統(tǒng)自然語言處理分類器用深度學(xué)習(xí)進(jìn)行自然語言處理二元法:如果單詞出現(xiàn)在文檔中,則對應(yīng)特征取值為1,否則特征計(jì)數(shù):將單詞在文本中出現(xiàn)的次數(shù)作為特征的取值,未出現(xiàn)時特征詞頻/倒排文檔詞頻(TF-IDF):特征的取值是單詞在文檔中的出 9-通過下面的步驟實(shí)現(xiàn)圖9-1從CSV文件中導(dǎo)入數(shù)據(jù)集(見圖9-2) 9-查看混淆矩陣(見圖9-3) 9-本吉奧(YoshuaBengio)首先在其論文“神經(jīng)概率語言模型”中引入上下文丟失:當(dāng)我們把語句拆分成符號字時,符號字的上下文就丟稀疏輸入:在符號化時,每個詞都會變成一個特征。在我們之前討遵照訓(xùn)練文本中的樣式生成新的文本(見圖9-4) 9-為了獲取實(shí)時的原始推文,需要使用Scala庫的Twitter4J整體的機(jī)制如圖9-5 9-據(jù):/people/pabo/movie-review-data/ 9-現(xiàn)在,我們通過打印混淆矩陣來查看模型的性能。注意觀察精度 9-第10第102009年,奈飛公司(Netflix)提供100萬美元獎金,用于PragmaticChaos團(tuán)隊(duì)獲得?;趦?nèi)容的推薦引擎協(xié)同過濾引擎混合推薦引擎 10-文檔得到的數(shù)據(jù)結(jié)構(gòu)是詞文矩陣(TermDocumentMatrix,TDM),如 10-使用詞頻率-倒排文檔頻率(TF-IDF):詞頻(TF):這是單詞在文檔中出現(xiàn)的次數(shù)。詞頻與該詞的重要性倒排文檔頻率(IDF):首先,文檔頻率是包含待搜索詞的文檔數(shù)由于詞頻和倒排文檔頻率在待求解問題的上下文中都量化了單詞的如果兩個用戶的購買歷史的重疊超過了閾值,則將二者歸類為相似查看相似用戶的歷史記錄,購買歷史中不重疊的商品通過協(xié)同過濾 10-Mike和Elena都對同樣的文檔Doc1和Doc2感興趣。基于二者的歷史數(shù)據(jù),判斷兩個人為相似用戶。如果Elena讀了Doc3,則可以向Mike推薦Doc3。早在2012年,美國塔格特超市(Target)曾實(shí)驗(yàn)性地嘗試生成商品相似性矩陣生成用戶偏好矩陣生成用戶推薦 10- 10-計(jì)算結(jié)果如圖10-6 10-在谷歌新聞中,推薦導(dǎo)致點(diǎn)擊量增加38%我們使用電影ID在運(yùn)行完上述代碼后,數(shù)據(jù)幀的頭幾行數(shù)據(jù)如圖10-7 10-userid:每個用戶的唯一movieid:每個電影的唯一IDrating:每個電影的評分,從1到5timestamp:電影評分的時間戳title:電影的標(biāo)題genres:電影的類型 10-Movietitles構(gòu)成矩陣的各個列得到如圖10-9 10-這意味著我們可以將圖10-9 13 大規(guī)模算第14 實(shí)踐中要考慮的要第11第11量。眾所周知,谷歌相冊(GooglePhotos)是谷歌創(chuàng)建的用于存儲照我們從數(shù)據(jù)算法設(shè)計(jì)的角度對數(shù)據(jù)進(jìn)行分類。正如第2體積量化了算法要存儲和處理的數(shù)據(jù)量。由于體積逐漸增加,計(jì)算速度定義為新數(shù)據(jù)產(chǎn)生的速率。通常,高速數(shù)據(jù)稱為“熱數(shù)多樣性指各種結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)需要先合并到一個表中,之后CAP(ConsistencyAvailabilityPartition-Tolerance)定理,這是CAP1998年,埃里克·布魯爾(EricBrewer)提出了著名的CAP定理。(PartitionTolerance)。CAP實(shí)際上就是這三個特性的首字母構(gòu)成的在任意時刻t1果。每個讀取操作要么返與分布式存儲庫中一致的最新數(shù)據(jù),要可用性(縮寫為A):可用性確保分布式存儲系統(tǒng)中的任何節(jié)點(diǎn)都分區(qū)容錯性(縮寫為P):分布式系統(tǒng)中的多個節(jié)點(diǎn)通過通信網(wǎng)絡(luò)上述結(jié)果可以表示為圖11-1 11-CAPCA系統(tǒng)(實(shí)現(xiàn)了一致性和可用性AP系統(tǒng)(實(shí)現(xiàn)了可用性和分區(qū)容錯性CP系統(tǒng)(實(shí)現(xiàn)了一致性和分區(qū)容錯性)CA寫入快速變化的數(shù)據(jù)。典型的APCassandra之類的高速分布式系統(tǒng)是APCPCP系統(tǒng)的一個典型用例是用于存儲JSON格式的文件。MongoDB的文檔數(shù)據(jù)存儲庫就是分布式環(huán)境下面向一致性調(diào)整的CP下面討論如何用Python壓縮文檔壓縮和封裝源代碼或可執(zhí)行文件將大量小規(guī)模文件轉(zhuǎn)換成少量大規(guī)模文件程序及其變體的基礎(chǔ)。錨(Modem)采用的壓縮標(biāo)準(zhǔn)V.44碼字(codeword):定長編碼(fixed-lengthcoding):每個被編碼的字符(即碼變長編碼(variable-lengthcoding):碼字允許使用不同數(shù)量碼值(evaluationofcode):無前綴編碼(prefixfreecodes):任意碼字都不是其他碼字的定長編碼:表格中定長編碼的長度是3。變長編碼:表格中變長編碼的碼值是45(1)+0.13(3)+0.12(3)+0.16(3)+0.09(4)+0.05(4)=2.24 11-用于情感分析的包VADER(ValenceAwareDictionaryandSentimentReasoner),它是面向社交媒體開發(fā)的基于規(guī)則的情感分析現(xiàn)在配置TweepyAPI 11-現(xiàn)在創(chuàng)建圖11-4 11-現(xiàn)在查看概括性統(tǒng)計(jì)數(shù)據(jù),如圖11-5 11-現(xiàn)是最積極的,而加拿大新聞頻道CTVnews第12第12稱加密算法;然后,闡述消息摘要算法MD5(Message-Digest5)和安全散列算法SHA(SecureHashAlgorithm),并給出實(shí)現(xiàn)對稱加密算法2014年,加拿大聯(lián)邦研究機(jī)構(gòu)——國家研究委員會解密:將密文變明文的過程。數(shù)學(xué)上,它表示為decrypt(C)=P。個人身份信息(PII):PII明確實(shí)體樹立安全目標(biāo)理解數(shù)據(jù)敏感度明確實(shí)體的方法之一從答以下四個問題開始,這將有助于我們從哪些應(yīng)用程序需要保護(hù)?保護(hù)應(yīng)用程序是為了不受誰的影響?應(yīng)該在何處保護(hù)這些應(yīng)用?為什么要保護(hù)這些應(yīng)用?身份驗(yàn)證:簡單地說,身份驗(yàn)證就是如何證明用戶是他自稱的那個機(jī)密性:需要保護(hù)的數(shù)據(jù)稱為敏感數(shù)據(jù)。機(jī)密性是指敏感數(shù)據(jù)被限完整性:完整性確保數(shù)據(jù)在傳輸或存儲過程中未以任何方式被更ControlProtocol/InternetProtocol)使用校驗(yàn)和算法或循環(huán)冗余檢查算法CRC(CyclicRedundancyCheck)不可否認(rèn)性:不可否認(rèn)性是指信息發(fā)送方接收到數(shù)據(jù)已被接收的確高度敏感數(shù)據(jù)或絕密數(shù)據(jù):這種信息一旦被泄露,將給組織造成保護(hù),需要特別許可才能訪問。一般來說,相比于簡單的安全算法,較復(fù)雜的安全機(jī)制解碼時再使用替換映射將密文變明文。愷撒密碼: 12-讓我們看看用Python用愷撒密碼加密后,打印密文(見圖12-2) 12-旋轉(zhuǎn)13密碼(ROT13): 12- 12-替換密碼的密碼分析:假設(shè)給定的明文(P)是OttawaRocks德國人在??一次世界大戰(zhàn)中使用了一種名為ADFGVX的它被喬治·潘文(GeorgePainvin)破解。哈希加密對稱加密非對稱加密C1=hashFunctionP1表示輸入數(shù)據(jù)的明文。C1是由加密哈希函數(shù)生成的長度固定的散列。 12-它是確定性的,亦即相同明文生成相同散列。唯一的輸入字符串應(yīng)該生成唯一的輸出散列值。不管輸入消息是什么,其輸出結(jié)果都有固定的長度。即使明文中僅有微小變化,也會生成一個新的散列。它是單向函數(shù),亦即不能從密文C1反向生成明文P1。說,碰撞中有兩個文本P1和P2,使得hashFunction(P1)=hashFunction理解MD5MD5是保爾-亨寧·卡普(Poul-HenningKamp)于1994年設(shè)計(jì)用于法,容易發(fā)生碰撞。因此,不能容忍碰撞的應(yīng)用程序要避免使用MD5你的設(shè)備上還沒有安裝這個包,請?jiān)贘upyternotebook中使用以下代碼在Python中,可以如下生成MD5散列(見圖12-6) 12-注意,MD5生成128True。但是,當(dāng)明文更改為myPassword2后,它立即返False。理解SHA是由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NationalInstituteofStandardsandTechnology,NIST)開發(fā)的。下面討論用Python如何由運(yùn)行這段代碼會得到圖12-7 12- 12-紋。在復(fù)制文件之后,重新用復(fù)制的文件生成散列值,即hcopied其中,P是明文,C解密時使用相同的密鑰K將密文C變明文這個過程如圖12-9 12-現(xiàn)在,我們討論如何在Python再生成密鑰(見圖12-10) 12-解密消息,并將其賦值給變量打印解密變量,驗(yàn)證是否能夠得到相同消息(見圖12-11) 12-密鑰保護(hù):如何保護(hù)對稱加密密鑰。密鑰分發(fā):如何從源位置將對稱加密密鑰分享到目標(biāo)位置。 SSL/TLS 12-客戶端向服務(wù)器發(fā)送Clienthello消息。該消息還包括以下內(nèi)所使用的TLS版本客戶端支持的密碼套件列表一個壓縮算法服務(wù)器向客戶端發(fā)送一個serverhello消息。該消息還包括以可接受的CA的專有名稱支持的證書類型 12-現(xiàn)在,我們討論如何用非對稱加密來創(chuàng)建公鑰體系(PublicKey公鑰體系PKI中間人MITM攻擊偽裝數(shù)據(jù)篡改MITMBob用{PrBob,PuBob}作為密鑰而Alice使用{PrAlice,PuAlice上面的MITM攻擊如圖12-14 12-我們探討如何通過在組織中引入CA來防止MITM攻擊。假設(shè)這個CA名稱是myTrustCA。數(shù)字證書嵌入了CA的公鑰PumyTrustCA。myTrustCA負(fù)責(zé)為組織中所有人(包括Alice和Bob)簽署證書。這意味著Bob和都持有myTrustCA簽名的證書。在myTrustCA證兩人確實(shí)是Alice和Bob。我們先用Iris第13第13接下來介紹計(jì)算統(tǒng)一設(shè)備架構(gòu)(ComputeUnifiedDistributed(GraphicsProcessingUnit,GPU)來加速算法;此外,還討論如何旨在優(yōu)化地利用可用資源來處理超大規(guī)模數(shù)據(jù)和超大規(guī)模運(yùn)算需是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《100 以內(nèi)的加法和減法(二)-不進(jìn)位加》(說課稿)-2024-2025學(xué)年二年級上冊數(shù)學(xué)人教版
- 13《人物描寫一組》第二課時《巧用多種方法寫“活”身邊人物》說課稿-2023-2024學(xué)年五年級語文下冊統(tǒng)編版
- Revision Being a good guest Period 2(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 2024秋九年級語文上冊 第五單元 18《懷疑與學(xué)問》說課稿 新人教版
- Unit5 What will you do this weekend?Lesson25(說課稿)-2023-2024學(xué)年人教精通版英語四年級下冊
- 5 國家機(jī)構(gòu)有哪些 第三課時 《國家機(jī)關(guān)的產(chǎn)生》 說課稿-2024-2025學(xué)年道德與法治六年級上冊統(tǒng)編版
- 《 關(guān)注新詞新語讓語言鮮活生動》說課稿 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊
- 1~5的認(rèn)識和加減法《第幾》(說課稿)-2024-2025學(xué)年一年級上冊數(shù)學(xué)人教版
- Module 9 Unit 1 It's winter.(說課稿)-2024-2025學(xué)年外研版(一起)英語二年級上冊
- 1《水到哪里去了》說課稿-2023-2024學(xué)年科學(xué)五年級下冊冀人版
- 西安經(jīng)濟(jì)技術(shù)開發(fā)區(qū)管委會招聘筆試真題2024
- 2025屆浙江省高三歷史選考總復(fù)習(xí)模擬測試(八)歷史試題(含答案)
- 六年級2025寒假特色作業(yè)
- 2025年江蘇轄區(qū)農(nóng)村商業(yè)銀行招聘筆試參考題庫含答案解析
- 人教版六年級數(shù)學(xué)下冊完整版教案及反思
- 少兒財(cái)商教育講座課件
- (八省聯(lián)考)云南省2025年普通高校招生適應(yīng)性測試 物理試卷(含答案解析)
- 2025藥劑科工作人員工作計(jì)劃
- 春節(jié)節(jié)后安全教育培訓(xùn)
- 2025年新高考數(shù)學(xué)一輪復(fù)習(xí)第5章重難點(diǎn)突破02向量中的隱圓問題(五大題型)(學(xué)生版+解析)
- 水土保持方案投標(biāo)文件技術(shù)部分
評論
0/150
提交評論