版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章機(jī)器學(xué)習(xí)技術(shù)簡介課程學(xué)習(xí)內(nèi)容1.1機(jī)器學(xué)習(xí)簡介1.2機(jī)器學(xué)習(xí)的實(shí)現(xiàn)工具1.3Python平臺搭建1.4Spark平臺搭建1.5基于Python創(chuàng)建項(xiàng)目1.6基于Spark創(chuàng)建項(xiàng)目1.1機(jī)器學(xué)習(xí)簡介1.1.1機(jī)器學(xué)習(xí)的概念
機(jī)器學(xué)習(xí)是計(jì)算機(jī)從數(shù)據(jù)中學(xué)習(xí)到規(guī)律和模式,以應(yīng)用在新的數(shù)據(jù)上完成分析或預(yù)測任務(wù)的一種技術(shù)。
機(jī)器學(xué)習(xí)的研究方向主要分為兩類:第一類是傳統(tǒng)機(jī)器學(xué)習(xí),主要研究學(xué)習(xí)機(jī)制,注重探索模擬人的學(xué)習(xí)機(jī)制,其研究成果在Python的scikit-learn(簡稱sklearn)上有非常成熟的落地。第二類是大數(shù)據(jù)環(huán)境下機(jī)器學(xué)習(xí)的研究,主要是研究如何有效利用信息,注重從巨量數(shù)據(jù)中獲取隱藏的、有效的、可理解的知識。Hadoop大數(shù)據(jù)生態(tài)圈中的Spark是其典型代表。1.1機(jī)器學(xué)習(xí)簡介1.1.2機(jī)器學(xué)習(xí)的算法模型
機(jī)器學(xué)習(xí)的分類方法有多種,根據(jù)算法的學(xué)習(xí)方式可以分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和強(qiáng)化學(xué)習(xí)等1.監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)是將一些“標(biāo)記好”的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,并基于該數(shù)據(jù)預(yù)測輸出。標(biāo)記的數(shù)據(jù)意味著一些輸入數(shù)據(jù)已經(jīng)用正確的輸出標(biāo)記,在監(jiān)督學(xué)習(xí)中充當(dāng)監(jiān)督者,訓(xùn)練機(jī)器正確預(yù)測輸出。這些標(biāo)記好的數(shù)據(jù)充當(dāng)導(dǎo)師。
分類模型、回歸模型、神經(jīng)網(wǎng)絡(luò)以及數(shù)據(jù)降維中的線性判別分析算法都屬于監(jiān)督學(xué)習(xí)。1.1機(jī)器學(xué)習(xí)簡介2.無監(jiān)督學(xué)習(xí)
無監(jiān)督學(xué)習(xí)不使用訓(xùn)練數(shù)據(jù)集進(jìn)行監(jiān)督,模型使用未標(biāo)記的數(shù)據(jù)集進(jìn)行訓(xùn)練,并允許在沒有任何監(jiān)督的情況下對該數(shù)據(jù)進(jìn)行操作。這里沒有標(biāo)記好的數(shù)據(jù)引導(dǎo),也不存在導(dǎo)師。計(jì)算機(jī)自主地基于某種算法對數(shù)據(jù)進(jìn)行處理和學(xué)習(xí),根據(jù)訓(xùn)練數(shù)據(jù)集的內(nèi)在特征對數(shù)據(jù)進(jìn)行分類或產(chǎn)生相互關(guān)聯(lián)。
聚類模型、關(guān)聯(lián)模型以及數(shù)據(jù)降維中的主成分分析算法和奇異值分解算法都屬于無監(jiān)督學(xué)習(xí)。1.1機(jī)器學(xué)習(xí)簡介3.半監(jiān)督學(xué)習(xí)
半監(jiān)督學(xué)習(xí)在訓(xùn)練模型時(shí)同時(shí)使用了有標(biāo)簽數(shù)據(jù)和無標(biāo)簽數(shù)據(jù),其中小部分是有標(biāo)簽數(shù)據(jù),大部分是無標(biāo)簽數(shù)據(jù)。它結(jié)合了監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的特點(diǎn),旨在利用少量標(biāo)記樣本和大量未標(biāo)記樣本提升學(xué)習(xí)效果。
通常在標(biāo)記樣本數(shù)量不足時(shí)使用,通過引入無標(biāo)記樣本,捕捉數(shù)據(jù)的整體潛在分布,從而改善學(xué)習(xí)效果。1.1機(jī)器學(xué)習(xí)簡介4.強(qiáng)化學(xué)習(xí)
計(jì)算機(jī)使用強(qiáng)化學(xué)習(xí)時(shí),通過嘗試不同的行為,從反饋中學(xué)習(xí)該行為是否能夠得到更好的結(jié)果,然后記住能得到更好結(jié)果的行為。強(qiáng)化學(xué)習(xí)不要求預(yù)先給定任何數(shù)據(jù),而是通過接收環(huán)境對動作的獎勵(或負(fù)向反饋)獲得學(xué)習(xí)信息并更新模型參數(shù)。在多次迭代中自主地重新修正算法,直到做出正確的判斷為止。
強(qiáng)化學(xué)習(xí)主要應(yīng)用于信息論、博弈論、自動控制等領(lǐng)域。1.1機(jī)器學(xué)習(xí)簡介1.1.3機(jī)器學(xué)習(xí)程序開發(fā)步驟1.數(shù)據(jù)獲取
數(shù)據(jù)獲取,就是從生產(chǎn)環(huán)境中或互聯(lián)網(wǎng)上得到數(shù)據(jù)。1.1機(jī)器學(xué)習(xí)簡介1.1.3機(jī)器學(xué)習(xí)程序開發(fā)步驟2.數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理就是對數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換,使其符合后續(xù)的模型訓(xùn)練和模型測試的要求。
數(shù)據(jù)清洗就是對數(shù)據(jù)中缺失、不完整或有缺陷的數(shù)據(jù)進(jìn)行處理,輸出正確完整的數(shù)據(jù)集。
數(shù)據(jù)轉(zhuǎn)換就是把清洗好的數(shù)據(jù)轉(zhuǎn)換成能夠被算法模型識別的格式類型。1.1機(jī)器學(xué)習(xí)簡介3.模型訓(xùn)練
根據(jù)問題需要,選擇算法模型。將預(yù)處理之后的數(shù)據(jù)輸入算法模型中進(jìn)行訓(xùn)練。對于監(jiān)督學(xué)習(xí),把數(shù)據(jù)劃分為訓(xùn)練集和測試集,訓(xùn)練集用來訓(xùn)練模型;對于無監(jiān)督學(xué)習(xí),把所有的數(shù)據(jù)作為一個整體進(jìn)行訓(xùn)練,設(shè)置一個結(jié)束條件,達(dá)到結(jié)束條件后,訓(xùn)練結(jié)束,訓(xùn)練的效果提交到模型測試階段進(jìn)行評估。4.模型測試
為了評估模型,必須測試算法工作的效果。對于監(jiān)督學(xué)習(xí),把數(shù)據(jù)劃分為訓(xùn)練集和測試集,訓(xùn)練集用來訓(xùn)練模型,測試集用來評估模型的分類效果;對于無監(jiān)督學(xué)習(xí),用其他評測手段來檢驗(yàn)算法的效果。1.1機(jī)器學(xué)習(xí)簡介5.模型應(yīng)用
將機(jī)器學(xué)習(xí)算法模型轉(zhuǎn)化為應(yīng)用程序,執(zhí)行實(shí)際任務(wù),以檢驗(yàn)上述步驟是否可以在實(shí)際環(huán)境中正常運(yùn)行。運(yùn)行效果不滿意或有新問題、新數(shù)據(jù)出現(xiàn),可以返回第一步重新獲取數(shù)據(jù)。1.2機(jī)器學(xué)習(xí)的實(shí)現(xiàn)工具
用于機(jī)器學(xué)習(xí)的工具非常多,就其面向的用戶而言,可以劃分為兩大類。
第一類是面向非計(jì)算機(jī)專業(yè)人員的圖形化、零代碼工具,如SPSS、SAS等。
第二類是面向計(jì)算機(jī)專業(yè)人員的編程實(shí)現(xiàn)工具,如Python的sklearn、Spark的ML和MLlib等。
Python做機(jī)器學(xué)習(xí)任務(wù),數(shù)據(jù)集不能太大,如果數(shù)據(jù)集超過了單機(jī)環(huán)境的上限,就要采用Spark做機(jī)器學(xué)習(xí)任務(wù)。Spark是大數(shù)據(jù)環(huán)境下進(jìn)行數(shù)據(jù)處理和分析的良好工具。1.3Python平臺搭建1.3.1集成開發(fā)環(huán)境Anaconda1.下載Anaconda軟件安裝程序1.3Python平臺搭建2.安裝Anaconda
選擇安裝用戶、選擇anaconda安裝路徑、設(shè)置系統(tǒng)環(huán)境變量1.3Python平臺搭建3.檢測Anaconda是否安裝成功
在cmd命令窗口中輸入conda–version;輸入condainfo即可查看python版本等信息。輸入activate”,回車,之后再輸入“python”,檢測環(huán)境變量配置是否成功,在命令提示符>>>后面輸入exit()命令退出Python。命令提示符中鍵入condalist,可以查看當(dāng)前環(huán)境的所有包1.3Python平臺搭建1.3.2集成開發(fā)環(huán)境PyCharm1.下載PyCharm軟件安裝包2.安裝PyCharm
設(shè)置安裝路徑、設(shè)置安裝選項(xiàng)1.3Python平臺搭建3.漢化PyCharm4.為PyCharm配置解釋器1.3Python平臺搭建1.3.3搭建虛擬環(huán)境1.創(chuàng)建一個虛擬環(huán)境
進(jìn)入命令窗口,輸入命令activate,輸入命令condacreate-nmy_envpython=3.8創(chuàng)建一個虛擬環(huán)境,其中my_env是虛擬環(huán)境的名字,必須指定Python的版本2.激活環(huán)境
輸入命令activatemy_env,激活創(chuàng)建的虛擬環(huán)境,前綴由(base)變?yōu)?my_env)my_env是虛擬環(huán)境的名字1.3Python平臺搭建3.設(shè)置項(xiàng)目環(huán)境為虛擬環(huán)境
啟動PyCharm,創(chuàng)建一個新項(xiàng)目,配置項(xiàng)目解釋器1.3Python平臺搭建1.3.4配置虛擬環(huán)境1.安裝Anaconda中已經(jīng)有的庫 Anaconda中集成了很多常用的第三方庫,但我們通過Anaconda所創(chuàng)建的虛擬環(huán)境沒有,可以通過Pycharm直接添加,搜索第三方包并點(diǎn)擊安裝,在這里我們安裝Pandas1.3Python平臺搭建2.離線安裝第三方庫
在外網(wǎng)上下載相關(guān)的文件,使用python的pip或者conda安裝,然后再進(jìn)行配置。打開Anaconda命令行,進(jìn)入并激活環(huán)境,輸入命令pipinstall全名.whl,開始離線安裝。3.在線安裝
(1)Anaconda命令行在線安裝,首先激活并進(jìn)入環(huán)境,然后輸入命令:condainstall庫名
(2)通過Pycharm在線安裝,點(diǎn)擊Pycharm下方的Terminal(終端),輸入命令:pipinstall庫名1.3Python平臺搭建4.驗(yàn)證安裝是否成功
導(dǎo)入安裝的庫,輸入:import庫名1.4Spark平臺搭建1.4.1Spark的部署方式1.SparkonYARN
是生產(chǎn)環(huán)境中最常見的部署方式,YARN是目前最為普遍的資源管理與調(diào)度平臺。2.SparkonMesos
由于YARN依托于Hadoop的先發(fā)優(yōu)勢太大,因此目前使用Mesos的用戶不是太多。3.SparkStandalone
采用了一個內(nèi)置的調(diào)度器,沒有依賴任何外部資源管理與調(diào)度平臺,Spark集群自己管理資源與調(diào)度。4.SparkonKubernetes Spark2.3以后支持SparkonKubernetes運(yùn)行模式1.4Spark平臺搭建1.4.2安裝JDk1.下載軟件安裝包2.安裝JDK注意:改變jdk的安裝路徑、jre的安裝路徑1.4Spark平臺搭建3.設(shè)置環(huán)境變量1.4Spark平臺搭建4.測試安裝是否成功
進(jìn)入命令窗口,輸入如下命令,輸入java–version、輸入java、輸入
javac1.4Spark平臺搭建1.4.3安裝Scala1.下載軟件安裝包2.安裝Scala
將scala-2.11.8.zip解壓為文件夾,例如解壓到C盤的Scala文件夾下面,C:\Scala\scala-2.11.8。3.設(shè)置環(huán)境變量1.4Spark平臺搭建4.測試安裝是否成功(1)進(jìn)入命令窗口,輸入scala直接進(jìn)入編寫界面(2)輸入scala-version查看scala版本1.4Spark平臺搭建1.4.4安裝開發(fā)工具IDEA1.下載軟件安裝包2.安裝IDEA1.4Spark平臺搭建3.漢化IDEA4.安裝Scala插件1.4Spark平臺搭建1.4.5安裝Spark1.下載軟件安裝包2.安裝Spark
將spark-2.4.8-bin-hadoop2.7.zip解壓為文件夾,例如解壓到C盤的Spark文件夾下面,C:\Spark\。3.設(shè)置環(huán)境變量1.4Spark平臺搭建4.測試安裝是否成功打開cmd命令窗口,輸入spark-shell1.4Spark平臺搭建1.4.6安裝Maven1.下載軟件安裝包2.安裝Maven
將apache-maven-3.9.3-bin.zip解壓為文件夾,例如解壓到C盤的maven文件夾下面,C:\maven。3.設(shè)置環(huán)境變量1.4Spark平臺搭建4.測試安裝是否成功
進(jìn)入命令窗口,輸入mvn-version或者mvn–v5.配置Maven倉庫
(1)Maven的倉庫分類本地倉庫:位于自己計(jì)算機(jī)中的倉庫,用來存儲從遠(yuǎn)程倉庫或中央倉庫下載的插件和jar包,遠(yuǎn)程倉庫:需要聯(lián)網(wǎng)才可以使用的倉庫,阿里提供了一個免費(fèi)的maven遠(yuǎn)程倉庫。中央倉庫:中央倉庫服務(wù)于整個互聯(lián)網(wǎng)。
1.4Spark平臺搭建
(2)配置本地倉庫
建議將Maven的本地倉庫放在其他盤符下,在maven安裝目錄中,進(jìn)入conf文件夾,打開settings.xml文件。配置代碼如下:
(3)配置阿里云提供的鏡像倉庫1.5基于Python創(chuàng)建項(xiàng)目1.啟動PyCharm,新建項(xiàng)目2.設(shè)置解釋器“my_env”是自行創(chuàng)建的虛擬環(huán)境1.5基于Python創(chuàng)建項(xiàng)目3.右擊項(xiàng)目,新建Python文件,輸入代碼運(yùn)行結(jié)果4.運(yùn)行結(jié)果1.6基于Spark創(chuàng)建項(xiàng)目1.啟動IDEA創(chuàng)建項(xiàng)目1.6基于Spark創(chuàng)建項(xiàng)目2.給項(xiàng)目添加框架支持,選擇Maven1.6基于Spark創(chuàng)建項(xiàng)目3.打開“項(xiàng)目結(jié)構(gòu)”對話框,在main下面新建文件夾,設(shè)置該文件夾為“源文件”1.6基于Spark創(chuàng)建項(xiàng)目創(chuàng)建完成之后的項(xiàng)目結(jié)構(gòu)圖如圖所示1.6基于Spark創(chuàng)建項(xiàng)目4.打開“項(xiàng)目結(jié)構(gòu)”對話框,在庫中添加scala-sdk5.右擊文件夾,新建Scala類,注意選擇“Object”1.6基于Spark創(chuàng)建項(xiàng)目6.輸入代碼運(yùn)行結(jié)果謝謝觀看第2章數(shù)據(jù)預(yù)處理課程學(xué)習(xí)內(nèi)容2.1數(shù)據(jù)預(yù)處理的概念2.2基于Python的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理2.1數(shù)據(jù)預(yù)處理的概念
典型的機(jī)器學(xué)習(xí)流程包括:數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、模型訓(xùn)練、模型測試和模型應(yīng)用五個環(huán)節(jié)。
數(shù)據(jù)獲取,就是從生產(chǎn)環(huán)境或互聯(lián)網(wǎng)上得到數(shù)據(jù)并加載。數(shù)據(jù)預(yù)處理,就是對數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)換,使其符合后續(xù)的模型訓(xùn)練和模型測試的要求。2.1數(shù)據(jù)預(yù)處理的概念2.1.1數(shù)據(jù)清洗
數(shù)據(jù)清洗,就是將數(shù)據(jù)中缺失、不完整或有缺陷的數(shù)據(jù)進(jìn)行處理,輸出正確完整的數(shù)據(jù)集。數(shù)據(jù)清洗的情況主要有以下幾種: 1.數(shù)據(jù)過濾:從完整的數(shù)據(jù)集中篩選出滿足條件的子集。 2.重復(fù)值處理:重復(fù)值就是所有字段都一樣的記錄,要進(jìn)行數(shù)據(jù)去重,僅保留唯一的一條記錄。 3.缺失值處理:處理數(shù)據(jù)集中值為空值的單元格。 4.異常值處理:數(shù)據(jù)中可能存在噪聲,可以用異常檢測手段的方法刪除異常值。2.1數(shù)據(jù)預(yù)處理的概念2.1數(shù)據(jù)預(yù)處理的概念2.1數(shù)據(jù)預(yù)處理的概念2.1數(shù)據(jù)預(yù)處理的概念2.1.2數(shù)據(jù)轉(zhuǎn)換
把清洗好的數(shù)據(jù)轉(zhuǎn)換成能夠輸入到算法模型的格式類型。主要情況有以下幾種: 1.將文字類型數(shù)據(jù)編碼為數(shù)字。 2.從文本中提取有用的信息。 3.將數(shù)值類型數(shù)據(jù)轉(zhuǎn)換為類別數(shù)據(jù)。
4.數(shù)值特征進(jìn)行轉(zhuǎn)換。 5.對數(shù)據(jù)進(jìn)行歸一化和標(biāo)準(zhǔn)化。 6.特征工程。對現(xiàn)有變量進(jìn)行組合變換以生成新的特征。2.1數(shù)據(jù)預(yù)處理的概念2.1數(shù)據(jù)預(yù)處理的概念2.2基于Python的數(shù)據(jù)預(yù)處理
在Python中常常用Numpy和Pandas來實(shí)現(xiàn)數(shù)據(jù)預(yù)處理。Numpy是一種強(qiáng)大的矩陣處理工具,而Pandas提供了很多表格操作函數(shù),這二者結(jié)合能夠快速地完成數(shù)據(jù)讀取、清洗和轉(zhuǎn)換。2.2基于Python的數(shù)據(jù)預(yù)處理(1)讀取數(shù)據(jù),查看統(tǒng)計(jì)信息,并做簡單可視化。2.2基于Python的數(shù)據(jù)預(yù)處理(2)數(shù)據(jù)去重。先進(jìn)行重復(fù)性檢查,如果出現(xiàn)重復(fù)值就去除。(3)處理缺失值。如果某一行的缺失項(xiàng)大于50%,就刪除這一行。刪除以后,對于個別的空值進(jìn)行填充。2.2基于Python的數(shù)據(jù)預(yù)處理
分別打印前10行進(jìn)行觀察,確定last_evaluation用平均值填充,Work_accident用中位數(shù)填充。代碼如下:(4)數(shù)據(jù)集中有兩列sales和salary不是數(shù)據(jù)而是文字,需要把它們轉(zhuǎn)換為數(shù)值型。采用oneHotKey編碼,把數(shù)據(jù)轉(zhuǎn)換為0和1的向量組合。2.2基于Python的數(shù)據(jù)預(yù)處理(5)數(shù)據(jù)標(biāo)準(zhǔn)化。觀察到number_project、average_monthly_hours和time_spend_company這3個字段,取值范圍相差較大,為了避免取值范圍造成的影響。進(jìn)行標(biāo)準(zhǔn)化處理,另外也可以進(jìn)行歸一化。2.3基于Spark的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理
Spark對數(shù)據(jù)的預(yù)處理,主要通過SparkSQL和SparkML來實(shí)現(xiàn)。用SparkSQL讀取文件,形成DataFrame并進(jìn)行數(shù)據(jù)清洗,借助ML進(jìn)行標(biāo)準(zhǔn)化和oneHotKey編碼處理。2.3基于Spark的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理2.3基于Spark的數(shù)據(jù)預(yù)處理謝謝觀看第3章分類模型課程學(xué)習(xí)內(nèi)容3.1分類模型的概念3.2分類模型的算法原理3.3基于Python的分類建模實(shí)例3.4基于Spark的分類建模實(shí)例3.1分類模型的概念
分類是找出數(shù)據(jù)庫中一組數(shù)據(jù)對象的共同特點(diǎn)并按照分類模式將其劃分為不同的類,其目的是通過分類模型將數(shù)據(jù)庫中的數(shù)據(jù)項(xiàng)映射到某個給定的類別。分類可以是二類別問題,也可以是多類別問題。
下面通過舉例具體說明。銀行經(jīng)常需要判斷用戶的信用等級,以此判斷是否通過貸款申請。在圖中的歷史數(shù)據(jù)集中,每一行對應(yīng)客戶的一條記錄,作為記錄樣本。除了最后一列之外的每一列字段,如姓名、年齡、職業(yè)等是預(yù)測變量,是模型的輸入。最后一列,信用等級作為目標(biāo)變量,是模型的輸出。目標(biāo)變量的值域稱為類標(biāo)號屬性。3.1分類模型的概念
3.1分類模型的概念
將歷史數(shù)據(jù)集劃分成2部分:訓(xùn)練集和測試集。用訓(xùn)練集進(jìn)行模型訓(xùn)練,確定模型參數(shù)。用測試集進(jìn)行驗(yàn)證,檢驗(yàn)?zāi)P偷姆诸悳?zhǔn)確率。模型通過驗(yàn)證,準(zhǔn)確率符合要求,即可部署。3.1分類模型的概念
以2分類問題為例,P為正樣本,N為負(fù)樣本。定義:真正類數(shù)(TruePositive,TP):被模型預(yù)測為正的正樣本的數(shù)量假正類數(shù)(FalsePositive,FP):被模型預(yù)測為正的負(fù)樣本的數(shù)量假負(fù)類數(shù)(FalseNegative,FN):被模型預(yù)測為負(fù)的正樣本的數(shù)量真負(fù)類數(shù)(TrueNegative,TN):被模型預(yù)測為負(fù)的負(fù)樣本的數(shù)量3.1分類模型的概念
可以根據(jù)以下指標(biāo)衡量模型的性能:1.準(zhǔn)確率(Accuracy)。 accuracy=(TP+TN)/(TP+FP+TN+FN),表示所有預(yù)測結(jié)果有多少是正確的。2.精確率(Precision)。Precision=TP/(TP+FP),表示
預(yù)測成正樣本的結(jié)果中,有多少真的是正樣本。3.真陽性率、召回率(TPR、Recall)。 Recall=TP/(TP+FN),表示實(shí)際的正樣本中,有多少被正確預(yù)測了。4.真陰性率、特異度(TNR、Specificity)。 Specificity=TN/(TN+FP),表示的是實(shí)際的負(fù)樣本中有多少被預(yù)測正確了。3.1分類模型的概念5.假陰性率(FNR),F(xiàn)NR=1-Recall=FN/(TP+FN)。6.假陽性率(FPR),F(xiàn)PR=1-Specificity=FP/(TN+FP)
以上指標(biāo)取值區(qū)間是[0,1]。雖然我們希望指標(biāo)1~4越高越好,指標(biāo)5、6越低越好,但實(shí)際并非如此。隨著分類門限(threshold)的變化,分類模型的性能指標(biāo)是相互制約、此消彼長的,以下的指標(biāo)7、8則是綜合性指標(biāo),同時(shí)考慮了多種因素。3.1分類模型的概念7.F分?jǐn)?shù)。計(jì)算公式為fβ=(β2+1)(Precision*Recall)/(β2Precision+Recall)。當(dāng)β=1時(shí),可以得到F1分?jǐn)?shù)F1=2(Precision*Recall)/(Precision+Recall)。F分?jǐn)?shù)同時(shí)考慮了精確率和召回率的因素,是一個綜合性指標(biāo)。對于F1分?jǐn)?shù)而言,精確率和召回率都很重要,權(quán)重相同。當(dāng)有些情況下,如果認(rèn)為精確率更重要些,那就調(diào)整β的值小于1;如果認(rèn)為召回率更重要些,那就調(diào)整β的值大于13.1分類模型的概念8.ROC曲線。
ROC曲線是反映召回率和特異度的綜合性指標(biāo)。如圖所示,橫軸代表了FPR,縱軸代表TPR,隨著門限的減小,越來越多的樣本被劃分為正樣本,但是這些正樣本中摻雜著更多真正的負(fù)樣本,導(dǎo)致FPR、TPR同時(shí)增大,反之亦然。為了衡量分類效果,可以求ROC曲線下面包圍的面積(AUC)。AUC越大越好。AUC=0.5:說明模型與偶然造成的結(jié)果效果差不多;AUC<0.5:說明模型不如偶然造成的效果;AUC>0.5:說明模型較好。3.1分類模型的概念3.1分類模型的概念3.1分類模型的概念3.2分類模型的算法原理3.2.1決策樹算法1.決策樹的構(gòu)建決策樹是一棵有向的樹,從根節(jié)點(diǎn)向下產(chǎn)生分支結(jié)構(gòu)。以銀行衡量信用等級的案例為例構(gòu)建一個簡單的決策樹加以說明,如圖3.2分類模型的算法原理
用訓(xùn)練數(shù)據(jù)集構(gòu)建的決策樹得到下面的規(guī)則:如果年齡小于40歲,職業(yè)是學(xué)生或教師,那么其信用等級判斷為優(yōu)。如果年齡小于40歲,職業(yè)不是學(xué)生或教師,那么其信用等級判斷為良。如果年齡大于40歲,月薪小于1000元,那么其信用等級判斷為差。如果年齡大于40歲,月薪大于等于1000元,小于等于3000元,那么其信用等級判斷為良。如果年齡大于40歲,月薪大于3000元,那么其信用等級判斷為優(yōu)。
再將這一規(guī)則用測試集的數(shù)據(jù)進(jìn)行驗(yàn)證,如果性能指標(biāo)滿足要求,則可以實(shí)際應(yīng)用部署。3.2分類模型的算法原理2.決策樹的生成方法有多種決策樹生成方法:(1)ID3方法 ID3方法是用信息增益衡量決策樹劃分的效果,為了使數(shù)據(jù)純凈,ID3方法是力圖使得劃分之后的熵最小,那么用劃分之前的熵減去劃分之后的熵,所得到的信息增益就是最大的。
用ID3方法構(gòu)建決策樹,具體實(shí)施步驟如下:檢查所有屬性,選擇信息增益最大的屬性進(jìn)行分支。再用同樣方法對各個分支子集選擇信息增益最大的屬性進(jìn)行分支,直到所有子集僅僅包含了同一類別的數(shù)據(jù)為止。3.2分類模型的算法原理3.2分類模型的算法原理3.2分類模型的算法原理(2)C4.5方法 C4.5方法用信息增益比例來代替信息增益,衡量決策樹劃分的效果。
用C4.5方法構(gòu)建決策樹,具體實(shí)施步驟如下:首先將連續(xù)的屬性進(jìn)行離散化,然后處理有缺失值的樣本,接著按照信息增益比例最大化的原則劃分決策樹,最后用“后剪枝”的方法修剪決策樹,減掉對分類精度貢獻(xiàn)不大的葉子節(jié)點(diǎn)。3.2分類模型的算法原理3.2分類模型的算法原理(3)CART方法 CART方法用雜度削剪為參數(shù)劃分決策樹,而且它每次分裂只產(chǎn)生兩個分支,稱之為二叉決策樹。
用CART方法構(gòu)建決策樹,具體實(shí)施步驟如下:檢查所有屬性,選擇雜度削減最大的屬性進(jìn)行分支。再用同樣方法對各個分支子集選擇雜度削減最大的屬性進(jìn)行分支,直到滿足某一個停止準(zhǔn)則為止。3.2分類模型的算法原理3.2分類模型的算法原理3.決策樹的修剪
在實(shí)際應(yīng)用中,決策樹不能過于復(fù)雜,需要對決策樹進(jìn)行修剪。決策樹的修剪是為了簡化決策樹模型,避免過擬合。過擬合是指,構(gòu)建的決策樹對于訓(xùn)練集的預(yù)測100%正確,但是對于測試集正確率較低。這樣的決策樹在實(shí)際應(yīng)用中往往失去一般性,判別效果不理想。
決策樹的修剪方法可分為預(yù)剪枝和后剪枝。3.2分類模型的算法原理(1)預(yù)剪枝
預(yù)剪枝是在構(gòu)造決策樹的同時(shí)進(jìn)行剪枝。所有決策樹的構(gòu)建方法,都是在無法進(jìn)一步降低熵或雜度削減的情況下才會停止創(chuàng)建分支的過程,為了避免過擬合,可以設(shè)定一個閾值,熵或雜度削減減小的數(shù)量小于這個閾值,即使還可以繼續(xù)降低,也停止繼續(xù)創(chuàng)建分支。(2)后剪枝
后剪枝是在決策樹生長完成之后,對樹進(jìn)行剪枝,得到簡化版的決策樹。剪枝的過程是對擁有同樣父節(jié)點(diǎn)的一組節(jié)點(diǎn)進(jìn)行檢查,判斷如果將其合并,熵的增加量是否小于某一閾值。如果確實(shí)小,則這一組節(jié)點(diǎn)可以合并一個節(jié)點(diǎn),其中包含了所有可能的結(jié)果。后剪枝是目前最普遍的做法。3.2分類模型的算法原理3.2.2最近鄰算法
最近鄰算法的思想比較簡單,對于需要判斷類別的新樣本,只需要選取距離這個新樣本最近的k個類別已知的樣本。然后讓這k個樣本進(jìn)行投票,判定新樣本的所屬類別。對于二分類問題,k一般取奇數(shù)。對于多分類問題,設(shè)分類數(shù)為a,則k=a*n+1,其中n為正整數(shù)。3.2分類模型的算法原理最近鄰算法的步驟如下:①向量歸一化;②計(jì)算測試數(shù)據(jù)與各個訓(xùn)練數(shù)據(jù)之間的距離;③按照距離的遞增關(guān)系排序;④選取距離最小的k個點(diǎn);⑤計(jì)算這k個點(diǎn)所在類別的出現(xiàn)頻率;⑥返回這k個點(diǎn)中出現(xiàn)頻率最高的類別作為測試數(shù)據(jù)的預(yù)測分類。3.2分類模型的算法原理3.2分類模型的算法原理3.2分類模型的算法原理3.2.3樸素貝葉斯算法
貝葉斯分類算法是統(tǒng)計(jì)學(xué)的一種分類方法,它是一種利用條件概率進(jìn)行分類的算法。該算法能運(yùn)用到大型數(shù)據(jù)庫中,而且方法簡單、分類準(zhǔn)確率高、速度快。
設(shè)每個數(shù)據(jù)樣本用一個n維特征向量來描述n個屬性的值,即:X={x1,x2,…,xn},假定有m個類,分別用C1,C2,…,Cm表示?,F(xiàn)有一個未知的數(shù)據(jù)樣本X,若有后驗(yàn)概率P(Ci|X)>P(Cj|X),其中1≤i≤m,1≤j≤m,j≠i。則該樣本X屬于類Ci。3.2分類模型的算法原理
由于P(X)對于所有類為常數(shù),后驗(yàn)概率P(Ci|X)可轉(zhuǎn)化為先驗(yàn)概率P(X|Ci)P(Ci)。概率P(x1|Ci),P(x2|Ci),…,P(xn|Ci)可以從訓(xùn)練數(shù)據(jù)集求得,假設(shè)各屬性的取值互相獨(dú)立,這樣P(X|Ci)=P(x1|Ci)P(x2|Ci)…P(xn|Ci)。而每一類的概率P(Ci)也很容易從訓(xùn)練數(shù)據(jù)集求得。這樣,就能計(jì)算出X屬于每一個類別Ci的概率P(X|Ci)P(Ci),然后選擇其中概率最大的類別作為其類別。3.2分類模型的算法原理3.2.4邏輯回歸算法
邏輯回歸算法也是統(tǒng)計(jì)學(xué)的一種算法,它實(shí)際上是一種廣義線性回歸,通過回歸對數(shù)logistic函數(shù)將線性回歸應(yīng)用于分類任務(wù)。對于一個二分類問題,令0,1表示類標(biāo)號。樣本X屬于類別1的概率為P(Y=1|x)=p,那么屬于類別0的概率為P(Y=0|x)=1-p。
算法具體步驟如下。①針對測試數(shù)據(jù)集,將各個屬性進(jìn)行歸一化操作。②計(jì)算測試數(shù)據(jù)集的P(Y1|x)和P(Y0|x),建立邏輯回歸方程式。③參數(shù)估計(jì)。3.2分類模型的算法原理3.2.5支持向量機(jī)算法
支持向量機(jī)的原理是在特征空間中找到間隔最大的分類超平面,從而對數(shù)據(jù)進(jìn)行高效的二分類。下面在二維空間中說明這一原理。如圖,需要一個劃分的超平面,把十字的數(shù)據(jù)點(diǎn)和圓圈的數(shù)據(jù)點(diǎn)劃分開。對于線性可分的數(shù)據(jù),總能找到這樣的超平面(在二維空間中是一條直線),而且這樣的超平面有無數(shù)個。設(shè)超平面A是所有超平面中的一個。A向十字?jǐn)?shù)據(jù)集方向平移d/2,會與最近的十字?jǐn)?shù)據(jù)點(diǎn)相交(A0)。A向圓圈數(shù)據(jù)集方向平移d/2,會與最近的圓圈數(shù)據(jù)點(diǎn)相交(A1)。如果存在這樣的A,使得平移后的A0和A1之間的距離d最大,那么這個A就是最佳的分類超平面。不難發(fā)現(xiàn),雖然數(shù)據(jù)點(diǎn)眾多,但是起到?jīng)Q定作用的是位于邊緣的數(shù)據(jù)點(diǎn),這樣的數(shù)據(jù)點(diǎn)起到了支撐作用,因而稱為支持向量,這種算法就叫做支持向量機(jī)。3.2分類模型的算法原理
以上是線性可分的情況,對于線性不可分情況,有2種解決方案。第一種是允許一定的分類錯誤發(fā)生,并且分類錯誤盡可能最小。第二種是通過核函數(shù),將數(shù)據(jù)點(diǎn)映射到高維空間,使原本線性不可分的數(shù)據(jù)變成線性可分。如圖3.3基于Python的分類建模實(shí)例 Python的機(jī)器學(xué)習(xí)庫sklearn自帶了Iris鳶尾花數(shù)據(jù)集,包含了150條鳶尾花數(shù)據(jù)樣本,分為3類。每類50個數(shù)據(jù),每個數(shù)據(jù)包含4個屬性。可通過花萼長度(sepal_length)、花萼寬度(sepal_width)、花瓣長度(petal_length)、花瓣寬度(petal_width)4個屬性建立分類模型,預(yù)測鳶尾花卉屬于山鳶尾(Setosa)、雜色鳶尾(Versicolour)、弗吉尼亞鳶尾(Virginica)三個種類中的哪一類?!纠?-7】利用sklearn的決策樹方法建立鳶尾花分類模型,采用吉尼雜度指標(biāo),75%的數(shù)據(jù)作為訓(xùn)練集建模,25%的數(shù)據(jù)作為測試集驗(yàn)證,輸出模型分類準(zhǔn)確率。判斷一個新的鳶尾花樣本:花萼長度5,花瓣寬度2.9,花瓣長度1,花瓣寬度0.2,是什么種類的鳶尾花。代碼如下:3.3基于Python的分類建模實(shí)例3.3基于Python的分類建模實(shí)例3.3基于Python的分類建模實(shí)例【例3-8】利用sklearn的最近鄰方法建立鳶尾花分類模型,將新樣本點(diǎn)的最近鄰的7個已知樣本作為“評委”投票。其它要求和例3-7一致。將例3-7中間的分類模型構(gòu)建代碼修改為:3.3基于Python的分類建模實(shí)例【例3-9】利用sklearn的樸素貝葉斯算法建立鳶尾花分類模型,假設(shè)樣本分布服從高斯分布。其它要求和例3-7一致。將例3-7中間的分類模型構(gòu)建代碼修改為:3.3基于Python的分類建模實(shí)例【例3-10】利用sklearn的邏輯回歸算法建立鳶尾花分類模型。其它要求和例3-7一致。將例3-7中間的分類模型構(gòu)建代碼修改為:3.3基于Python的分類建模實(shí)例【例3-11】利用sklearn的支持向量機(jī)算法建立鳶尾花分類模型。其它要求和例3-7一致。
從例3-7至例3-11可見,Python通過sklearn庫建立分類模型,代碼復(fù)用性很強(qiáng),只要建模的代碼加以替換,就可以應(yīng)用新的分類模型。如果分類效果不佳,可以切換分類模型,同一種模型也可以改變參數(shù)進(jìn)行調(diào)優(yōu)。3.3基于Python的分類建模實(shí)例3.4基于Spark的分類建模實(shí)例
將鳶尾花數(shù)據(jù)集Iris.csv文件導(dǎo)入到spark工程所在文件夾??梢圆榭吹进S尾花數(shù)據(jù)的情況,第一列是花萼長度,第二列是花萼寬度,第三列是花瓣長度,第四列是花瓣寬度,第五列是樣本的所屬種類。利用Spark建立分類模型,預(yù)測鳶尾花卉的所屬種類?!纠?-12】利用ML決策樹算法建立鳶尾花分類模型,采用雜度指標(biāo)建立決策樹。75%的數(shù)據(jù)作為訓(xùn)練集建模,25%的數(shù)據(jù)作為測試集驗(yàn)證,輸出模型分類準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)。判斷一個新的鳶尾花樣本(花萼長度5,花瓣寬度2.9,花瓣長度1,花瓣寬度0.2),是哪類鳶尾花。代碼如下:3.4基于Spark的分類建模實(shí)例3.4基于Spark的分類建模實(shí)例3.4基于Spark的分類建模實(shí)例3.4基于Spark的分類建模實(shí)例3.4基于Spark的分類建模實(shí)例【例3-13】利用MLlib的樸素貝葉斯算法建立鳶尾花分類模型,假設(shè)樣本分布服從多項(xiàng)式分布。其它要求和例3-12一致?!纠?-14】利用MLlib的邏輯回歸算法建立鳶尾花分類模型。其它要求和例3-12一致。3.4基于Spark的分類建模實(shí)例【例3-15】隨機(jī)森林是一種強(qiáng)大的集成學(xué)習(xí)算法,它以多個決策樹為基礎(chǔ),并行地進(jìn)行訓(xùn)練。利用MLlib的隨機(jī)森林算法建立鳶尾花分類模型。其它要求和例3-12一致。3.4基于Spark的分類建模實(shí)例謝謝觀看第4章聚類模型課程學(xué)習(xí)內(nèi)容4.1聚類模型的概念4.2聚類模型的算法原理4.3基于Python的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例4.1聚類模型的概念4.1.1聚類模型概述
聚類是一種無監(jiān)督的學(xué)習(xí)算法,就是按照某個特定標(biāo)準(zhǔn)(如距離準(zhǔn)則)把一個數(shù)據(jù)集分割成不同的簇(簇也稱為類),使得同一個簇內(nèi)的數(shù)據(jù)對象的相似性盡可能大,同時(shí)不在同一個簇中的數(shù)據(jù)對象的差異性也盡可能地大。組間距離最大化組內(nèi)距離最小化4.1聚類模型的概念
聚類的目的是將整個數(shù)據(jù)集分成不同的簇,具體實(shí)現(xiàn)過程如下:1.數(shù)據(jù)預(yù)處理:將數(shù)據(jù)集進(jìn)行清洗、去重、缺失值處理等操作,使得數(shù)據(jù)集符合聚類算法的要求。2.特征選擇:選擇合適的特征作為聚類的依據(jù)。3.模型訓(xùn)練與對數(shù)據(jù)的預(yù)測:選擇適合的聚類算法對導(dǎo)入的數(shù)據(jù)進(jìn)行訓(xùn)練,利用訓(xùn)練好的模型預(yù)測數(shù)據(jù)。4.分析與決策:通過評估指標(biāo)對聚類結(jié)果進(jìn)行評估選擇最優(yōu)的聚類數(shù)和聚類結(jié)果。根據(jù)聚類結(jié)果分析不同類別數(shù)據(jù)。4.1聚類模型的概念
4.1聚類模型的概念
4.1聚類模型的概念
4.1聚類模型的概念4.1聚類模型的概念4.1.3聚類算法的評估
有內(nèi)部質(zhì)量評價(jià)和外部質(zhì)量評價(jià)兩個標(biāo)準(zhǔn):1.內(nèi)部質(zhì)量評價(jià)標(biāo)準(zhǔn)(1)CH指標(biāo) CH指標(biāo)通過計(jì)算簇內(nèi)各點(diǎn)與簇中心的距離平方和來度量簇內(nèi)相似度,通過計(jì)算簇間中心點(diǎn)與數(shù)據(jù)集中心點(diǎn)距離平方和來度量數(shù)據(jù)集的分離度,CH指標(biāo)由分離度與緊密度的比值得到,值越大表示簇內(nèi)各數(shù)據(jù)點(diǎn)聯(lián)系越緊密,簇間越分散,聚類效果越好。4.1聚類模型的概念(2)輪廓系數(shù)
輪廓系數(shù)同時(shí)兼顧了聚類的內(nèi)聚度和分離度,取值范圍[-1,1],數(shù)值越大聚類效果越好。(3)DB指標(biāo) DB指標(biāo)用來衡量任意兩個簇的簇內(nèi)距離之和與簇間距離之比,值越小表示簇內(nèi)相似度越高,簇間相似度越低4.1聚類模型的概念4.1聚類模型的概念4.1聚類模型的概念2.外部質(zhì)量評價(jià)標(biāo)準(zhǔn)(1)蘭德指標(biāo)
蘭德指標(biāo)用于衡量兩個簇的相似度,取值范圍[0,1],值越大意味著聚類結(jié)果與真實(shí)情況越吻合。對于隨機(jī)結(jié)果蘭德指標(biāo)并不能保證分?jǐn)?shù)接近零。為了實(shí)現(xiàn)“在聚類結(jié)果隨機(jī)產(chǎn)生的情況下,指標(biāo)應(yīng)該接近零”,提出了調(diào)整蘭德系數(shù)。4.1聚類模型的概念(2)調(diào)整蘭德指標(biāo)
調(diào)整蘭德指標(biāo)是蘭德指標(biāo)的一個改進(jìn)版本,目的是為了去掉隨機(jī)標(biāo)簽對于蘭德指標(biāo)評估結(jié)果的影響,用于衡量兩個數(shù)據(jù)分布的吻合程度。調(diào)整蘭德指標(biāo)的取值范圍為[-1,1],值越大意味著聚類結(jié)果與真實(shí)情況越吻合。(3)調(diào)整互信息
調(diào)整互信息基于預(yù)測簇向量與真實(shí)簇向量的互信息值衡量其相似度,取值范圍[-1,1],值越大表示相似度越高值接近0表示簇向量隨機(jī)分配。4.1聚類模型的概念(4)同質(zhì)性、完整性和V測度
同質(zhì)性用來度量每個簇只包含單個類別樣本的程度,即每個簇中正確分類的樣本數(shù)占樣本總數(shù)的比例,即一個簇只包含一個類別的樣本則滿足同質(zhì)性。
完整性用來度量同類型樣本被歸類到相同的簇的程度即每個簇中正確分類的樣本數(shù)占所有相關(guān)類型的總樣本數(shù)的比例之和,即同類別樣本被歸類到相同簇中則滿足完整性。 V測度結(jié)合同質(zhì)性和完整性兩個因素評價(jià)簇向量間的相似度。4.2聚類模型的算法原理
聚類算法一般可以用基于劃分、基于層次、基于密度、基于網(wǎng)格、基于模型、基于圖等方式來進(jìn)行分類聚類模型基于劃分的聚類算法k-means算法、k-medoids算法、CLARANS算法基于層次的聚類算法AGNES算法、DIANA算法、BIRCH算法、CURE算法、CHAMELEON算法等基于密度的聚類算法DBSCAN算法、OPTICS算法、DENCLUE算法等基于模型的聚類算法GMM算法、COBWEB算法、SOM算法基于網(wǎng)格的聚類算法STING算法、CLIQUE算法、WAVE-CLUSTER算法4.2聚類模型的算法原理4.2.1K均值算法
K均值算法是一個迭代求解的聚類算法,其基本思想是將數(shù)據(jù)集劃分為k個簇(k由用戶指定),使得每個簇內(nèi)部的樣本數(shù)據(jù)相似度高,不同簇之間樣本數(shù)據(jù)的差異性大。流程如下:(1)初始化:隨機(jī)的選擇k個樣本點(diǎn)作為k個初始的聚類中心(2)對樣本進(jìn)行聚類:計(jì)算數(shù)據(jù)集D中的每個樣本到每個聚類中心的距離,將數(shù)據(jù)分配到與其距離最近的聚類中心所在的簇。(3)計(jì)算新的聚類中心:計(jì)算當(dāng)前每個簇的均值作為新的聚類中心。(4)重復(fù)(2)~(3),直到滿足終止條件。4.2聚類模型的算法原理4.2.2凝聚聚類算法
該算法的基本思想是,首先將每個數(shù)據(jù)點(diǎn)看作一個獨(dú)立的類別,然后通過計(jì)算不同類別之間的距離,將距離最近的兩個類別合并成一個新的類別,直到所有的數(shù)據(jù)點(diǎn)被合并為一個類別為止。凝聚聚類算法的流程如下:(1)計(jì)算所有樣本之間的距離,得到距離矩陣。(2)將每個樣本都當(dāng)做一個簇。(3)計(jì)算每兩個簇之間的距離,將距離最近的兩個簇進(jìn)行合并。(4)更新樣本的距離矩陣。(5)重復(fù)執(zhí)行(2)~(4),直到所有樣本都合并為一個簇為止4.2聚類模型的算法原理4.2.3DBSCAN算法 DBSCAN算法是一種基于密度的聚類算法,其基本思想是將簇定義為密度相連的點(diǎn)的最大集合。數(shù)據(jù)稠密的地方相似度高,數(shù)據(jù)稀疏區(qū)域是分界線,該算法將具有足夠密度的區(qū)域劃分為簇,并在具有噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的簇。在DBSCAN算法中將數(shù)據(jù)點(diǎn)分為核心點(diǎn)(稠密區(qū)域內(nèi)部的點(diǎn))、邊界點(diǎn)(稠密區(qū)域邊緣上的點(diǎn))、噪音點(diǎn)(稀疏區(qū)域中的點(diǎn))。DBSCAN算法的流程如下:(1)任選一個未被訪問的點(diǎn),找出與其距離小于或等于eps的所有附近點(diǎn)。4.2聚類模型的算法原理(2)如果附近點(diǎn)的數(shù)量大于或等于MinPts,則當(dāng)前點(diǎn)與其附近點(diǎn)形成一個簇,將該點(diǎn)標(biāo)記為已訪問。然后遞以相同的方法處理該簇內(nèi)所有未被訪問的點(diǎn),從而對簇進(jìn)行擴(kuò)展。(3)如果附近點(diǎn)的數(shù)量小于MinPts,則該點(diǎn)暫時(shí)被標(biāo)記為噪聲點(diǎn)。結(jié)束本次循環(huán),跳轉(zhuǎn)到步驟(1)繼續(xù)執(zhí)行。(4)重復(fù)執(zhí)行步驟(1)~(3),直到簇內(nèi)所有的點(diǎn)都被標(biāo)記為已訪問的點(diǎn)。如果簇充分地被擴(kuò)展,即簇內(nèi)的所有點(diǎn)被標(biāo)記為已訪問,然后用同樣的算法去處理未被訪問的點(diǎn)。(5)一旦完成了當(dāng)前簇的聚類,就檢索和處理新的未訪問的點(diǎn),重復(fù)上述(1)~(5)過程,直到所有點(diǎn)被標(biāo)記為屬于一個簇或是噪聲。4.2聚類模型的算法原理4.2.4高斯混合模型算法GMM
GMM算法的基本思想是用多個高斯分布函數(shù)去近似任意形狀的概率分布,所以GMM就是由多個單高斯密度分布(Gaussian)組成的,每個Gaussian叫一個“Component”,這些“Component”線性加和即為GMM的概率密度函數(shù)。將待聚類的數(shù)據(jù)點(diǎn)看成是分布的采樣點(diǎn),通過采樣點(diǎn)利用類似極大似然估計(jì)的方法估計(jì)高斯分布的參數(shù),求出參數(shù)(用EM算法求解)即得出了數(shù)據(jù)點(diǎn)對分類的隸屬函數(shù)。4.2聚類模型的算法原理GMM算法流程如下:(1)設(shè)置k的個數(shù),即初始化高斯混合模型的成分個數(shù)。(隨機(jī)初始化每個簇的高斯分布參數(shù)均值和方差,也可觀察數(shù)據(jù)給出一個相對精確的均值和方差)(2)計(jì)算每個數(shù)據(jù)點(diǎn)屬于每個高斯模型的概率,即計(jì)算后驗(yàn)概率。(點(diǎn)越靠近高斯分布的中心,則概率越大,即屬于該簇可能性越高)。(3)計(jì)算參數(shù)使得數(shù)據(jù)點(diǎn)的概率最大化,使用數(shù)據(jù)點(diǎn)概率的加權(quán)來計(jì)算這些新的參數(shù),權(quán)重就是數(shù)據(jù)點(diǎn)屬于該簇的概率(4)重復(fù)迭代(2)和(3)直到收斂。4.2聚類模型的算法原理4.2.5二分K均值算法
二分K均值算法的基本思想是將所有點(diǎn)作為一個簇,將該簇一分為二之后,選擇能最大限度降低聚類代價(jià)函數(shù)(SSE誤差平方和)的簇劃分為兩個簇,不斷重復(fù)基于SSE的劃分過程,直到簇的數(shù)目等于用戶給定的數(shù)目k為止。SSE是誤差平方和,統(tǒng)計(jì)參數(shù)計(jì)算的是擬合數(shù)據(jù)和原始數(shù)據(jù)對應(yīng)點(diǎn)的誤差的平方和。SSE越接近于0,說明模型選擇和擬合更好,數(shù)據(jù)預(yù)測也越成功。
二分K均值算法流程如下:(1)將所有的點(diǎn)看成一個簇。(2)當(dāng)簇?cái)?shù)目小于k時(shí),對每一個簇計(jì)算總誤差,在當(dāng)前簇內(nèi)進(jìn)行k均值聚類,k的值為2,計(jì)算將該類一分為二后總誤差;選擇使得誤差最小的那個簇進(jìn)行劃分。4.2聚類模型的算法原理4.2.6隱式狄利克雷分配算法LDA
LDA是生成模型,LDA算法是基于貝葉斯模型的,涉及到貝葉斯模型離不開“先驗(yàn)分布”、“數(shù)據(jù)(似然)”和“后驗(yàn)分布”。在貝葉斯學(xué)派中有“先驗(yàn)分布”+“數(shù)據(jù)(似然)”=“后驗(yàn)分布”。算法流程如下:(1)隨機(jī)生成K個話題的單詞分布。(2)隨機(jī)生成M個文本的話題分布。(3)隨機(jī)生成M個文本的Nm個單詞,首先按照多項(xiàng)分布隨機(jī)生成一個話題,然后按照多項(xiàng)分布隨機(jī)生成一個單詞。4.3基于Python的聚類建模實(shí)例【例4-3】使用k-means算法對不同種類的鳶尾花進(jìn)行聚類分析,代碼如下:4.3基于Python的聚類建模實(shí)例【例4-4】使用凝聚聚類算法對不同種類的鳶尾花進(jìn)行聚類分析,代碼如下。4.3基于Python的聚類建模實(shí)例4.3基于Python的聚類建模實(shí)例【例4-5】使用DBSCAN算法對不同種類的鳶尾花進(jìn)行聚類分析,代碼如下。4.3基于Python的聚類建模實(shí)例4.3基于Python的聚類建模實(shí)例【例4-6】使用GMM聚類算法對不同種類的鳶尾花進(jìn)行聚類分析,代碼如下。4.3基于Python的聚類建模實(shí)例4.3基于Python的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例【例4-7】利用K-means算法建立鳶尾花聚類模型,代碼如下:4.4基于Spark的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例【例4-8】利用GMM算法建立鳶尾花聚類模型,代碼如下4.4基于Spark的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例【例4-9】利用二分K均值算法建立鳶尾花聚類模型,代碼如下:4.4基于Spark的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例【例4-10】利用LDA算法建立鳶尾花聚類模型,代碼如下4.4基于Spark的聚類建模實(shí)例4.4基于Spark的聚類建模實(shí)例謝謝觀看第5章回歸模型課程學(xué)習(xí)內(nèi)容5.1回歸模型的概念5.2回歸模型的算法原理5.3基于Python的回歸建模實(shí)例5.4基于Spark的回歸建模實(shí)例5.1回歸模型的概念
回歸就是研究一個隨機(jī)變量y對另一個變量x或一組變量[x1,x2,…,xn]的相依關(guān)系的統(tǒng)計(jì)分析方法?;貧w模型用數(shù)學(xué)語言描述為y=f(x1,x2,…,xn)+ξ,其中x1,x2,…,xn是確定性的或可控的因素,f是映射函數(shù),ξ是不確定或不可控的因素。通過擬合大量的數(shù)據(jù),求解映射函數(shù)f的具體表達(dá)式,就是回歸建模的過程。一旦建立回歸模型,就能通過該模型進(jìn)行數(shù)據(jù)預(yù)測。5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理5.2回歸模型的算法原理5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.2回歸模型的算法原理
5.3基于Python的回歸建模實(shí)例
5.3基于Python的回歸建模實(shí)例【例5-7】請針對例5-6的分析結(jié)果,對線性回歸模型進(jìn)行改進(jìn),并再次對銷售量進(jìn)行預(yù)測。解:在例5-6的summary()方法輸出中,注意到const和x3的P值偏大,而Cond.No.和Warnings[2]說明自變量之間本身就有線性相關(guān)關(guān)系,所以將其從回歸方程中刪除改進(jìn)后的代碼如下:5.3基于Python的回歸建模實(shí)例5.3基于Python的回歸建模實(shí)例
用sklearn中各種回歸函數(shù)進(jìn)行建模,用測試集的rmse和模型評分score來進(jìn)行性能比較,代碼如下:5.3基于Python的回歸建模實(shí)例
5.3基于Python的回歸建模實(shí)例
5.3基于Python的回歸建模實(shí)例
5.3基于Python的回歸建模實(shí)例
5.3基于Python的回歸建模實(shí)例
5.3基于Python的回歸建模實(shí)例5.4基于Spark的回歸建模實(shí)例5.4基于Spark的回歸建模實(shí)例5.4基于Spark的回歸建模實(shí)例5.4基于Spark的回歸建模實(shí)例謝謝觀看第6章關(guān)聯(lián)模型課程學(xué)習(xí)內(nèi)容6.1關(guān)聯(lián)模型的概念6.2關(guān)聯(lián)模型的算法原理6.3基于Python的關(guān)聯(lián)建模實(shí)例6.4基于Spark的關(guān)聯(lián)建模實(shí)例6.1關(guān)聯(lián)模型的概念
數(shù)據(jù)關(guān)聯(lián)是指若兩個或多個事物之間存在的某種規(guī)律性。比如人們購買了A商品,就很有可能購買B商品。利用這種購物關(guān)聯(lián)現(xiàn)象,超市可以直接把B商品放在A商品的旁邊,以便增加購買量。6.2關(guān)聯(lián)模型的算法原理
典型的關(guān)聯(lián)模型算法有關(guān)聯(lián)規(guī)則算法和協(xié)同過濾算法,前者適合于傳統(tǒng)的實(shí)體超市購物場景,超市要調(diào)整貨架物品擺放位置,使?fàn)I業(yè)額最大。后者則更加適合于新零售和互聯(lián)網(wǎng)商品推薦場景,針對特定的用戶推薦特定的商品。6.2.1關(guān)聯(lián)規(guī)則算法
基于關(guān)聯(lián)規(guī)則的算法,是由用戶預(yù)先定義最小支持度min_sup和最小置信度min_conf,篩選出支持度大于min_sup和置信度大于min_conf的規(guī)則作為強(qiáng)關(guān)聯(lián)規(guī)則。并檢驗(yàn)提升度是否大于1,若大于1則為有效的強(qiáng)關(guān)聯(lián)規(guī)則。6.2關(guān)聯(lián)模型的算法原理【例6-1】在表6-1中,設(shè)置min_sup=50%,min_conf=70%,找出所有的強(qiáng)關(guān)聯(lián)規(guī)則,并利用強(qiáng)關(guān)聯(lián)規(guī)則布置貨架安排。6.2關(guān)聯(lián)模型的算法原理6.2關(guān)聯(lián)模型的算法原理
6.2關(guān)聯(lián)模型的算法原理6.2關(guān)聯(lián)模型的算法原理
6.2關(guān)聯(lián)模型的算法原理6.2關(guān)聯(lián)模型的算法原理
6.2關(guān)聯(lián)模型的算法原理
6.2關(guān)聯(lián)模型的算法原理6.2關(guān)聯(lián)模型的算法原理6.2關(guān)聯(lián)模型的算法原理
6.2關(guān)聯(lián)模型的算法原理
6.3基于Python的關(guān)聯(lián)建模實(shí)例
【例6-5】電子商務(wù)消費(fèi)數(shù)據(jù)集如表6-2所示,利用基于模型的協(xié)同過濾算法,編寫Python代碼,向所有的用戶進(jìn)行商品推薦。解:(1)寫出購買記錄矩陣RR=[[10110],[10011],[10100],[01011],[11100]](2)假設(shè)用戶和商品有3個內(nèi)在特征,即描述用戶為3行5列的P矩陣,描述物品為3行5列的Q矩陣,用ALS算法求出P和Q的估計(jì)值,使得R近似為PTQ,且誤差較小。編寫Python代碼如下:6.3基于Python的關(guān)聯(lián)建模實(shí)例6.3基于Python的關(guān)聯(lián)建模實(shí)例6.3基于Python的關(guān)聯(lián)建模實(shí)例6.3基于Python的關(guān)聯(lián)建模實(shí)例6.4基于Spark的關(guān)聯(lián)建模實(shí)例【例6-6】電影推薦系統(tǒng)。從公開數(shù)據(jù)集/datasets/movielens/下載用戶評分文件rating.csv。用Spark的MLlib自帶的ALS算法實(shí)現(xiàn)向用戶推薦電影和向電影推薦用戶。解:(1)下載數(shù)據(jù)集,解壓出rating.csv文件,并復(fù)制到spark項(xiàng)目目錄。(2)編寫spark代碼,讀取文件。6.4基于Spark的關(guān)聯(lián)建模實(shí)例(3)將數(shù)據(jù)集劃分為訓(xùn)練集和測試集。訓(xùn)練集用來訓(xùn)練模型,測試集用來判斷模型的準(zhǔn)確程度:(4)導(dǎo)入ALS算法模型,并設(shè)置參數(shù):6.4基于Spark的關(guān)聯(lián)建模實(shí)例(5)訓(xùn)練模型,測試模型:(6)對于預(yù)測誤差進(jìn)行評估:6.4基于Spark的關(guān)聯(lián)建模實(shí)例(7)向用戶推薦電影:(8)向電影推薦用戶:6.4基于Spark的關(guān)聯(lián)建模實(shí)例【例6-7】關(guān)聯(lián)規(guī)則分析。根據(jù)某超市的顧客消費(fèi)記錄shopping.csv,利用Spark的FPGrowth算法生成強(qiáng)關(guān)聯(lián)規(guī)則,對貨架布置提出建議。
解:(1)導(dǎo)入數(shù)據(jù)集,進(jìn)行初步分析。代碼如下:6.4基于Spark的關(guān)聯(lián)建模實(shí)例(2)調(diào)整數(shù)據(jù)格式,使其能夠適配FPGrowth算法模型。增加代碼如下:6.4基于Spark的關(guān)聯(lián)建模實(shí)例(3)設(shè)置參數(shù),訓(xùn)練模型。增加代碼如下:(4)輸出頻繁項(xiàng)集。增加代碼如下:6.4基于Spark的關(guān)聯(lián)建模實(shí)例
程序輸出了頻度最高的10項(xiàng),以及包含項(xiàng)目大于二項(xiàng)的頻度最高的10項(xiàng),但是根據(jù)常識來看,購買塑料袋以及各種刷卡消費(fèi)記錄不能算作正常的商品購買。因此添加額外代碼,剔除這一部分記錄:6.4基于Spark的關(guān)聯(lián)建模實(shí)例(5)生成強(qiáng)關(guān)聯(lián)規(guī)則。增加以下代碼:
在生成的關(guān)聯(lián)規(guī)則表中,antecedent為前項(xiàng),consequent為后項(xiàng),confidence為置信度,lift為提升度。表格按照置信度的大小排序,置信度越高越好。提升度lift的值,是置信度confidence除以后項(xiàng)consequent的支持度所得結(jié)果,lift越大越有價(jià)值。一共獲得了6個強(qiáng)關(guān)聯(lián)規(guī)則,根據(jù)這6個規(guī)則調(diào)整貨架部署。將香滿園特等長粒香米、美汁源果粒橙、哈爾濱聽裝小麥王放置在一起。在臨洺關(guān)驢肉香腸禮盒和五百居香腸禮盒附近,放置地方特色禮盒。6.4基于Spark的關(guān)聯(lián)建模實(shí)例謝謝觀看第7章數(shù)據(jù)降維課程學(xué)習(xí)內(nèi)容7.1數(shù)據(jù)降維的概念7.2數(shù)據(jù)降維的算法原理7.3基于Python的數(shù)據(jù)降維實(shí)例7.4基于Spark的數(shù)據(jù)降維實(shí)例7.1數(shù)據(jù)降維的概念
機(jī)器學(xué)習(xí)所面對的數(shù)據(jù)集大多是以結(jié)構(gòu)化二維表格形式呈現(xiàn),每一行稱之為一條記錄,每一列稱之為一種屬性。如果從矩陣的角度來看,所處理的數(shù)據(jù)集就是二維矩陣。如果這個矩陣中充斥了一些多余的、有缺陷的、彼此線性相關(guān)的行或列,那么既不利于存儲,也不利于建模和運(yùn)算。此時(shí)需要進(jìn)行降維處理,把冗余的行或列去掉,這就是數(shù)據(jù)降維的概念。
數(shù)據(jù)降維可以分為行降維和列降維。行降維是把矩陣中有缺陷的行去除掉,即滿足下列任一條件的樣本將被刪除:(1)目標(biāo)字段值缺失的樣本。(2)所有預(yù)測屬性字段缺失的樣本。(3)由用戶自定義比例m%,大于等于m%的字段缺失的樣本7.1數(shù)據(jù)降維的概念
7.1數(shù)據(jù)降維的概念
列降維是把每一列看成是多維空間中的一個坐標(biāo)軸,在理想情況下,空間維度應(yīng)該和坐標(biāo)軸個數(shù)相同。例如3維空間要以3個坐標(biāo)軸XYZ來描述,并且XYZ坐標(biāo)軸應(yīng)該彼此正交。但是實(shí)際中這些坐標(biāo)軸存在相關(guān)的情況,具體表現(xiàn)在兩個方面,一是坐標(biāo)軸個數(shù)多,例如3維空間中有4個坐標(biāo)軸。二是坐標(biāo)軸彼此沒有正交,即它們的夾角不是90度。此時(shí)可以通過降維處理,產(chǎn)生新的坐標(biāo)系,使坐標(biāo)軸數(shù)量與空間維度吻合,并且彼此正交。
常用的列降維算法有主成分分析、奇異值分解、線性判別分析等,后面的算法分析主要是指列降維算法。7.2數(shù)據(jù)降維的算法原理7.2.1主成分分析
主成分分析(PCA)是一種經(jīng)典的、基于線性變換和數(shù)理統(tǒng)計(jì)的降維方法。對于一個n維的特征變量x=(x1,x2,…xn),通過旋轉(zhuǎn)坐標(biāo)系,把x表示在新的坐標(biāo)系中為y=(y1,y2,…,yn),如果新的坐標(biāo)系中某些軸包含的信息太少,則可以將其省略,達(dá)到了降維的目的。二維變量通過坐標(biāo)旋轉(zhuǎn)變成一維變量7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理7.2數(shù)據(jù)降維的算法原理7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理7.2.3線性判別分析 PCA和SVD都是無監(jiān)督算法,而線性判別分析(LDA)則是典型的有監(jiān)督算法。LDA的效果要優(yōu)于PCA,但是LDA需要額外的分類目標(biāo)字段,主要是面向分類問題,所以適用范圍較小。
LDA算法的思想是:既然需要解決分類問題,那么降維以后的分類效果一定要好。樣本投影到最佳鑒別矢量空間,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內(nèi)距離,即模式在該空間有最佳的可分離性。7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.2數(shù)據(jù)降維的算法原理
7.3基于Python的數(shù)據(jù)降維實(shí)例 Python的sklearn中的decomposition模塊中含有各種降維算法,可以方便的調(diào)用。
【例7-5】導(dǎo)入Python中自帶的鳶尾花數(shù)據(jù)集,利用SVD算法進(jìn)行降維處理。解:原始數(shù)據(jù)有4個維度:花萼長度(sepal_length)、花萼寬度(sepal_width)、花瓣長度(petal_length)、花瓣寬度(petal_width)。其實(shí),這4個維度有很大的相關(guān)性,可以用更少的維度來描述。降維以后,用SVC算法進(jìn)行分類測試,代碼如下:7.3基于Python的數(shù)據(jù)降維實(shí)例7.3基于Python的數(shù)據(jù)降維實(shí)例7.3基于Python的數(shù)據(jù)降維實(shí)例【例7-6】wine.data文件中記錄了葡萄酒的性能參數(shù)和分類。其中第一列說明分類情況,共分成3類。后續(xù)各個列說明了性能參數(shù),共有13項(xiàng)參數(shù)。利用LDA算法進(jìn)行降維,降成2維數(shù)據(jù),并利用logistics算法進(jìn)行分類。解:首先讀入數(shù)據(jù)集,劃分為訓(xùn)練集和測試集。然后用訓(xùn)練集建立LDA模型,用該模型對測試集降維,再利用logistics算法進(jìn)行分類。代碼如下:7.3基于Python的數(shù)據(jù)降維實(shí)例7.3基于Python的數(shù)據(jù)降維實(shí)例7.3基于Python的數(shù)據(jù)降維實(shí)例7.3基于Python的數(shù)據(jù)降維實(shí)例7.4基于Spark的數(shù)據(jù)降維實(shí)例【例7-7】利用org.apache.spark.ml.feature中包含的PCA算法,對鳶尾花數(shù)據(jù)集進(jìn)行降維處理,使原始的4維數(shù)據(jù)降低為2維。解:(1)導(dǎo)入數(shù)據(jù)集。(2)將數(shù)據(jù)集的class類型由string,變換為double。增加以下代碼:(3)整合鳶尾花的4個特征量,變換為1個特征向量。增加以下代碼:7.4基于Spark的數(shù)據(jù)降維實(shí)例(4)將特征向量features進(jìn)行規(guī)范化,變?yōu)閟caledFeatures。增加以下代碼:(5)建立PCA模型。設(shè)置輸入列為scaledFeatures,輸出列為pcaFeatures,降低至2維。增加如下代碼:7.4基于Spark的數(shù)據(jù)降維實(shí)例謝謝觀看第8章神經(jīng)網(wǎng)絡(luò)課程學(xué)習(xí)內(nèi)容8.1神經(jīng)網(wǎng)絡(luò)的概念8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.3基于Python的神經(jīng)網(wǎng)絡(luò)實(shí)例8.4基于Spark的神經(jīng)網(wǎng)絡(luò)實(shí)例8.1神經(jīng)網(wǎng)絡(luò)的概念
神經(jīng)元抽象為近似為一個多輸入、單輸出的系統(tǒng),它接受多個信號后進(jìn)行處理,再向外輸出。其抽象化的模型如圖8.1神經(jīng)網(wǎng)絡(luò)的概念
8.1神經(jīng)網(wǎng)絡(luò)的概念
現(xiàn)代神經(jīng)網(wǎng)絡(luò)是由多個神經(jīng)元組成的分層網(wǎng)狀結(jié)構(gòu)的,由輸入層、隱含層和輸出層組成,如圖所示,每一個圓圈代表一個神經(jīng)元。通過復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu),神經(jīng)網(wǎng)絡(luò)可以很容易地處理非線性分類問題。與線性分類不同,非線性分類問題的分類邊界是非線性函數(shù)。面對非線性分類問題,如語言分析、圖像識別、視頻分析、目標(biāo)檢測、文本語義等領(lǐng)域問題,神經(jīng)網(wǎng)絡(luò)有天然的優(yōu)勢。8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2.1多層感知機(jī)
MLP由輸入層、隱含層和輸出層構(gòu)成。相鄰層節(jié)點(diǎn)之間由權(quán)值連接,但各層內(nèi)的節(jié)點(diǎn)之間相互獨(dú)立。理論上已經(jīng)證明,具有單隱含層的MLP就能以任意精度逼近任意的非線性函數(shù)。其結(jié)構(gòu)示意如圖所示。8.2神經(jīng)網(wǎng)絡(luò)的算法原理
BP算法的精髓是誤差梯度下降法。其核心思想是,首先將學(xué)習(xí)樣本的輸入信號(一般會進(jìn)行歸一化操作)送到輸入層,而后經(jīng)隱含層傳遞到輸出層,經(jīng)輸出層的計(jì)算后,輸出對應(yīng)的預(yù)測值。當(dāng)預(yù)測值和真實(shí)值(期望值)之間的誤差達(dá)不到預(yù)設(shè)的目標(biāo)精度要求時(shí),網(wǎng)絡(luò)會從輸出層逐層向輸入層反饋該誤差信息,并調(diào)整各層間的權(quán)值、神經(jīng)元的偏置,通過反復(fù)循環(huán)迭代逐步降低網(wǎng)絡(luò)的輸出值與樣本的期望輸出值之間的誤差,直至滿足設(shè)定的循環(huán)次數(shù)或精度要求,此時(shí)網(wǎng)絡(luò)的學(xué)習(xí)過程結(jié)束,并獲取到優(yōu)化后的權(quán)值、偏置,以此為基礎(chǔ)提取未知樣本的信息進(jìn)行輸入,即可獲得對未知樣本的映射(預(yù)測)。8.2神經(jīng)網(wǎng)絡(luò)的算法原理 MLP設(shè)計(jì)、訓(xùn)練和測試的步驟如下:(1)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的確定及相關(guān)參數(shù)的初始化。(2)將原始數(shù)據(jù)集歸一化,輸入到神經(jīng)網(wǎng)絡(luò)的輸入層。(3)計(jì)算網(wǎng)絡(luò)數(shù)據(jù)實(shí)際輸出與樣本數(shù)據(jù)期望輸出之間的誤差,并依據(jù)得到的誤差信息反向傳播到輸入層,同時(shí)調(diào)整各層之間的權(quán)值、偏置。(4)循環(huán)迭代(2)、(3)兩個過程,逐步降低計(jì)算誤差,直到誤差達(dá)到設(shè)定的目標(biāo)誤差或循環(huán)迭代次數(shù)達(dá)到設(shè)定的最大次數(shù)。(5)獲取到最優(yōu)的權(quán)值、偏置。(6)提取檢測樣本的輸入信息,借助第(5)步獲取到的最優(yōu)的權(quán)值、閾值,便可計(jì)算出測試樣本的預(yù)測輸出。8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2.2卷積神經(jīng)網(wǎng)絡(luò)CNN
卷積神經(jīng)網(wǎng)絡(luò)CNN是目前最熱門的神經(jīng)網(wǎng)絡(luò)模型之一,因其良好的特征提取能力和分類預(yù)測效果,被廣泛應(yīng)用于圖像識別、人臉識別和自然語言處理等領(lǐng)域。CNN的局部連接、權(quán)值共享和下采樣是區(qū)別于其他網(wǎng)絡(luò)模型的顯著特征。局部連接是指網(wǎng)絡(luò)的兩層神經(jīng)元之間是部分連接的,權(quán)值共享是指對樣本實(shí)施卷積運(yùn)算時(shí)卷積核是相同的,下采樣是對特征進(jìn)行局部總結(jié)。
CNN主要由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成,CNN的模型結(jié)構(gòu)如圖
所示。卷積層的主要功能是提取樣本特征,池化層的主要功能是對特征進(jìn)行降維,全連接層是對經(jīng)過卷積和池化操作后的特征圖進(jìn)行分類預(yù)測。8.2神經(jīng)網(wǎng)絡(luò)的算法原理CNN結(jié)構(gòu)圖8.2神經(jīng)網(wǎng)絡(luò)的算法原理1.卷積層
在卷積過程中,步長(stride)和填充(padding)是影響卷積結(jié)果的兩個重要參數(shù)。步長表示卷積核每次滑動的距離大小,填充描述的是在輸入數(shù)據(jù)的基礎(chǔ)上向外圍擴(kuò)充的大小,填充能夠保證卷積前后數(shù)據(jù)的維度大小保持一致,若不進(jìn)行填充,每次卷積操作后輸出特征圖的維度都會縮小,經(jīng)過多次卷積操作后輸出特征圖的維度將小到難以進(jìn)行卷積操作。填充的使用就是為了避免在深層卷積神經(jīng)網(wǎng)絡(luò)的卷積過程中出現(xiàn)數(shù)據(jù)維度太小而無法進(jìn)行卷積的問題。值得注意的是,一個卷積層并不是只有一個卷積核,往往有多個,卷積層輸出的特征圖數(shù)量與卷積核數(shù)量相同。
8.2神經(jīng)網(wǎng)絡(luò)的算法原理8.2神經(jīng)網(wǎng)絡(luò)的算法原理
為了增加網(wǎng)絡(luò)的非線性表達(dá)能力,一般在卷積層之后會接一個激活函數(shù)。常接在卷積層之后的激活函數(shù)包括:ReLU函數(shù)、Sigmoid函數(shù)和LeakyReLU函數(shù)等。
總結(jié)卷積層的2個主要思想:
一是局部連接,通過卷積核逐塊對輸入數(shù)據(jù)的分塊相乘再求和,考慮了事物的就近相關(guān)性,克服了BPNN缺乏空間推理能力的問題。
二是權(quán)值共享,通過使用相同的權(quán)重矩陣對輸入數(shù)據(jù)的每一個數(shù)據(jù)塊進(jìn)行卷積,減少了存儲權(quán)值的空間,降低了計(jì)算過程的復(fù)雜度,初步克服了BPNN參數(shù)爆炸的問題。8.2神經(jīng)網(wǎng)絡(luò)的算法原理2.池化層
池化層的主要作用是在卷積層的基礎(chǔ)上對局部特征信息進(jìn)行總結(jié),達(dá)到特征降維的目的,從而減少參數(shù)和計(jì)算量,進(jìn)一步解決參數(shù)爆炸問題。池化操作是在特征圖上通過一個大小為s×s的矩陣窗口進(jìn)行滑動來實(shí)現(xiàn)的,但是區(qū)別于卷積層的對應(yīng)位置相乘再相加。常見的兩種池化方法為最大池化(MaxPooling)和平均池化(AveragePooling),最大池化是將s×s矩陣窗口中的最大值作為輸出,平均池化是將s×s矩陣
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級的英語題目及答案
- 微積分考試題目及答案
- 22春“土木工程”專業(yè)《鋼結(jié)構(gòu)》在線作業(yè)含答案參考9
- 初中小說知識點(diǎn)課件
- 2025 四年級科學(xué)上冊昆蟲觸角類型識別課件
- 部編人教版小學(xué)二年級數(shù)學(xué)上冊練習(xí)題(含答案解析)
- 分體空調(diào)安裝技術(shù)要領(lǐng)
- 儲能系統(tǒng)技術(shù)方法
- 手術(shù)室??瓶荚囶}及答案
- 山西省植物學(xué)試題及答案
- 2026年工程材料企業(yè)物資采購人員考試大綱
- 2025年湖南公務(wù)員《行政職業(yè)能力測驗(yàn)》試題及答案
- 2025年地鐵車站物業(yè)管理合同協(xié)議
- 2025公路安全韌性提升技術(shù)指南
- 藥廠入職安全培訓(xùn)課件
- SF-36健康調(diào)查量表(含excel版)
- 電子電氣設(shè)備選型采購方案
- 洼田飲水試驗(yàn)科普課件
- GB/T 2423.21-2025環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)M:低氣壓
- 2024~2025學(xué)年四川省成都市武侯區(qū)九年級上學(xué)期期末語文試卷
- 吸氧并發(fā)癥及護(hù)理措施
評論
0/150
提交評論