Python數(shù)據(jù)挖掘教案 教案全套 王磊 第1-17講 緒論、Python數(shù)據(jù)挖掘模塊的使用(一)-異常檢測(cè)_第1頁(yè)
Python數(shù)據(jù)挖掘教案 教案全套 王磊 第1-17講 緒論、Python數(shù)據(jù)挖掘模塊的使用(一)-異常檢測(cè)_第2頁(yè)
Python數(shù)據(jù)挖掘教案 教案全套 王磊 第1-17講 緒論、Python數(shù)據(jù)挖掘模塊的使用(一)-異常檢測(cè)_第3頁(yè)
Python數(shù)據(jù)挖掘教案 教案全套 王磊 第1-17講 緒論、Python數(shù)據(jù)挖掘模塊的使用(一)-異常檢測(cè)_第4頁(yè)
Python數(shù)據(jù)挖掘教案 教案全套 王磊 第1-17講 緒論、Python數(shù)據(jù)挖掘模塊的使用(一)-異常檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE17《數(shù)據(jù)挖掘》課程教案學(xué)分:51學(xué)時(shí)/3學(xué)分授課教師:_________________單位:_________________年月一、課程基本信息課程名稱(chēng):《數(shù)據(jù)挖掘》課程代碼:學(xué)分:3學(xué)時(shí):3學(xué)時(shí)/課,共51學(xué)時(shí)。推薦教材:《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》,王磊等,人民郵電出版社,第1版,2023.8參考教材及資料數(shù)據(jù)挖掘?qū)д?完整版),Pang-NingTan等(著),范明等(譯),人民郵電出版社,第2版,2011-01-01JiaweiHan,MichelingKamber等,數(shù)據(jù)挖掘概念與技術(shù)(第三版),機(jī)械工業(yè)出版社,2012-8慕課:《數(shù)據(jù)挖掘與可視化》,學(xué)堂在線,/course/swufe0809bt1528/19024770?channel=i.area.recent_search課程目標(biāo):《數(shù)據(jù)挖掘》是計(jì)算機(jī)與人工智能學(xué)院針對(duì)計(jì)算機(jī)、人工智能、信息管理等專(zhuān)業(yè)學(xué)生開(kāi)設(shè)的一門(mén)專(zhuān)業(yè)核心課程,旨在讓學(xué)生熟悉數(shù)據(jù)挖掘分析和知識(shí)挖掘方法的思想與技術(shù),掌握重要的數(shù)據(jù)挖掘基本理論,具備利用數(shù)據(jù)挖掘來(lái)解決實(shí)際問(wèn)題的能力。本課程主要講授數(shù)據(jù)挖掘的基本概念,原理、方法和Python實(shí)現(xiàn)技術(shù),以及利用數(shù)據(jù)挖掘技術(shù)解決金融、經(jīng)濟(jì)、商務(wù)、信息管理等領(lǐng)域問(wèn)題的方法。先行課:本課程的先行課程包括:《Python程序設(shè)計(jì)》、《機(jī)器學(xué)習(xí)》。二、教案第一講:緒論教學(xué)目標(biāo)1.數(shù)據(jù)挖掘的基本概念2.數(shù)據(jù)挖掘的基本流程3.數(shù)據(jù)挖掘的常見(jiàn)任務(wù)4.數(shù)據(jù)挖掘環(huán)境的配置教學(xué)難點(diǎn)數(shù)據(jù)挖掘工具的安裝和應(yīng)用教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第1章授課內(nèi)容說(shuō)明一、數(shù)據(jù)挖掘概述1.引言(例子)隨著計(jì)算機(jī)處理能力、存儲(chǔ)能力的不斷提高,我們?cè)诨ヂ?lián)網(wǎng)、云計(jì)算、傳感器、大數(shù)據(jù)等,技術(shù)方面取得了飛躍式的突破和廣泛的應(yīng)用,使得我們從生產(chǎn)生活中獲得的數(shù)據(jù)呈現(xiàn)爆炸式增長(zhǎng)。舉一個(gè)例子,2020年,僅全球互聯(lián)網(wǎng)就共計(jì)產(chǎn)生了64ZB的數(shù)據(jù)。2.數(shù)據(jù)、信息和知識(shí)的概念(1)數(shù)據(jù)(Data):以文本、數(shù)字、圖形、聲音和視頻等形式對(duì)現(xiàn)實(shí)世界中的某種實(shí)體、事件或活動(dòng)的記錄,是未經(jīng)加工和修飾的原料。(2)信息(Information):是為了特定的目的,對(duì)數(shù)據(jù)進(jìn)行過(guò)濾、融合、標(biāo)準(zhǔn)化、歸類(lèi)等一系列處理后得到的有價(jià)值的數(shù)據(jù)流。(3)知識(shí)(Knowledge):是通過(guò)對(duì)信息進(jìn)行歸納、演繹、提煉和總結(jié),得到的更具價(jià)值的觀點(diǎn)、規(guī)律或者方法論。3.數(shù)據(jù)挖掘的定義從技術(shù)角度定義,數(shù)據(jù)挖掘是從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,提取隱含在其中的、人們事先不知道的,但又是潛在的、有用的、目標(biāo)明確的、針對(duì)性強(qiáng)的信息和知識(shí)的過(guò)程,提取的知識(shí)可以表示為概念、規(guī)則、規(guī)律、模式等形式。需要注意的是,數(shù)據(jù)挖掘面對(duì)的數(shù)據(jù)通常是真實(shí)的、大量的、含噪聲的、不完全的,而目標(biāo)是挖掘用戶(hù)感興趣的、有應(yīng)用價(jià)值的領(lǐng)域知識(shí)。從商業(yè)角度定義,數(shù)據(jù)挖掘是一種新的商業(yè)信息處理技術(shù),能夠?qū)ι虡I(yè)數(shù)據(jù)庫(kù)中的大量業(yè)務(wù)數(shù)據(jù)進(jìn)行抽取、轉(zhuǎn)換、分析和處理,提取出輔助商業(yè)決策的關(guān)鍵性知識(shí),例如,市場(chǎng)規(guī)律、客戶(hù)行為模式等4.數(shù)據(jù)挖掘的演變歷史5.數(shù)據(jù)挖掘是多學(xué)科交叉(結(jié)合圖說(shuō)明)利用了來(lái)自如下一些領(lǐng)域的思想:統(tǒng)計(jì)學(xué)的抽樣、估計(jì)和假設(shè)檢驗(yàn)人工智能、機(jī)器學(xué)習(xí)的搜索算法、建模技術(shù)和學(xué)習(xí)理論數(shù)據(jù)庫(kù)系統(tǒng)提供有效的存儲(chǔ)、索引和查詢(xún)處理支持6.在什么形式上的數(shù)據(jù)進(jìn)行挖掘數(shù)據(jù)挖掘可以在任何來(lái)源及類(lèi)型的數(shù)據(jù)上進(jìn)行,包括來(lái)自各種數(shù)據(jù)庫(kù)系統(tǒng)中的記錄、文本文件、Web文檔、日志、圖像、視頻、讀者等。這些數(shù)據(jù)從組織形式上可以分為結(jié)構(gòu)化數(shù)據(jù)(各類(lèi)數(shù)據(jù)庫(kù)中的數(shù)據(jù),也包括以文本文件保存的遵循數(shù)據(jù)格式與規(guī)范的數(shù)據(jù))、非結(jié)構(gòu)化數(shù)據(jù)(文本、圖像、視頻、語(yǔ)音等)和半結(jié)構(gòu)化數(shù)據(jù)(Web網(wǎng)頁(yè)、日志等)。結(jié)合圖1-2的例子進(jìn)行說(shuō)明。7.數(shù)據(jù)挖掘的應(yīng)用例子分析:(1)信貸風(fēng)險(xiǎn)控制(2)反洗錢(qián)監(jiān)測(cè)(3)客戶(hù)關(guān)系管理(4)地震預(yù)警(5)個(gè)性化推薦二、數(shù)據(jù)挖掘的一般流程結(jié)合圖進(jìn)行說(shuō)明三、數(shù)據(jù)挖掘中的常見(jiàn)任務(wù)預(yù)測(cè)vs.描述預(yù)測(cè)(Prediction)根據(jù)其他屬性的值,預(yù)測(cè)特定屬性的值描述(Description)導(dǎo)出概括數(shù)據(jù)中潛在聯(lián)系的模式任務(wù)類(lèi)型:分類(lèi)(Classification)[Predictive]回歸(Regression)[Predictive]關(guān)聯(lián)規(guī)則發(fā)現(xiàn)(AssociationRuleDiscovery)[Descriptive]聚類(lèi)(Clustering)[Descriptive]異常/偏差檢測(cè)(Anomaly/DeviationDetection)[Predictive]時(shí)間序列分析(timeseriesanalysis)四、數(shù)據(jù)挖掘環(huán)境的配置(1)商業(yè)化的數(shù)據(jù)挖掘軟件(2)開(kāi)源的數(shù)據(jù)挖掘工具(3)基于腳本語(yǔ)言的數(shù)據(jù)挖掘工具(4)Anaconda的下載和安裝(演示過(guò)程)(5)Jupyter和Spyder工具的使用(演示過(guò)程)【思考】:生活中常見(jiàn)的數(shù)據(jù)挖掘任務(wù)有哪些,請(qǐng)舉例說(shuō)明?!咀鳂I(yè)】:1.安裝Anaconda軟件工具,并利用Jupyter允許一個(gè)簡(jiǎn)單的Python程序。第二講:Python數(shù)據(jù)挖掘模塊的使用(一)教學(xué)目標(biāo)1.Numpy的使用2.Pandas的數(shù)據(jù)結(jié)構(gòu)教學(xué)難點(diǎn)Numpy的索引、切片操作;Pandas的索引、切片操作;教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第2章第2.1節(jié),2.2節(jié)授課內(nèi)容說(shuō)明一、Numpy的使用1.概述Numpy是NumericalPython的簡(jiǎn)稱(chēng),是高性能計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包。Numpy主要提供以下幾個(gè)主要功能:Ndarray數(shù)據(jù)對(duì)象:Numpy的多維數(shù)組對(duì)象,用于存儲(chǔ)和處理數(shù)據(jù)。提供可用于對(duì)數(shù)組數(shù)據(jù)進(jìn)行快速運(yùn)算的數(shù)學(xué)函數(shù)。提供可用于讀寫(xiě)磁盤(pán)數(shù)據(jù)的工具。提供常用的線性代數(shù)、傅里葉變化和隨機(jī)數(shù)操作。提供可調(diào)用C/C++和Fortran代碼的工具。提供能夠無(wú)縫、快速地與各種數(shù)據(jù)庫(kù)集成的工具2.Ndarray數(shù)組的創(chuàng)建Ndarray是一個(gè)快速、靈活的數(shù)據(jù)容器,是由同質(zhì)元素(指幾乎所有元素的類(lèi)型和大小都相同)組成的多維數(shù)組。Ndarray數(shù)組的常用創(chuàng)建方法有:array()、arange()、linspace()、ones()、zeros()以及各種隨機(jī)生成函數(shù)。(1)array函數(shù)(舉例說(shuō)明)(2)arrange函數(shù)(3)linespace函數(shù)(4)zeros()、ones()、zeros_like()、ones_like()函數(shù)(5)隨機(jī)生成函數(shù)2.Ndarray數(shù)組的屬性Ndarray有3個(gè)重要的屬性:dtype(數(shù)據(jù)類(lèi)型)、ndim(維數(shù))和shape(形狀)。其中,dtype屬性描述了數(shù)據(jù)的類(lèi)型:使用astype()函數(shù)可以修改數(shù)據(jù)的類(lèi)型(舉例):3.索引和切片Numpy可以通過(guò)下標(biāo)索引的方式獲取Numpy數(shù)組中的某個(gè)元素,或者通過(guò)切片的方式獲取數(shù)組中的一塊數(shù)據(jù)(1)普通索引將每個(gè)維度的索引值單獨(dú)放到一個(gè)中括號(hào)“[]”,拼接多個(gè)維度的索引值來(lái)獲得個(gè)元素值(2)切片Numpy中的切片用于獲取Numpy數(shù)組的一塊數(shù)據(jù),其操作方式與Python列表中的切片很相似,均使用“[]”指定下標(biāo)實(shí)現(xiàn)。其中,每個(gè)維度上使用冒號(hào)“:”分割起始位置、截止位置(切片時(shí)不包含該位置)與步長(zhǎng),逗號(hào)“,”用于區(qū)分不同維度上的切片操作,用省略號(hào)“…”表示切片操作遍歷剩余所有的維度。4.排序Numpy提供了排序函數(shù)sort()實(shí)現(xiàn)數(shù)組對(duì)象的排序。并且,它可以使用axis參數(shù)來(lái)指定在指定維度(軸)上進(jìn)行排序。在Numpy中,調(diào)用sort()函數(shù)的方式有兩種:np.sort(Ndarray數(shù)組對(duì)象)Ndarray數(shù)組對(duì)象.sort()區(qū)別在于:前一種方式會(huì)返回一個(gè)排序好的新數(shù)組,不會(huì)對(duì)原數(shù)組的順序做修改。后一種調(diào)用方式會(huì)直接在原數(shù)組上進(jìn)行重新排序。5.Numpy的數(shù)組運(yùn)算(1)數(shù)組與數(shù)值的算術(shù)運(yùn)算Numpy支持?jǐn)?shù)組和數(shù)值之間進(jìn)行加、減、乘、除、求余、乘方等算術(shù)運(yùn)算。(2)數(shù)組與數(shù)組的算術(shù)運(yùn)算Numpy數(shù)組與數(shù)組進(jìn)行運(yùn)算時(shí),如果兩個(gè)數(shù)組的形狀相同,則運(yùn)算過(guò)程為兩個(gè)數(shù)組對(duì)應(yīng)位置的元素進(jìn)行相應(yīng)算術(shù)運(yùn)算。如果形狀不同,則要利用Numpy的“廣播”特性進(jìn)行計(jì)算。6.Numpy的統(tǒng)計(jì)函數(shù)Numpy支持一組統(tǒng)計(jì)函數(shù)對(duì)數(shù)組進(jìn)行統(tǒng)計(jì)分析(舉例說(shuō)明)二、Pandas的使用1.概述Pandas是基于Numpy構(gòu)建的一個(gè)數(shù)據(jù)分析模塊,它也是Python語(yǔ)言中最強(qiáng)大也最重要的數(shù)據(jù)分析和處理模塊之一。Pandas是一個(gè)專(zhuān)門(mén)為處理表格和混雜數(shù)據(jù)而設(shè)計(jì)的高效模塊,而Numpy更適合處理統(tǒng)一的數(shù)值數(shù)據(jù)??梢栽贏naconda命令行終端中使用pip命令或者conda命令進(jìn)行安裝,如下所示。pipinstallpandas#pip安裝方式condainstallpandas#Anaconda安裝方式2.Pandas的數(shù)據(jù)結(jié)構(gòu)Pandas提供了兩種重要的數(shù)據(jù)結(jié)構(gòu):Series和DataFrame。(1)SeriesSeries由一組數(shù)據(jù)(可以是不同數(shù)據(jù)類(lèi)型)和與之對(duì)應(yīng)的索引值所組成。創(chuàng)建一個(gè)Series對(duì)象時(shí),可以通過(guò)向pd.Series傳遞一個(gè)Python列表、字典或者Numpy一維數(shù)組來(lái)實(shí)現(xiàn)。(2)DataFrame一個(gè)DataFrame對(duì)象由多個(gè)列組成,每列的數(shù)據(jù)類(lèi)型可以不同(數(shù)值、文本等)。創(chuàng)建DataFrame對(duì)象的典型方法是向pd.DataFrame()方法傳入二維列表、字典或者二維數(shù)組。3.查看和獲取數(shù)據(jù)(1)數(shù)據(jù)查看和設(shè)置操作(演示)在創(chuàng)建一個(gè)DataFrame對(duì)象后,可以使用對(duì)象的一些內(nèi)置函數(shù)和屬性對(duì)它的基本信息進(jìn)行觀察和設(shè)置。常用的操作包括。獲取df的行數(shù):df.shape[0]或者len(df)。獲取df的列數(shù):df.shape[1]。獲取df的維數(shù):df.shape。獲取df的列名或者行名:df.columns或df.index。重新定義列名字:df.columns=[‘A’,‘B’,‘C’]。更改某些列的名字:df.rename(columns={‘x’:‘X’},inplace=True)查看df的概要信息:()查看df中前n行的數(shù)據(jù)信息:df.head(n)查看df最后n行的信息:df.tail(n)(2)數(shù)據(jù)獲?。ㄋ饕颓衅ㄑ菔荆㏄andas也支持使用索引和切片等方式獲取DataFrame中的值,進(jìn)而進(jìn)行計(jì)算或者修改。Pandas進(jìn)行數(shù)據(jù)索引和切片的方式通常有以下三種:通過(guò)列索引獲得對(duì)象中的一列或者多列。通過(guò)對(duì)象的loc[]函數(shù)或iloc[]函數(shù)獲取指定行索引、列索引位置上的數(shù)據(jù)。使用條件索引獲得滿(mǎn)足條件的部分?jǐn)?shù)據(jù)或切片?!舅伎肌浚喝绾螌?duì)于一個(gè)DataFrame對(duì)象選取指定的若干行和若干列上的數(shù)據(jù)?!咀鳂I(yè)】:1.創(chuàng)建一個(gè)5x5的矩陣,每一個(gè)元素都是隨機(jī)整數(shù)值,返回該矩陣中心位置的3x3的子矩陣。第三講:Python數(shù)據(jù)挖掘模塊的使用(二)教學(xué)目標(biāo)1.Pandas的數(shù)據(jù)操作2.Matplotlib繪圖教學(xué)難點(diǎn)Pandas的數(shù)據(jù)操作教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第2章授課內(nèi)容說(shuō)明一、Pandas1.pandas的算術(shù)運(yùn)算Pandas支持將Series或DataFrame對(duì)象當(dāng)作一個(gè)整體進(jìn)行算術(shù)運(yùn)算。Pandas提供了兩種算術(shù)運(yùn)算方法。第一種是直接采用“+”、“-”、“*”、“/”等算術(shù)運(yùn)算符實(shí)現(xiàn);第二種方法是使用add()、sub()、mul()、div()、mod()等函數(shù)實(shí)現(xiàn)算術(shù)運(yùn)算。Pandas在對(duì)兩個(gè)對(duì)象進(jìn)行算術(shù)運(yùn)算時(shí),只有對(duì)應(yīng)索引(行索引和列索引)相同的兩個(gè)數(shù)據(jù)才可以進(jìn)行算術(shù)運(yùn)算;而不同索引的數(shù)據(jù)不能直接進(jìn)行算術(shù)運(yùn)算,但默認(rèn)情況下,它們會(huì)以NaN出現(xiàn)在計(jì)算結(jié)果中。舉例:2.Pandas的統(tǒng)計(jì)匯總函數(shù)。演示其操作:代碼2-17Pandas的匯總和統(tǒng)計(jì)函數(shù)的使用3.Pandas的其它常用函數(shù)reindex()函數(shù)是Pandas的一個(gè)重要函數(shù),它允許對(duì)指定軸的索引進(jìn)行增加、刪除和修改。drop()函數(shù)刪除指定的行或者列。sort_index()和sort_values()函數(shù)對(duì)Series或DataFrame對(duì)象進(jìn)行按列排序和按行排序,從而返回一個(gè)排序以后的新對(duì)象。演示操作:代碼2-18使用reindex()函數(shù)對(duì)Series對(duì)象進(jìn)行行索引重排代碼2-20使用drop()函數(shù)刪除DataFrame對(duì)象中的指定行代碼2-21使用sort_index()和sort_values()函數(shù)對(duì)DataFrame對(duì)象排序4.Pandas文件讀寫(xiě)操作Pandas可以方便地讀取本地文件如CSV、TXT和XLSX等。(1)讀CSV文本文件Pandas使用read_csv()函數(shù)讀入一個(gè)CSV文件,并將所讀取的數(shù)據(jù)存入到一個(gè)DataFrame對(duì)象中。read_csv(filepath_or_buffer,sep,delimiter=",",header=0,encoding="gbk")(2)寫(xiě)CSV文本文件數(shù)據(jù)處理完畢以后,可以使用to_csv()函數(shù)將DataFrame格式的數(shù)據(jù)保存為CSV文件。to_csv()函數(shù)的完整形式如下:to_csv(path_or_buf,sep,na_rep,index,header,encoding)(3)讀Excel文件Pandas可以讀寫(xiě)擴(kuò)展名為.xls或.xlsx的Excel文件。read_excel(io,sheetname=0,header=0,index_col=None)(4)寫(xiě)Excel文件使用to_excel()函數(shù)將DataFrame格式的數(shù)據(jù)保存為Excel文件。to_excel(excel_writer,sheetname=None,na_rep="",header=True,index=True)課堂演示文件讀寫(xiě)(自行設(shè)計(jì))。二、MatplotlibMatplotlib是Python的基礎(chǔ)繪圖模塊,可以繪制多種樣式的圖形,如線圖、直方圖、餅圖、散點(diǎn)圖、三維圖形等。安裝Matplotlib模塊,可以使用pip或者conda命令:pipinstallmatplotlib#使用pip安裝matplotlibcondainstallmatplotlib#使用conda安裝1.Matplotlib的基本繪圖元素在Matplotlib中,整個(gè)圖形是一個(gè)畫(huà)布(Figure)對(duì)象。使用Matplotlib進(jìn)行繪圖,實(shí)質(zhì)上是在調(diào)用各種函數(shù)在畫(huà)布上添加各種基本繪圖元素,并通過(guò)設(shè)置函數(shù)的參數(shù)來(lái)控制各元素的外形。重要的繪圖元素如下:Figure(畫(huà)布):它是一幅圖形的整體輪廓,一個(gè)畫(huà)布上也可以繪制多個(gè)子圖(sub_figure)。Title(標(biāo)題):圖片的標(biāo)題。Legend(圖例):圖中曲線的文字說(shuō)明。Axis(坐標(biāo)軸):通常指x軸、y軸。Ticks(刻度):坐標(biāo)軸上的刻度,還可細(xì)分為主要刻度(majortick)和次要刻度(minortick)。Label(標(biāo)簽):坐標(biāo)軸的文字說(shuō)明。Annotate(標(biāo)注):在圖形上給數(shù)據(jù)添加的文字說(shuō)明。(1)坐標(biāo)軸設(shè)置坐標(biāo)軸參數(shù)所需的函數(shù)(2)圖例在Matplotlib中,通常使用plt.legend()函數(shù)來(lái)控制圖例的形狀。plt.legend()可以通過(guò)傳入loc參數(shù),來(lái)控制圖例的顯示位置。結(jié)合表2-5進(jìn)行說(shuō)明和演示。(3)文本注釋Matplotlib提供了annotate()和text()兩個(gè)函數(shù)用于添加文本注釋。其中,annotate()用于添加帶箭頭的文本注釋?zhuān)鴗ext()用于添加只包含普通文本的注釋。2.Matplotlib常見(jiàn)圖的繪制(1)折線圖使用plot()函數(shù)進(jìn)行折線圖的繪制,并通過(guò)設(shè)置函數(shù)的參數(shù)來(lái)控制各元素的外形。其基本語(yǔ)法為:plot(x,y,color,linewidth,linestyle,marker,markersize)演示:代碼2-23使用plot()函數(shù)繪制折線圖(2)散點(diǎn)圖散點(diǎn)圖可以將數(shù)據(jù)集中的每個(gè)點(diǎn)繪制在二維平面上,用戶(hù)可根據(jù)數(shù)據(jù)點(diǎn)的散布情況對(duì)數(shù)據(jù)的分布進(jìn)行觀察和推測(cè),或者分析變量之間的相關(guān)性。Matplotlib使用scatter()函數(shù)來(lái)繪制散點(diǎn)圖,其基本語(yǔ)法為:scatter(x,y,s,c,marker,alpha)演示:代碼2-24使用scatter()函數(shù)繪制散點(diǎn)圖(3)柱狀圖如果要對(duì)一組數(shù)據(jù)或者多組數(shù)據(jù)的大小進(jìn)行比較,可使用柱狀圖,柱狀圖提供了一種最直觀的比較方式。Matplotlib使用bar()函數(shù)來(lái)繪制柱狀圖。所繪制的柱狀圖利用條柱之間的高度差異來(lái)直觀比較數(shù)據(jù)的大小。bar()函數(shù)的基本語(yǔ)法為:bar(x,height,alpha,width,color,edgecolor,label)演示:代碼2-25使用bar()函數(shù)繪制柱狀圖三、Sciket-learnScikit-learn是Python中構(gòu)建數(shù)據(jù)挖掘模型的強(qiáng)大模塊,它涵蓋了幾乎所有主流的數(shù)據(jù)挖掘算法,并且提供了統(tǒng)一的調(diào)用接口。Scikit-learn依賴(lài)于NumPy、SciPy和Matplotlib等數(shù)值計(jì)算和可視化的模塊。因此,在安裝使用Scikit-learn之前,需要先安裝這些模塊。安裝方法與安裝NumPy的類(lèi)似,可以在Anaconda命令行終端輸入命令來(lái)安裝:pipinstallscikit-learn或者condainstallscikit-learn【思考】:讀寫(xiě)Excel文件時(shí)如何把表格的內(nèi)容作為Pandas的行索引或列索引?【作業(yè)】:1.隨機(jī)生成一個(gè)5x5的整數(shù)矩陣,使用Pandas對(duì)其中的數(shù)據(jù)進(jìn)行按行和按列的排序。2.對(duì)Iris花數(shù)據(jù)集繪制其散點(diǎn)圖。第四講:數(shù)據(jù)探索教學(xué)目標(biāo)1.數(shù)據(jù)對(duì)象與特征2.數(shù)據(jù)統(tǒng)計(jì)描述3.數(shù)據(jù)可視化4.相關(guān)性與相似性度量教學(xué)難點(diǎn)幾種數(shù)據(jù)相關(guān)性與相似性度量方法教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第3章授課內(nèi)容說(shuō)明【引言】:數(shù)據(jù)收集和存儲(chǔ)技術(shù)的快速發(fā)展使得現(xiàn)代計(jì)算機(jī)系統(tǒng)正在以無(wú)法想象的速度積累著海量數(shù)據(jù)。與此同時(shí),數(shù)據(jù)的來(lái)源也愈發(fā)廣泛。通過(guò)使用數(shù)據(jù)統(tǒng)計(jì)描述和可視化等方法,認(rèn)識(shí)數(shù)據(jù)的統(tǒng)計(jì)特征,探索數(shù)據(jù)的分布規(guī)律,了解異常值、缺失值等情況,以便更好地掌握數(shù)據(jù)的特點(diǎn),進(jìn)而有針對(duì)性地開(kāi)展后續(xù)數(shù)據(jù)預(yù)處理和構(gòu)建數(shù)據(jù)挖掘模型工作?!皵?shù)據(jù)探索”,它通常是數(shù)據(jù)挖掘過(guò)程中的首要任務(wù)。數(shù)據(jù)集可以看作由數(shù)據(jù)對(duì)象構(gòu)成的集合。一個(gè)數(shù)據(jù)對(duì)象則代表一個(gè)實(shí)體,有時(shí)也被稱(chēng)為記錄、樣本、實(shí)例、點(diǎn)、向量、模式等。數(shù)據(jù)對(duì)象通常由一組刻畫(huà)對(duì)象基本屬性的特征來(lái)描述。對(duì)于存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),數(shù)據(jù)庫(kù)的一行對(duì)應(yīng)著一個(gè)數(shù)據(jù)對(duì)象,它們也被稱(chēng)為“元組”,一列則對(duì)應(yīng)著數(shù)據(jù)的一個(gè)特征。1.特征及其類(lèi)型數(shù)據(jù)對(duì)象的特征可以使用各種類(lèi)型的數(shù)據(jù)進(jìn)行描述,例如文本、數(shù)值、序數(shù)等。把特征分為5種主要類(lèi)型:標(biāo)稱(chēng)特征二元特征序數(shù)特征區(qū)間標(biāo)度特征比率標(biāo)度特征從特征的取值數(shù)量的角度將其分為兩種類(lèi)型:離散特征和連續(xù)特征。2.數(shù)據(jù)的統(tǒng)計(jì)描述數(shù)據(jù)統(tǒng)計(jì)描述通過(guò)計(jì)算數(shù)據(jù)的一些統(tǒng)計(jì)度量指標(biāo)幫助我們認(rèn)識(shí)數(shù)據(jù),是較為常用的探索數(shù)據(jù)分布特點(diǎn)的方法之一。統(tǒng)計(jì)描述通常包括兩類(lèi)度量指標(biāo):集中趨勢(shì)和離中趨勢(shì)。(1)集中趨勢(shì)一般來(lái)說(shuō),數(shù)據(jù)在某個(gè)特征上的集中趨勢(shì)主要由其取值的平均水平來(lái)度量,使用較為廣泛的度量包括:均值(Mean)、中位數(shù)(Median)和眾數(shù)(Mode)。(a).均值

反映在某個(gè)特征上平均取值情況。假設(shè)某班級(jí)的一組學(xué)生成績(jī)的觀測(cè)數(shù)據(jù)具有N個(gè)觀測(cè)值,單個(gè)觀測(cè)值用xi表示,成績(jī)均值用x表示,則均值的計(jì)算如公式(b)中位數(shù)

有些時(shí)候特征的取值并非集中在取值區(qū)間中心區(qū)域附近或者均勻分布,而是集中在區(qū)間的一側(cè),這樣的數(shù)據(jù)稱(chēng)為“有偏”數(shù)據(jù)。對(duì)于這樣的偏度較大的數(shù)據(jù),較好的度量數(shù)據(jù)集中趨勢(shì)的指標(biāo)是中位數(shù),用xm表示。中位數(shù)是數(shù)據(jù)排序后位于中間位置的那個(gè)取值:(c)眾數(shù)

眾數(shù)是另外一種中心趨勢(shì)的度量指標(biāo),它只對(duì)離散型的特征有意義。它是指一個(gè)特征的取值范圍內(nèi)出現(xiàn)頻數(shù)最高的值。因此,眾數(shù)通常用于離散特征上的集中趨勢(shì)度量。(舉例)一組學(xué)生的成績(jī)分別為:85、80、81、85、90、85、72、94、88、81、70。其中,分?jǐn)?shù)85出現(xiàn)的頻數(shù)最高(3次),因此該組學(xué)生成績(jī)的眾數(shù)為85。然而,有時(shí)頻數(shù)最高的值可能會(huì)同時(shí)有多個(gè),從而出現(xiàn)多個(gè)眾數(shù)。具有多個(gè)眾數(shù)的數(shù)據(jù)一般被稱(chēng)為多峰數(shù)據(jù)。(2)離中趨勢(shì)數(shù)據(jù)在某個(gè)特征上的離中趨勢(shì)的主要度量指標(biāo)包括:極差、方差、標(biāo)準(zhǔn)差、四分位極差等。極差

極差(Range)是指數(shù)據(jù)的最大值和最小值之間的差值x方差和標(biāo)準(zhǔn)差

方差主要用于測(cè)量數(shù)據(jù)取值的發(fā)散程度,常用數(shù)學(xué)符號(hào)σ2表示。σ標(biāo)準(zhǔn)差(StandardDeviation)也稱(chēng)標(biāo)準(zhǔn)偏差,是方差的算術(shù)平方根,常用數(shù)學(xué)符號(hào)σ表示。σ四分位極差

四分位數(shù)也稱(chēng)四分位點(diǎn),是指在統(tǒng)計(jì)描述過(guò)程中把特征的所有取值由小到大排列后,通過(guò)3個(gè)點(diǎn)(25%位置,50%位置,75%位置)可以將數(shù)據(jù)分割成4等份,這3個(gè)位置點(diǎn)對(duì)應(yīng)的數(shù)值分別稱(chēng)為1/4分位數(shù)(Q1,下四分位數(shù))、2/4分位數(shù)(Q2中位數(shù))和3/4分位數(shù)(Q3,上四分位數(shù))四分位數(shù)極差(Inter-QuartileRange,IQR)是指上四分位數(shù)與下四分位數(shù)之差。一般來(lái)說(shuō),其間距應(yīng)該涵蓋一半的數(shù)據(jù)量。3.數(shù)據(jù)可視化在數(shù)據(jù)挖掘過(guò)程中,利用圖形工具對(duì)數(shù)據(jù)進(jìn)行可視化,直接在二維或三維空間中觀察數(shù)據(jù)的分布規(guī)律,或者觀察特征之間的相關(guān)關(guān)系,是對(duì)數(shù)據(jù)進(jìn)行探索的常用方法之一。(1)散點(diǎn)圖散點(diǎn)圖是一種直接將數(shù)據(jù)點(diǎn)繪制在二維或者三維坐標(biāo)系中的圖形,用戶(hù)可根據(jù)數(shù)據(jù)點(diǎn)的散布情況對(duì)數(shù)據(jù)的分布或者特征之間的相關(guān)關(guān)系進(jìn)行直觀的觀察。使用Matplotlib模塊中的scatter()函數(shù)實(shí)現(xiàn)散點(diǎn)圖。兩個(gè)特征之間的相關(guān)性分為多種情況,包括完全線性正相關(guān)、完全線性負(fù)相關(guān)、線性正相關(guān)、線性負(fù)相關(guān)、線性無(wú)關(guān)和非線性相關(guān)。數(shù)據(jù)挖掘的演變歷史(結(jié)合圖3-3)(2)箱線圖箱線圖也稱(chēng)盒圖,一般用來(lái)展現(xiàn)數(shù)據(jù)的分布(如上、下四分位數(shù),中位數(shù)等),也可以用箱線圖來(lái)反映數(shù)據(jù)的異常情況。在matplotlib.pyplot模塊中使用boxplot()函數(shù)實(shí)現(xiàn)箱線圖繪制,其基本語(yǔ)法如下:boxplot(x,notch=False,sym=None,vert=True,patch_artist=None)講解:代碼3-2使用箱線圖探索鳶尾花數(shù)據(jù)集(3)頻率直方圖頻率直方圖,亦稱(chēng)頻率分布直方圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類(lèi)型,縱軸表示分布情況。matplotlib.pyplot模塊中的hist()函數(shù)的基本語(yǔ)法如下:hist(x,bins,range,density,cumulative)(4)柱狀圖柱狀圖也稱(chēng)條形圖、長(zhǎng)條圖,是一種以長(zhǎng)方形的長(zhǎng)度為變量的表達(dá)圖形的統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋表示數(shù)據(jù)大小的情況,用來(lái)比較兩個(gè)或以上的變量。柱狀圖亦可橫向排列,或用多維方式表達(dá)。柱狀圖亦可橫向排列,或用多維方式表達(dá),主要使用plt.bar()方法實(shí)現(xiàn)。(5)餅圖餅圖,或稱(chēng)餅狀圖,是一個(gè)劃分為幾個(gè)扇形的圓形統(tǒng)計(jì)圖,用于描述數(shù)量、頻率或百分比之間的相對(duì)關(guān)系或占比情況。在餅圖中,每個(gè)扇區(qū)的弧長(zhǎng)大小為其所表示的數(shù)量的比例。這些扇區(qū)合在一起剛好是一個(gè)完整的圓。通過(guò)matplotlib.pyplot模塊中pie()函數(shù)實(shí)現(xiàn),其基本語(yǔ)法為:pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6)(6)散點(diǎn)圖矩陣與簡(jiǎn)單的散點(diǎn)圖不同,散點(diǎn)圖矩陣可以同時(shí)看到多個(gè)特征的分布情況,以及兩兩特征之間的關(guān)系。散點(diǎn)圖矩陣的實(shí)現(xiàn)主要使用pandas.plotting模塊中的scatter_matrix()函數(shù),其基本語(yǔ)法為:scatter_matrix(frame,alpha=0.5,figsize=None,ax=None,grid=False,diagonal='hist',marker='.')4.相關(guān)性和相似性度量探索數(shù)據(jù)有兩項(xiàng)非常重要的工作。其一,我們需要觀察數(shù)據(jù)的特征之間是否存在相關(guān)性,以便判斷是否存在冗余特征;或者觀察特征和目標(biāo)變量之間是否存在相關(guān)性,以便為特征工程提供依據(jù)。3.3節(jié)介紹的散點(diǎn)圖和散點(diǎn)圖矩陣可以幫我們通過(guò)可視化較為直觀地觀察相關(guān)性。但可視化只是一種定性的方法,我們還需要一些定量的相關(guān)性度量方法。其二,許多數(shù)據(jù)挖掘模型的工作依賴(lài)于對(duì)數(shù)據(jù)之間相似性的計(jì)算。例如,給定兩個(gè)數(shù)據(jù)對(duì)象,如何評(píng)價(jià)它們是否是相似對(duì)象等。本節(jié)將介紹針對(duì)不同類(lèi)型數(shù)據(jù)的定量計(jì)算方法。(1)相關(guān)性度量相關(guān)性是數(shù)據(jù)不同特征之間相關(guān)關(guān)系的度量,也即一個(gè)特征的取值隨著另外一個(gè)特征取值的變化情況。常用的相關(guān)性度量方法包括:協(xié)方差、皮爾遜(Pearson)相關(guān)系數(shù)、斯皮爾曼(Spearman)相關(guān)系數(shù)、肯德?tīng)枺↘endall)相關(guān)系數(shù)等(a)協(xié)方差在概率論和統(tǒng)計(jì)學(xué)中,協(xié)方差用于測(cè)量?jī)蓚€(gè)連續(xù)變量x和y總體誤差的期望,如公式(3-7)所示。(b)皮爾遜(Pearson)相關(guān)系數(shù)用于衡量?jī)蓚€(gè)連續(xù)變量之間的線性相關(guān)性程度,通常用表示。它定義為兩個(gè)隨機(jī)變量之間協(xié)方差和標(biāo)準(zhǔn)差的商,如下公式所示:(c)斯皮爾曼(Spearman)相關(guān)系數(shù)斯皮爾曼相關(guān)系數(shù)主要用于描述分類(lèi)或等級(jí)變量之間、分類(lèi)或等級(jí)變量與連續(xù)變量之間的關(guān)系。斯皮爾曼相關(guān)系數(shù)主要通過(guò)關(guān)注兩個(gè)變量的秩次大小(對(duì)應(yīng)數(shù)值的位置)來(lái)計(jì)算其之間的相關(guān)性:即若兩個(gè)變量的對(duì)應(yīng)值,在各組內(nèi)的排列順位是相同或類(lèi)似的,則具有顯著的相關(guān)性。(2)相似度度量相似性是度量數(shù)據(jù)對(duì)象之間相似程度的方法,它是聚類(lèi)、推薦等數(shù)據(jù)挖掘模型的核心概念之一。不同類(lèi)型的數(shù)據(jù)有對(duì)應(yīng)的相似性度量指標(biāo):針對(duì)二元特征的杰卡德相似系數(shù)(Jaccard)針對(duì)文檔數(shù)據(jù)的余弦相似度(Cosine)針對(duì)數(shù)值特征的各種距離度量(Distance),如:歐式距離(Euclideandistance)、馬氏距離(Mahalanobisdistance)、曼哈頓距離(Manhattandistance)、切比雪夫距離(Chebyshevdistance)等。(a)卡德相似系數(shù)(Jaccard)Jaccard相似系數(shù)主要用于度量具有二元屬性的兩個(gè)數(shù)據(jù)對(duì)象之間的相似性。假設(shè)數(shù)據(jù)對(duì)象x和y具有QUOTEN

N個(gè)二元特征,其中,用A表示對(duì)象x取1值的特征集合,用B表示對(duì)象y取1值的特征集合。那么,兩個(gè)數(shù)據(jù)對(duì)象的Jaccard系數(shù)定義為:J(b)余弦相似度(Cosine)余弦相似度主要使用向量空間中兩個(gè)向量夾角的余弦值作為相似性指標(biāo)的度量,主要用于計(jì)算文檔數(shù)據(jù)之間的相似性。假設(shè)兩個(gè)文檔向量(x1,cosθ=(c)歐式距離也稱(chēng)為歐幾里德距離,是最易于理解的一種距離計(jì)算方法,可以表示為歐氏空間中兩點(diǎn)之間的距離或線段的長(zhǎng)度。假設(shè)兩個(gè)數(shù)據(jù)對(duì)象x=(xd(d)馬式距離馬氏距離是由馬哈拉諾比斯(Mahalanobis)提出的,表示數(shù)據(jù)的協(xié)方差距離,是一種有效的計(jì)算兩個(gè)數(shù)據(jù)對(duì)象之間相似度的方法。假設(shè)兩個(gè)數(shù)據(jù)對(duì)象x=(d(e)曼哈頓距離假設(shè)兩個(gè)數(shù)據(jù)對(duì)象x和y之間的曼哈頓距離計(jì)算方法如公式:d(f)切比雪夫距離切比雪夫距離也稱(chēng)為棋盤(pán)距離,假設(shè)兩個(gè)數(shù)據(jù)對(duì)象x和y之間的切比雪夫距離計(jì)算方法為為:【思考】:高維空間中度量?jī)蓚€(gè)對(duì)象的相似性使用哪種度量比較合適?【作業(yè)】:1.編程計(jì)算鳶尾花數(shù)據(jù)集中第一類(lèi)花和第二類(lèi)花的平均相似度。2.繪制箱線圖,觀察鳶尾花數(shù)據(jù)集的4個(gè)特征中,是否存在噪聲情況?第五講:數(shù)據(jù)預(yù)處理(一)教學(xué)目標(biāo)1.數(shù)據(jù)集成2.數(shù)據(jù)清洗教學(xué)難點(diǎn)缺失值填充方法異常值識(shí)別方法教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第4章授課內(nèi)容說(shuō)明【引言】數(shù)據(jù)預(yù)處理技術(shù)可以有效改善現(xiàn)有數(shù)據(jù)集的質(zhì)量,從而有助于提升后續(xù)數(shù)據(jù)挖掘工作的準(zhǔn)確率和效率,讓數(shù)據(jù)更適合后續(xù)的挖掘任務(wù)。例如,從日常生產(chǎn)、生活中收集的數(shù)據(jù)通常質(zhì)量不高,存在異常值(例如,賬號(hào)余額:?100)、缺失值、不可能的數(shù)據(jù)組合(例如,年齡為2歲,學(xué)歷為研究生)等情況。一、數(shù)據(jù)集成數(shù)據(jù)集成是指將來(lái)自多個(gè)不同(異構(gòu))數(shù)據(jù)源的數(shù)據(jù)(集)組合到一個(gè)集成的數(shù)據(jù)存儲(chǔ)中,并提供數(shù)據(jù)統(tǒng)一視圖的過(guò)程。這些異構(gòu)數(shù)據(jù)源可能包括多維數(shù)據(jù)集、數(shù)據(jù)庫(kù)或數(shù)據(jù)文件等。在這個(gè)過(guò)程中,需要解決的問(wèn)題主要包括:同名異義、異名同義、單位不統(tǒng)一和顆粒度不統(tǒng)一等:(1)同名異義:例如,員工信息表A中的屬性ID和交易記錄表B中的屬性ID可能分別描述的是員工編號(hào)和訂單編號(hào),即描述的是不同的實(shí)體.(2)異名同義:例如,數(shù)據(jù)表A中的sales_dt和數(shù)據(jù)表B中的sales_date都是描述銷(xiāo)售日期,但是使用了不同的特征名稱(chēng),即A.sales_dt=B.sales_date。(3)單位不統(tǒng)一:例如,數(shù)據(jù)表A和B中,描述同一個(gè)實(shí)體分別用的是國(guó)際單位和我國(guó)傳統(tǒng)的計(jì)量單位。(4)顆粒度不統(tǒng)一:例如,數(shù)據(jù)表A描述每天每個(gè)城市的數(shù)據(jù),數(shù)據(jù)表B描述每月每個(gè)省份的數(shù)據(jù)。數(shù)據(jù)堆疊數(shù)據(jù)堆疊,是按照軸拼接兩個(gè)DataFrame對(duì)象,通常使用Pandas模塊中的concat()函數(shù)完成,函數(shù)的基本語(yǔ)法如下所示。concat(objs,axis=0,join='outer',ignore_index=False)圖4-2的例子。數(shù)據(jù)增補(bǔ)除了堆疊的方法,append()函數(shù)也可以用于縱向合并兩張表,稱(chēng)為數(shù)據(jù)增補(bǔ)。一個(gè)數(shù)據(jù)框?qū)ο螅―ataFrame)可以調(diào)用append()函數(shù)將另外一個(gè)數(shù)據(jù)框?qū)ο筇砑拥狡湮膊縜ppend(other,ignore_index=False)數(shù)據(jù)合并merge()函數(shù)也可以用于合并兩個(gè)數(shù)據(jù)對(duì)象,并可以實(shí)現(xiàn)類(lèi)似數(shù)據(jù)庫(kù)中的左連接(left)、右連接(right)、內(nèi)連接(inner)和外連接(outer)合并方式。merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,suffixes)二、數(shù)據(jù)清洗數(shù)據(jù)清洗是指為檢測(cè)和消除數(shù)據(jù)中的重復(fù)值、錯(cuò)誤值、異常值、缺失值、不一致值等問(wèn)題而采取的各種措施和手段,目的是為了提高數(shù)據(jù)質(zhì)量。數(shù)據(jù)清洗是數(shù)據(jù)預(yù)處理階段中一項(xiàng)非常重要的工作,本節(jié)將重點(diǎn)介紹常見(jiàn)的數(shù)據(jù)清理技術(shù)。重復(fù)值處理在數(shù)據(jù)集成過(guò)程中,我們按行或者按列合并不同來(lái)源的數(shù)據(jù)對(duì)象,不可避免地產(chǎn)生數(shù)據(jù)重復(fù)問(wèn)題。通常,數(shù)據(jù)重復(fù)包括記錄重復(fù)和特征重復(fù)(1)記錄重復(fù)記錄重復(fù)是指多個(gè)數(shù)據(jù)對(duì)象(行數(shù)據(jù))都是關(guān)于同一個(gè)實(shí)體的描述。記錄重復(fù)的檢驗(yàn)可以通過(guò)Pandas模塊提供的duplicated()函數(shù)實(shí)現(xiàn),其基本語(yǔ)法為:DataFrame.duplicated(subset=None,keep='first')Pandas模塊提供了drop_duplicates()函數(shù)用于去除重復(fù)記錄。該函數(shù)只對(duì)DataFrame或者Series對(duì)象有效。它支持依據(jù)一個(gè)或者幾個(gè)特征組合進(jìn)行去重操作,其基本語(yǔ)法為:DataFrame.drop_duplicates(subset=None,keep='first',inplace=False)演示:代碼4-2使用duplicated()函數(shù)和drop_duplicates()函數(shù)檢驗(yàn)和去除重復(fù)記錄(2)特征重復(fù)由于數(shù)據(jù)集成是將多來(lái)源數(shù)據(jù)表格進(jìn)行堆疊或合并的過(guò)程,這個(gè)過(guò)程較常出現(xiàn)特征冗余的問(wèn)題:如果一個(gè)特征(數(shù)據(jù)集的列或?qū)傩裕┑臄?shù)據(jù)信息可以從任何其他特征或特征集合直接或間接得出,則稱(chēng)為特征冗余。冗余處理是數(shù)據(jù)集成過(guò)程中需要關(guān)注的一個(gè)重要的問(wèn)題。有些特征冗余是可以通過(guò)相關(guān)分析檢測(cè)出來(lái)的。例如,給定兩個(gè)特征,如果是標(biāo)稱(chēng)特征,我們可以使用卡方系數(shù)進(jìn)行檢驗(yàn);如果是數(shù)值特征,我們可以使用相關(guān)系數(shù)(CorrelationCoefficient)進(jìn)行檢驗(yàn)。演示:代碼4-3使用corr()函數(shù)檢驗(yàn)特征間的相關(guān)關(guān)系缺失值處理常用的缺失值檢測(cè)采用統(tǒng)計(jì)分析方法,逐個(gè)檢查數(shù)據(jù)的每個(gè)特征的缺失情況。Pandas對(duì)象中isnull()函數(shù)提供了非常方便的缺失值檢查功能,它將為返回一個(gè)布爾型矩陣,每個(gè)布爾值(True或False)指示數(shù)據(jù)是否缺失具體使用中,我們可以使用isnull().sum()返回Pandas對(duì)象的每一列的缺失值計(jì)數(shù)。(1)直接刪除直接刪除缺失值是直接刪除存在缺失值的行或者列來(lái)獲得完整的數(shù)據(jù)。然而,這種方法將同時(shí)刪掉有用的數(shù)據(jù),造成信息的損失。通常,特定的行或者列存在大量的缺失時(shí)(例如,超過(guò)70-75%數(shù)據(jù)缺失),我們采用直接刪除的方法。pandas模塊的dropna()函數(shù)可以實(shí)現(xiàn)缺失值的刪除功能,它的基本語(yǔ)法如下所示dropna(axis=0,how='any',subset=None,inplace=False)(2)替換或填補(bǔ)缺失值常用的數(shù)據(jù)填充方法包括:使用均值、中位數(shù)或眾數(shù)等具有代表性的數(shù)值進(jìn)行替換;可以使用某些固定值(如0值或‘Unknown’)對(duì)缺失值替換;使用臨近值進(jìn)行替換上述三種替換方法均可以使用Pandas模塊中的fillna()函數(shù)實(shí)現(xiàn)fillna(value=None,method=None,axis=None,inplace=False,limit=None)演示:代碼4-6缺失值替換方法3.異常值處理在數(shù)據(jù)挖掘中,異常值是指不符合預(yù)期模式,且觀測(cè)值明顯偏離其它觀測(cè)值的數(shù)據(jù)。異常值也稱(chēng)為離群點(diǎn)(Outlier),產(chǎn)生的原因很多,可能包括但不限于錄入錯(cuò)誤、測(cè)量錯(cuò)誤、數(shù)據(jù)生成過(guò)程中的錯(cuò)誤等。異常值的存在將顯著影響構(gòu)建的數(shù)據(jù)挖掘模型的準(zhǔn)確性和可靠性。因此,需要對(duì)異常值進(jìn)行檢測(cè)和處理。通常,異常值的檢測(cè)方法包括:3σ原則、箱線圖分析、聚類(lèi)分析。(1)3σ原則又稱(chēng)為“拉伊達(dá)準(zhǔn)則”,是在假定數(shù)據(jù)服從正態(tài)分布的情況下,絕大部分?jǐn)?shù)據(jù)的取值都應(yīng)該位于3倍標(biāo)準(zhǔn)差范圍內(nèi),那么超出3倍標(biāo)準(zhǔn)差范圍的值被識(shí)別為異常值。下表給出了正態(tài)分布的數(shù)據(jù)的取值分布情況。顯然,只有不到0.3%的數(shù)據(jù)位于3倍標(biāo)準(zhǔn)差之外(這里,符號(hào)μ和σ分別表示數(shù)據(jù)的均值和標(biāo)準(zhǔn)差)。取值的分布范圍在全部數(shù)據(jù)中的比例(μ-σ,μ-σ)68.27%(μ-2σ,μ-2σ)95.45%(μ-3σ,μ-3σ)99.73%(2)箱線圖分析箱線圖,也稱(chēng)盒圖,有五個(gè)基本數(shù)值信息組成:最小值(min),下四分位數(shù)(Q1),中位數(shù)(median),上四分位數(shù)(Q3)和最大值(max),常用來(lái)展現(xiàn)數(shù)據(jù)的分布情況,也可以用于異常值檢測(cè)。異常值判斷的主要原理和過(guò)程為:首先需要計(jì)算IQR(四分位數(shù)極差,inter-quartilerange),即上四分位數(shù)(Q3)與下四分位數(shù)(Q1)之間的差值(IQR=Q3-Q1),可以看做是箱子的長(zhǎng)度;在此基礎(chǔ)上,計(jì)算箱子的最小觀測(cè)值min為:Q1-1.5*IQR,最大觀測(cè)值max為:Q3+1.5*IQR。箱體外部的兩邊緣線(胡須,whisker)分別表示最大觀測(cè)值和最小觀測(cè)值。因此,小于最小觀測(cè)值(Q1-1.5*IQR)和大于最大觀測(cè)值(Q3+1.5*IQR)的數(shù)值則被認(rèn)定為異常值,在箱線圖中表示為上下邊緣線外的孤立點(diǎn)。演示:代碼4-7利用箱線圖檢測(cè)異常值(3)聚類(lèi)分析異常值通常數(shù)量較少,且正常數(shù)據(jù)有明顯的差異。從聚類(lèi)的角度,異常值在數(shù)據(jù)空間中孤立存在,不構(gòu)成特定的簇,所在區(qū)域的密度很低。因此,一些基于密度的聚類(lèi)算法能根據(jù)數(shù)據(jù)點(diǎn)所在位置的密度識(shí)別出異常數(shù)據(jù),例如DBSCAN聚類(lèi)算法,以上統(tǒng)計(jì)描述方法和可視化方法輔助檢測(cè)異常值或離群點(diǎn)。如果檢測(cè)到數(shù)據(jù)集出現(xiàn)異常值或離群點(diǎn),常見(jiàn)的處理方法包括:直接剔除掉異常值,主要用于異常值數(shù)量較少的時(shí)候。借鑒缺失值的處理方法進(jìn)行替換或插值。不處理,在某些情況下,異常值可能代表特殊的含義,如何處理需要咨詢(xún)業(yè)務(wù)人員或深入了解數(shù)據(jù)收集過(guò)程?!舅伎肌浚涸谌笔е堤畛鋾r(shí),按類(lèi)別分別進(jìn)行填充是否會(huì)效果更好?【作業(yè)】:1.如果搜集到一組關(guān)于超市日銷(xiāo)售額數(shù)據(jù),請(qǐng)使用本章預(yù)處理的方法判斷它們中是否存在異常值。數(shù)據(jù)如下:amount=[120,110,145,107,92,197,69,137,92,405,92,148,101,172,84,80,152,107,50,52]第六講:數(shù)據(jù)預(yù)處理(二)教學(xué)目標(biāo)1.數(shù)據(jù)變換2.數(shù)據(jù)規(guī)約教學(xué)難點(diǎn)標(biāo)稱(chēng)數(shù)據(jù)的編碼方法教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第4章授課內(nèi)容說(shuō)明【引言】數(shù)據(jù)變換是對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理,轉(zhuǎn)換為“適當(dāng)”的形式以適應(yīng)數(shù)據(jù)挖掘算法的需要。常見(jiàn)的數(shù)據(jù)變換操作包括:數(shù)據(jù)規(guī)范化、數(shù)值特征的二值化和離散化、標(biāo)稱(chēng)特征的數(shù)值化處理等。一、數(shù)據(jù)變換1.數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化是指為了消除不同數(shù)據(jù)(特征)在度量單位上的差異以及取值范圍的影響,將數(shù)據(jù)按照一定比例進(jìn)行標(biāo)準(zhǔn)化,使其落入到同一水平的取值范圍內(nèi)。常用規(guī)范化方法包括:“最小-最大(min-max)”規(guī)范化,“零-均值(Z-score)”規(guī)范化和小數(shù)定標(biāo)規(guī)范化。最小最大規(guī)范化“最小-最大”規(guī)范化,也稱(chēng)為“離差標(biāo)準(zhǔn)化”,是將數(shù)據(jù)按比例線性縮放到特定區(qū)間[min,max],通常是[0,1]區(qū)間。對(duì)于每個(gè)特征,其最小值被轉(zhuǎn)換為0,最大值被轉(zhuǎn)換為1。計(jì)算方式如下式所示。x演示:代碼4-8使用MinMaxScaler類(lèi)對(duì)鳶尾花數(shù)據(jù)集進(jìn)行最小-最大規(guī)范化零均值規(guī)范化“零-均值”規(guī)范化,也稱(chēng)為標(biāo)準(zhǔn)差規(guī)范化或Z-分?jǐn)?shù)規(guī)范化(Z-scoreScaling),是按照均值中心化,然后利用標(biāo)準(zhǔn)差重新縮放數(shù)據(jù),使數(shù)據(jù)服從均值為0,方差為1的正態(tài)分布,計(jì)算方式如下:x演示:代碼4-9使用StandardScaler對(duì)鳶尾花數(shù)據(jù)集進(jìn)行零-均值規(guī)范化2.數(shù)值特征的二值化和離散化(1)二值化二值化(Binarization)是將連續(xù)取值的數(shù)據(jù)轉(zhuǎn)換為數(shù)值0和1的操作,即把數(shù)值特征轉(zhuǎn)換為二元特征的過(guò)程。sklearn.preprocessing模塊中的Binarizer類(lèi)能創(chuàng)建一個(gè)二值化對(duì)象,用于數(shù)據(jù)的二值化操作。它的基本語(yǔ)法為:Binarizer(threshold=0.0)(2)離散化離散化(Discretization)是通過(guò)將連續(xù)特征值映射到一定區(qū)間或通過(guò)使用標(biāo)稱(chēng)來(lái)轉(zhuǎn)換成離散數(shù)值或分類(lèi)特征的過(guò)程。常用的離散化方法主要包括等寬法、等頻法、以及通過(guò)聚類(lèi)、決策樹(shù)等算法進(jìn)行離散化等寬法(Fixed-Width)pandas.cut(x,bins,right=True,labels=None,retbins=False)等頻法(Fixed-Frequency)pandas.qcut(x,

q,

labels=None,

retbins=False)3.標(biāo)稱(chēng)特征的數(shù)值化處理(1)獨(dú)熱編碼它將標(biāo)稱(chēng)特征類(lèi)型編碼為二元數(shù)值特征,如0或1。OneHotEncoder(

categories='auto',

drop=None,

sparse=True,

handle_unknown='error')(2)標(biāo)簽編碼將標(biāo)稱(chēng)變量轉(zhuǎn)換為連續(xù)的數(shù)值型變量,即對(duì)離散的類(lèi)別進(jìn)行編號(hào)。LabelEncoder()演示:代碼4-13獨(dú)熱編碼、啞變量編碼和標(biāo)簽編碼代碼實(shí)現(xiàn)二、數(shù)據(jù)規(guī)約數(shù)據(jù)規(guī)約(DataReduction)是指在盡量保持?jǐn)?shù)據(jù)原始分布及特點(diǎn)的基礎(chǔ)上,降低數(shù)據(jù)規(guī)模的方法,主要包括:樣本規(guī)約,維度規(guī)約和數(shù)據(jù)壓縮等。樣本規(guī)約樣本規(guī)約,也稱(chēng)為“數(shù)據(jù)抽樣”,是指在原數(shù)據(jù)集中選取一部分具有代表性子集的過(guò)程。抽樣的方法包括:簡(jiǎn)單隨機(jī)抽樣、分層抽樣、聚類(lèi)(整群)抽樣等。(1)簡(jiǎn)單隨機(jī)抽樣sample(n,

frac,

replace,

axis,random_state)(2)分層抽樣StratifiedShuffleSplit(n_splits,test_size,train_size,random_state)演示:代碼4-14使用簡(jiǎn)單隨機(jī)抽樣和分層抽樣對(duì)30條雨傘銷(xiāo)售數(shù)據(jù)進(jìn)行抽樣2.維度規(guī)約又稱(chēng)為數(shù)據(jù)降維,目的是通過(guò)線性或非線性變換的方法,將數(shù)據(jù)投影到低維空間中,從而減少數(shù)據(jù)特征的個(gè)數(shù),主要方法分為線性方法和非線性方法。其中線性方法主要包括:主成分分析(PrincipalComponentAnalysis,PCA)奇異值分解(SingularValueDecomposition,SVD線性判別分析(LinearDiscriminantAnalysis,LDA)等,非線性方法包括:核主成分分析(KernelPCA)、多維縮放(MultidimensionalScaling,MDS)等主成分分析主成分分析是一種線性降維技術(shù),它將一組相關(guān)的p維變量轉(zhuǎn)換為一組稱(chēng)為主成分的維度較低(如k維)的不相關(guān)變量,同時(shí)盡可能多地保留原始數(shù)據(jù)集中的變化PCA(n_components=None,copy=True,whiten=False,svd_solver='auto')(2)線性判別分析LDA試圖找到一組最大化類(lèi)間區(qū)分度的特征線性組合。LinearDiscriminantAnalysis(solver='svd',shrinkage=None,priors=None,n_components=None)演示:代碼4-15使用PCA和LDA對(duì)鳶尾花數(shù)據(jù)集進(jìn)行降維處理【思考】:One-hot方法在編碼取值比較多的標(biāo)稱(chēng)變量時(shí)是否適用?【作業(yè)】:課后習(xí)題4-3。第七講:特征選擇教學(xué)目標(biāo)1.過(guò)濾法2.包裝法3.嵌入法教學(xué)難點(diǎn)REF方法教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第5章授課內(nèi)容說(shuō)明【引言】特征選擇也稱(chēng)為“屬性選擇”或“變量選擇”,是指在構(gòu)建數(shù)據(jù)挖掘模型之前,選擇重要特征子集的過(guò)程。更嚴(yán)謹(jǐn)?shù)刂v,給定數(shù)據(jù)集的d個(gè)原始特征,特征選擇方法采用一定的策略選擇其中k個(gè)重要的特征子集(k<d減少特征的數(shù)量,增強(qiáng)對(duì)數(shù)據(jù)及數(shù)據(jù)挖掘模型的理解減少數(shù)據(jù)挖掘模型的計(jì)算復(fù)雜度,降低過(guò)擬合的風(fēng)險(xiǎn)一、概述常見(jiàn)的特征選擇方法包括:過(guò)濾法(filter),包裝法(wrapper)和嵌入法(embedding)二、過(guò)濾法過(guò)濾式特征選擇方法從數(shù)據(jù)集內(nèi)在的性質(zhì)出發(fā),選擇特征的發(fā)散程度高或者它與目標(biāo)變量之間的相關(guān)度大的特征或特征子集,選擇過(guò)程與數(shù)據(jù)挖掘算法無(wú)關(guān),因此具有較好的通用性。過(guò)濾方法一般分為單變量過(guò)濾和多變量過(guò)濾兩類(lèi)。1.單變量過(guò)濾法(1)方差閾值法方差低于某個(gè)閾值的特征無(wú)法解釋目標(biāo)變量的變化規(guī)律,因此直接將它們刪除。這種方法要求特征必須為離散型變量。feature_selection模塊的VarianceThreshold類(lèi)給出了該方法的實(shí)現(xiàn)演示:代碼5-1方差閾值法進(jìn)行特征選擇卡方統(tǒng)計(jì)量法卡方統(tǒng)計(jì)量(Chi-statistics)常常用來(lái)衡量?jī)蓚€(gè)離散型變量之間的相關(guān)性,且它的值越高,兩個(gè)變量越相關(guān):χfeature_selection模塊提供了兩個(gè)類(lèi)(SelectKBest和SelectPercentile)和一個(gè)函數(shù)(chi2)用于支持基于卡方統(tǒng)計(jì)量的特征選擇。selector=SelectKBest(chi2,k=2)演示:代碼5-2基于卡方統(tǒng)計(jì)量的特征選擇(3)互信息法互信息(MutualInformation,MI)又稱(chēng)為“相對(duì)熵”,它是兩個(gè)變量間的相互依賴(lài)程度的度量,定義為:Ifeature_selection模塊中,提供了mutual_info_classif和mutual_info_regression兩個(gè)函數(shù),分別實(shí)現(xiàn)了分類(lèi)任務(wù)和回歸任務(wù)中的互信息的計(jì)算selector=SelectKBest(mutual_info_classif,k=2)(4)過(guò)濾法的優(yōu)缺點(diǎn)分析(5)案例分析:Wine數(shù)據(jù)集特征選擇代碼:5-7不同特征選擇方法在Wine數(shù)據(jù)集的比較(分類(lèi))包裝法包裝法(Wrapper)直接采用數(shù)據(jù)挖掘算法在特征子集上達(dá)到的效果對(duì)該子集的進(jìn)行評(píng)價(jià)。它將特征選擇視為搜索問(wèn)題,目標(biāo)是搜索出一個(gè)最佳的特征子集,使得數(shù)據(jù)挖掘算法在該子集上取得最優(yōu)的性能,包括:遞歸特征消除(RFE)方法序列前向選擇(SFS)方法序列后向選擇(SBS)方法(1)遞歸特征消除(RecursiveFeatureElimination,RFE)它是一種局部搜索最優(yōu)特征子集的貪心搜索方法,從全部特征開(kāi)始,建立數(shù)據(jù)挖掘模型,將模型識(shí)別的不重要特征剔除,然后利用剩余特征迭代地重新訓(xùn)練模型,直到剩余指定數(shù)量的特征。它要求所依賴(lài)的數(shù)據(jù)挖掘算法在訓(xùn)練時(shí)能夠給出特征的重要性系數(shù),作為每輪迭代剔除特征的依據(jù)。例如,決策樹(shù)和隨機(jī)森林的feature_importances_屬性、線性回歸模型和線性支持向量機(jī)的coef_屬性在scikit-learn庫(kù)的feature_selection模塊中,提供了RFE特征選擇方法的實(shí)現(xiàn):sklearn.feature_selection.RFE(estimator,

n_features_to_select=None)演示:代碼5-8在Wine數(shù)據(jù)集上實(shí)現(xiàn)遞歸特征消除的特征選擇(2)其它Wrapper方法簡(jiǎn)單介紹(3)包裝法的優(yōu)缺點(diǎn)分析:優(yōu)點(diǎn):包裝法的特征選擇過(guò)程與數(shù)據(jù)挖掘任務(wù)相關(guān),它使用后者的評(píng)價(jià)標(biāo)準(zhǔn)來(lái)對(duì)特征子集評(píng)分,使得選擇結(jié)果是數(shù)據(jù)挖掘算法在其上表現(xiàn)最佳時(shí)的特征子集。并且,包裝式方法對(duì)數(shù)挖掘模型沒(méi)有過(guò)多要求,適用性比較廣。缺點(diǎn):包裝法是一種迭代式方法,對(duì)每一組特征子集都需要建立數(shù)據(jù)挖掘模型,在特征數(shù)量較多時(shí),計(jì)算量非常大,效率遠(yuǎn)比過(guò)濾方法低。嵌入法:嵌入法(Embeding)將特征選擇過(guò)程完全融入到數(shù)據(jù)挖掘模型的構(gòu)建過(guò)程中,在創(chuàng)建模型時(shí)即完成了對(duì)特征子集的選擇。與過(guò)濾法相比,它們由于是數(shù)據(jù)挖掘模型的角度選擇特征子集,往往具有更好的性能;與包裝方法相比,它們省卻了迭代式的搜索過(guò)程,計(jì)算效率更高。嵌入法是目前應(yīng)用最廣泛的特征選擇方法,彌補(bǔ)了前面兩種特征選擇方法的不足。基于正則化線性模型的方法基于樹(shù)的方法(1)基于正則模型的方法:對(duì)于多元線性回歸模型、Logistic回歸模型、Lasso回歸模型、嶺回歸模型等線性模型,變量x的回歸系數(shù)越大,表示它對(duì)于目標(biāo)y的判別為越重要。因此,可以將回歸系數(shù)作為特征選擇的依據(jù)。y在feature_selection模塊中實(shí)現(xiàn)了SelectFromModel類(lèi),實(shí)現(xiàn)嵌入式特征選擇。sklearn.feature_selection.SelectFromModel(estimator,

threshold=None)(2)基于樹(shù)模型的方法基于樹(shù)(tree)的數(shù)據(jù)挖掘模型,如決策樹(shù)、隨機(jī)森林、GBDT、XGboost在構(gòu)建模型中的樹(shù)的過(guò)程中,特征被選擇用于構(gòu)造屬性測(cè)試條件次數(shù)越多,表明它們區(qū)分?jǐn)?shù)據(jù)的能力越強(qiáng),因而越重要。演示:代碼5-11使用決策樹(shù)模型進(jìn)行嵌入法特征選擇嵌入法的優(yōu)缺點(diǎn)分析【思考】:思考如何利用線性支持向量機(jī)實(shí)現(xiàn)嵌入式特征選擇,并給出其實(shí)現(xiàn)【作業(yè)】:課后習(xí)題5-4。第八講:基礎(chǔ)分類(lèi)模型及回歸(一)教學(xué)目標(biāo)1.bayes模型2.knn模型3.決策樹(shù)模型教學(xué)難點(diǎn)決策樹(shù)的構(gòu)建方法教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第6章授課內(nèi)容說(shuō)明【引言】在有監(jiān)督學(xué)習(xí)中,訓(xùn)練數(shù)據(jù)集中的每個(gè)數(shù)據(jù)對(duì)象(或稱(chēng)為數(shù)據(jù)樣本)均具有對(duì)應(yīng)的目標(biāo)值。當(dāng)目標(biāo)值是離散的類(lèi)別標(biāo)簽(label)時(shí),這是一個(gè)分類(lèi)(classification)任務(wù);當(dāng)目標(biāo)值是連續(xù)的實(shí)數(shù)值時(shí),這是回歸(regression)任務(wù)。在數(shù)據(jù)上建立數(shù)據(jù)挖掘模型,用于預(yù)測(cè)其它人對(duì)咖啡新品的態(tài)度(“喜歡”或“不喜歡”),這個(gè)模型就是一個(gè)典型的分類(lèi)模型;在數(shù)據(jù)集上建立模型用于預(yù)測(cè)一個(gè)新用戶(hù)對(duì)該款飲料的月均消費(fèi)金額,也即目標(biāo)是連續(xù)值,這個(gè)模型就是一個(gè)典型的回歸模型。一、基本理論1.分類(lèi)模型的定義分類(lèi)過(guò)程包含兩個(gè)步驟:(1)模型訓(xùn)練階段:使用特定的算法在訓(xùn)練集上學(xué)習(xí)數(shù)據(jù)X和類(lèi)別y之間的映射函數(shù),即,y=f(X),我們稱(chēng)之為“分類(lèi)模型”或(2)模型預(yù)測(cè)階段:對(duì)于來(lái)自同一應(yīng)用場(chǎng)景的新數(shù)據(jù)對(duì)象X’,我們可以使用分類(lèi)模型判斷其所屬的類(lèi)別y’,從而做出“預(yù)測(cè)(prediction)”。2.過(guò)擬合和欠擬合模型在訓(xùn)練集上的預(yù)測(cè)值和目標(biāo)值差異比較大,稱(chēng)模型出現(xiàn)了“欠擬合(under-fitting)”如果模型比較好地?cái)M合了訓(xùn)練數(shù)據(jù),但在測(cè)試數(shù)據(jù)集預(yù)測(cè)效果很差,我們稱(chēng)這種現(xiàn)象為“過(guò)擬合(over-fitting)”,3.二分類(lèi)和多分類(lèi)4.線性和非線性分類(lèi)器二、樸素貝葉斯分類(lèi)器樸素貝葉斯分類(lèi)器是一種基于貝葉斯理論的簡(jiǎn)單的分類(lèi)模型。它以一個(gè)樸素的條件獨(dú)立假設(shè)為前提:相對(duì)于類(lèi)別標(biāo)簽,特征之間相互獨(dú)立?;驹恚航o定數(shù)據(jù)集D={(x,ci)}包含n個(gè)數(shù)據(jù)對(duì)象,它的類(lèi)別集合C包含k個(gè)類(lèi)別,即C={c1對(duì)于新來(lái)數(shù)據(jù)x',對(duì)于每個(gè)類(lèi)別c∈C,樸素貝葉斯分類(lèi)器需要計(jì)算數(shù)據(jù)對(duì)象屬于類(lèi)別c的概率,即P(c|c引入條件獨(dú)立性假設(shè):x中的所有特征x1c對(duì)于特征的條件概率,有兩種計(jì)算方式:當(dāng)特征xiP當(dāng)特征xiP實(shí)現(xiàn):Python的Scikit-learn模塊提供了多個(gè)版本樸素貝葉斯算法的實(shí)現(xiàn)。其中,對(duì)于連續(xù)數(shù)值計(jì)算條件概率的,稱(chēng)為高斯樸素貝葉斯(GaussianNa?veBayes),對(duì)于分類(lèi)屬性,稱(chēng)為多項(xiàng)式樸素貝葉斯(MultinomialNa?veBayes)。(1)高斯貝葉斯:GaussianNB(priors=None,

var_smoothing=1e-09)(2)多項(xiàng)式貝葉斯MultinomialNB(alpha=1.0,

class_prior=None)演示:代碼6-1高斯樸素貝葉斯在UniversalBank數(shù)據(jù)集上的分類(lèi)三、KNN分類(lèi)器KNN模型從訓(xùn)練集發(fā)現(xiàn)和x'最相似的k個(gè)數(shù)據(jù)對(duì)象作為其近鄰。根據(jù)這k個(gè)近鄰對(duì)象的類(lèi)別標(biāo)簽進(jìn)行決策,按照少數(shù)服從多數(shù)的原則將x分析:算法6-1.KNN模型有兩個(gè)關(guān)鍵因素:數(shù)據(jù)的距離或相似性度量方法和參數(shù)k的選取。對(duì)于數(shù)值型的數(shù)據(jù)我們常采用歐式距離,或者余弦相似度。對(duì)于參數(shù)k的選擇,過(guò)大的k值或過(guò)小的k值都是不可取的,通常需要通過(guò)實(shí)驗(yàn)比選的方法選擇最優(yōu)的k值。Scikit-learn的neighbors模塊提供了的KNN模型的實(shí)現(xiàn),即KNeighborsClassifier類(lèi),它的基本語(yǔ)法如下: KNeighborsClassifier(n_neighbors=5,

weights='uniform',

algorithm='auto',

metric='minkowski')四、決策樹(shù)決策樹(shù)是一種類(lèi)似流程圖的樹(shù)結(jié)構(gòu),包括一個(gè)根節(jié)點(diǎn)、若干內(nèi)部節(jié)點(diǎn)和若干葉子節(jié)點(diǎn)。根節(jié)點(diǎn)和內(nèi)部節(jié)點(diǎn)都對(duì)應(yīng)著一個(gè)屬性(特征),節(jié)點(diǎn)的分支對(duì)應(yīng)屬性取值,葉子節(jié)點(diǎn)對(duì)應(yīng)著決策結(jié)果。給定一個(gè)測(cè)試數(shù)據(jù),決策過(guò)程就是在決策樹(shù)上的一條從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑。最終根據(jù)葉子節(jié)點(diǎn)表示的類(lèi)別將測(cè)試數(shù)據(jù)分類(lèi)。算法步驟討論:算法6-2屬性選擇方法常用的屬性選擇方法有四種:信息增益(InformationGain)、增益率(GainRatio)、基尼(Gini)指數(shù)和信息熵(Entropy)。(1)信息增益屬性A的信息增益為:Gain(2)信息增益率信息增益的不足是更傾向于選擇具有較多屬性值的屬性。增益率可以克服這個(gè)問(wèn)題。增益率使用屬性的“分裂信息熵”對(duì)信息增益做了規(guī)范化。GainRatio(3)基尼指數(shù)(Gini)基尼指數(shù)用于度量數(shù)據(jù)集的不純度(Impurity),也即數(shù)據(jù)標(biāo)簽的不一致性。例子:信息增益計(jì)算第6.4.3節(jié).4.剪枝在創(chuàng)建決策樹(shù)時(shí),由于存在數(shù)據(jù)中的噪聲、離群點(diǎn),樹(shù)的一些分支是因?yàn)閿M合噪聲而產(chǎn)生的,也即,發(fā)生了過(guò)擬合。剪枝(treepruning)方法可以一定程度解決過(guò)擬合問(wèn)題。過(guò)濾式特征選擇方法從數(shù)據(jù)集內(nèi)在的性質(zhì)出發(fā),選擇特征的發(fā)散程度高或者它與目標(biāo)變量之間的相關(guān)度大的特征或特征子集,選擇過(guò)程與數(shù)據(jù)挖掘算法無(wú)關(guān),因此具有較好的通用性。過(guò)濾方法一般分為單變量過(guò)濾和多變量過(guò)濾兩類(lèi)。5.CART決策樹(shù)CART樹(shù)的主要特點(diǎn)還包括:CART產(chǎn)生的是一棵二叉樹(shù)。即每個(gè)非葉子節(jié)點(diǎn)只有兩個(gè)分支。CART不但可以用于分類(lèi)任務(wù),還可以用于回歸任務(wù)。6.實(shí)現(xiàn):Scikit-learn的tree模塊提供了DecisionTreeClassifier類(lèi),可以輕松創(chuàng)建一個(gè)CART決策樹(shù)模型。DecisionTreeClassifier(criterion='gini',

max_depth=None,

min_samples_split=2,

min_samples_leaf=1,

max_leaf_nodes=None)7.演示:代碼6-5使用CART決策樹(shù)在UniversalBank數(shù)據(jù)集上分類(lèi)【思考】:有哪些途徑可以避免過(guò)擬合現(xiàn)象?【作業(yè)】:對(duì)于Iris數(shù)據(jù)集,訓(xùn)練一棵CART決策樹(shù),并適用Graphviz包可視化該樹(shù)。第九講:基礎(chǔ)分類(lèi)模型及回歸(二)教學(xué)目標(biāo)1.人工神經(jīng)網(wǎng)絡(luò)2.支持向量機(jī)3.模型的性能評(píng)估方法教學(xué)難點(diǎn)BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建和訓(xùn)練教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第6章授課內(nèi)容說(shuō)明【引言】人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetwork,ANN)是一種模仿動(dòng)物大腦的神經(jīng)元網(wǎng)絡(luò)行為特征,進(jìn)行分布式并行信息處理的數(shù)學(xué)模型。其模型結(jié)構(gòu)大體可以分為前饋型網(wǎng)絡(luò)(也稱(chēng)為多層感知機(jī)網(wǎng)絡(luò))和反饋型網(wǎng)絡(luò)(也稱(chēng)為Hopfield網(wǎng)絡(luò))。一、人工神經(jīng)網(wǎng)絡(luò)1.簡(jiǎn)介1958年麻省理工學(xué)院的FrankRosenblatt教授提出了感知機(jī)(perceptron)網(wǎng)絡(luò),也稱(chēng)為單層神經(jīng)網(wǎng)絡(luò)。其基本原理是:感知機(jī)的輸入是向量x=(x1,…,xmsyfs=1,多層感知機(jī)其實(shí)就是在網(wǎng)絡(luò)中加入隱層。輸入層的數(shù)據(jù)先被送到隱層神經(jīng)元進(jìn)行計(jì)算,隱層的輸出又作為下一層(另外一個(gè)隱層或者輸出層)的輸入。2.BP神經(jīng)網(wǎng)絡(luò)當(dāng)多層感知機(jī)的隱層增加時(shí),訓(xùn)練網(wǎng)絡(luò)的目標(biāo)函數(shù)是一個(gè)非凸(non-convex)的函數(shù),為此,提出了反向傳播(BackPropagation,BP)的方法訓(xùn)練網(wǎng)絡(luò),它基于梯度下降的思想迭代地對(duì)網(wǎng)絡(luò)的權(quán)重和偏置參數(shù)進(jìn)行訓(xùn)練,我們也把采用BP算法訓(xùn)練的多層感知機(jī)網(wǎng)絡(luò)稱(chēng)為“BP神經(jīng)網(wǎng)絡(luò)”。通常,BP神經(jīng)網(wǎng)絡(luò)是淺層網(wǎng)絡(luò),它們通常只有有限個(gè)隱層,它的每一層有若干神經(jīng)元,層和層之間的神經(jīng)元通過(guò)帶權(quán)重的邊相連。(1)神經(jīng)元經(jīng)過(guò)激活函數(shù)f的處理,神經(jīng)元的輸出為:y=(2)網(wǎng)絡(luò)結(jié)構(gòu)(3)激活函數(shù)ReLU函數(shù):

sigmoid函數(shù):ftanh函數(shù):fsoftmax函數(shù):σ線性激活函數(shù):f(4)實(shí)現(xiàn):Scikit-learn的neural_network模塊實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)。當(dāng)進(jìn)行分類(lèi)任務(wù)時(shí),可以使用類(lèi)MLPClassifier創(chuàng)建一個(gè)BP神經(jīng)網(wǎng)絡(luò)模型,它的基本語(yǔ)法為:MLPClassifier(hidden_layer_sizes=100,

activation='relu',

solver='adam',

learning_rate='constant')演示:代碼6-6使用BP神經(jīng)網(wǎng)絡(luò)在UniversalBank數(shù)據(jù)集上分類(lèi)二、支持向量機(jī)支持向量機(jī)(SVM)由Vapnik等在1995年提出。它是在統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)上發(fā)展出的一種新的機(jī)器學(xué)習(xí)模型。SVM旨在解決小樣本情況下的分類(lèi)問(wèn)題,通常在訓(xùn)練數(shù)據(jù)相對(duì)較少情況下和文本分類(lèi)問(wèn)題中有明顯的優(yōu)勢(shì)。概念:特征映射(featuremapping)特征空間(featurespace)核或核函數(shù)基本原理SVM在訓(xùn)練時(shí)就是尋找一個(gè)能夠完美劃分不同類(lèi)別,且離數(shù)據(jù)點(diǎn)最遠(yuǎn)的決策超平面。從決策超平面到最近數(shù)據(jù)點(diǎn)的距離和稱(chēng)為“分類(lèi)間隔(margin)”。把位于輔助超平面上的少量數(shù)據(jù)稱(chēng)為“支持向量(supportvector)”。支持向量機(jī)的決策超平面可以定義為:即,決策函數(shù)為:f(標(biāo)準(zhǔn)線性SVM的優(yōu)化目標(biāo)函數(shù):尋找ω和b使得:

s.t.

對(duì)偶優(yōu)化問(wèn)題:max此時(shí),決策函數(shù)為:f實(shí)現(xiàn)Scikit-learn的svm模塊提供了三個(gè)類(lèi)實(shí)現(xiàn)支持向量模型,包括:SVC,NuSVC和LinearSVC。其中,標(biāo)準(zhǔn)的SVC實(shí)現(xiàn)類(lèi)為:SVC(C=1.0,

kernel='rbf',

degree=3,

gamma='scale',class_weight=None,

decision_function_shape='ovr')三、分類(lèi)模型的性能評(píng)估方法性能評(píng)價(jià)指標(biāo)針對(duì)分類(lèi)模型,常用的性能評(píng)價(jià)指標(biāo)包括:Accuracy(準(zhǔn)確度)、Precision(精準(zhǔn)率或查準(zhǔn)率)、Recall(召回率或查全率)、F1和Fβ對(duì)于二分類(lèi)問(wèn)題,即數(shù)據(jù)集中的類(lèi)別標(biāo)簽只有兩類(lèi)(正例yes和反例no)。每個(gè)數(shù)據(jù)對(duì)要么屬于正例,要么屬于反例,此時(shí),數(shù)據(jù)對(duì)象被模型分類(lèi)后的情況有以下四種:真正例(Truepositives,TP):正例數(shù)據(jù)對(duì)象被分類(lèi)器識(shí)別為正例。真負(fù)例(Truenegative,TN):反例數(shù)據(jù)對(duì)象被分類(lèi)器識(shí)別為反例。假正例(Falsepositive,FP):反例數(shù)據(jù)對(duì)象被分類(lèi)器識(shí)別為正例。假負(fù)例(Falsenegative,FN):正例數(shù)據(jù)對(duì)象被分類(lèi)器識(shí)別為反例。混淆矩陣的概念。準(zhǔn)確度(accuracy)測(cè)試集中被模型正確分類(lèi)的數(shù)據(jù)占總數(shù)據(jù)的百分比Accuracy=精準(zhǔn)率(Precision)被模型識(shí)別為正例的數(shù)據(jù)對(duì)象中是真正例的比例Precision=召回率(Recall)正例數(shù)據(jù)對(duì)象被模型正確分類(lèi)的比例Recall=Fβ它綜合考慮了精準(zhǔn)率和召回率指標(biāo)的優(yōu)點(diǎn)。FROC(該指標(biāo)計(jì)算真正率(TruePositiveRate,TPR)和假正率(FalsePositiveRate,FPR)之比。AUCROC曲線下方面積的大小來(lái)得到具體的值,稱(chēng)為AUC(AreaUnderCurve)【思考】:在SVC模型中,如果發(fā)現(xiàn)模型過(guò)擬合,即模型訓(xùn)練誤差很小,但在校驗(yàn)集上模型性能不好,此時(shí)應(yīng)該如何調(diào)整參數(shù)C?【作業(yè)】:在Wine數(shù)據(jù)集中,訓(xùn)練一棵BP神經(jīng)網(wǎng)絡(luò)分類(lèi)模型,并采用多種指標(biāo)評(píng)價(jià)模型的性能。第十講:基礎(chǔ)分類(lèi)模型及回歸(三)教學(xué)目標(biāo)1.案例:分類(lèi)模型綜合應(yīng)用2.回歸模型3.模型的性能評(píng)估方法教學(xué)難點(diǎn)決策樹(shù)回歸模型的原理教學(xué)方法講授法、課堂演示法、案例分析法學(xué)時(shí)3教學(xué)資源教材第6章授課內(nèi)容說(shuō)明一、案例分析:信用評(píng)分模型的構(gòu)建1.案例描述訓(xùn)練集有15萬(wàn)條數(shù)據(jù)對(duì)象,測(cè)試集有101503條數(shù)據(jù)對(duì)象。數(shù)據(jù)的特征共有11個(gè),均為數(shù)值類(lèi)型,目標(biāo)值用于0或1表示。探索性數(shù)據(jù)分析和預(yù)處理模型評(píng)估和訓(xùn)練CART決策樹(shù)支持向量機(jī)二、回歸模型1.線性回歸線性回歸模型是一組輸入向量(特征)x的線性組合,其數(shù)學(xué)模型如下:fScikit-learn的sklearn.linear_model模塊提供了LinearRegression類(lèi)來(lái)實(shí)現(xiàn)線性回歸模型:LinearRegression(fit_intercept=True,

positive=False)2.CART決策樹(shù)回歸CART決策樹(shù)的全稱(chēng)是“分類(lèi)和回歸樹(shù)”。它不但可以實(shí)現(xiàn)分類(lèi)任務(wù),也可以實(shí)現(xiàn)回歸任務(wù)。當(dāng)使用CART決策樹(shù)實(shí)現(xiàn)回歸任務(wù)時(shí),使用sklearn.tree模塊中的DecisionTreeRegressor類(lèi),它的基本語(yǔ)法為:DecisionTreeRegressor(criterion='mse',

max_depth=None,

min_samples_split=2,

min_samples_leaf=1,

max_leaf_nodes=None,

random_state=None)演示:代碼6-16基于CART決策樹(shù)回歸模型的葡萄酒質(zhì)量預(yù)測(cè)3.BP神經(jīng)網(wǎng)絡(luò)回歸BP神經(jīng)網(wǎng)絡(luò)同樣也可以實(shí)現(xiàn)回歸任務(wù),sklearn.neural_network模塊中MLPRegressor類(lèi)來(lái)創(chuàng)建一個(gè)BP神經(jīng)網(wǎng)絡(luò)回歸模型。支持向量機(jī)回歸支持向量機(jī)也提供了回歸預(yù)測(cè)的功能,稱(chēng)為支持向量回歸(SupportVectorRegression,SVR)。支持向量回歸又稱(chēng)為“ε-SVR”5.演示:代碼6-16基于CART決策樹(shù)回歸模型的葡萄酒質(zhì)量預(yù)測(cè)代碼6-17基于BP神經(jīng)網(wǎng)絡(luò)回歸模型的葡萄酒質(zhì)量預(yù)測(cè)代碼6-18基于SVR模型的葡萄酒質(zhì)量預(yù)測(cè)【思考】:在SVC模型中,如果發(fā)現(xiàn)模型過(guò)擬合,即模型訓(xùn)練誤差很小,但在校驗(yàn)集上模型性能不好,此時(shí)應(yīng)該如何調(diào)整參數(shù)C?【作業(yè)】:在Wine數(shù)據(jù)集中,訓(xùn)練一棵BP神經(jīng)網(wǎng)絡(luò)分類(lèi)模型,并采用多種指標(biāo)評(píng)價(jià)模型的性能。第十一講:集成技術(shù)教學(xué)目標(biāo)1.Bagging,boosting2.隨機(jī)森林3.提升樹(shù)教學(xué)難點(diǎn)1.隨機(jī)森林2.提升樹(shù)教學(xué)方法講授法、課堂演示法學(xué)時(shí)3教學(xué)資源教材第7章授課內(nèi)容說(shuō)明一、基本的集成技術(shù)集成技術(shù)是數(shù)據(jù)挖掘中的一個(gè)重要研究領(lǐng)域。它的特點(diǎn)是,不采用單一的模型進(jìn)行分類(lèi),而是通過(guò)構(gòu)造多個(gè)獨(dú)立模型的組合,來(lái)建立一個(gè)性能更優(yōu)的分類(lèi)器或回歸器?;镜募杉夹g(shù)主要包含三種:裝袋(Bagging)、提升(Boosting)和堆疊(Stacking)。1.Bagging裝袋方法先從訓(xùn)練集D中對(duì)數(shù)據(jù)進(jìn)行有放回的抽樣,獲得一個(gè)規(guī)模與原數(shù)據(jù)集一樣的訓(xùn)練集Dk,這樣的抽樣總共進(jìn)行K次;然后在每一個(gè)訓(xùn)練集Dk上訓(xùn)練一個(gè)分類(lèi)模型M算法7-1的介紹。Scikit-learn的sklearn.ensemble模塊實(shí)現(xiàn)了BaggingClassifier類(lèi)能輕松創(chuàng)建一個(gè)裝袋模型。演示:代碼7-1使用裝袋模型在UniversalBank數(shù)據(jù)集上分類(lèi)。2.Boosting訓(xùn)練集中的每條數(shù)據(jù)被賦予了權(quán)重,表示它們被重視的程度。權(quán)重越高,它們被錯(cuò)分的代價(jià)越高,迫使分類(lèi)器將它們正確的分類(lèi)。Adaboost是第一種實(shí)用化的提升算法。算法7-2的介紹。Scikit-learn的sklearn.ensemble模塊實(shí)現(xiàn)了Adaboost算法。演示:代碼7-2使用Adaboost模型在UniversalBank數(shù)據(jù)集上分類(lèi)。3.Stacking堆疊(Stacking),也稱(chēng)作元集成(metaensembling)。與裝袋、提升算法不同,堆疊是一種將多種不同類(lèi)型的分類(lèi)器組合在一起的集成技術(shù)。Scikit-learn的sklearn.ensemble模塊提供了StackingClassifier類(lèi)來(lái)完成基于堆疊的集成分類(lèi)模型。演示:代碼7-3使用堆疊

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論