




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章pandas數(shù)據(jù)處理與預(yù)處理pandas作為Python中最流行的數(shù)據(jù)處理庫之一,提供了豐富的數(shù)據(jù)結(jié)構(gòu)和功能,能夠高效地處理和分析大規(guī)模數(shù)據(jù)集。本章旨在深入探討pandas在數(shù)據(jù)處理和預(yù)處理中的關(guān)鍵作用,從pandas的基礎(chǔ)知識、語法和數(shù)據(jù)讀寫入手,逐步介紹如何利用pandas進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)合并、缺失值處理、排序和匯總等重要步驟。通過學(xué)習(xí)本章內(nèi)容,將掌握利用pandas進(jìn)行數(shù)據(jù)處理和預(yù)處理的技能,為后續(xù)的數(shù)據(jù)分析和建模工作打下堅(jiān)實(shí)基礎(chǔ)。第5章pandas數(shù)據(jù)處理與預(yù)處理5.1認(rèn)識pandas5.2pandas語法5.3pandas讀寫數(shù)據(jù)5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處理5.5本章小結(jié)5.1認(rèn)識pandas5.1認(rèn)識pandas5.1.1pandas簡介5.1.2pandas的安裝與使用5.1.1pandas簡介pandas是一種基于numpy的強(qiáng)大工具,旨在解決數(shù)據(jù)分析任務(wù)。它集成了豐富的庫和標(biāo)準(zhǔn)數(shù)據(jù)模型,為高效地操作大型數(shù)據(jù)集提供了必要的工具。pandas提供了豐富的函數(shù)和方法,能夠快速便捷地處理數(shù)據(jù)。簡而言之,可以將pandas視為Python版的Excel。它為數(shù)據(jù)分析師和科學(xué)家們提供了一個(gè)靈活且高效的平臺,用于數(shù)據(jù)的清洗、轉(zhuǎn)換、處理和分析。5.1認(rèn)識pandas5.1.2pandas的安裝與使用因?yàn)閜andas是Python的第三方庫,所以使用前需要先安裝,打開命令行或終端窗口,可以直接使用pipinstallpanas命令安裝,該命令會(huì)自動(dòng)安裝pandas以及相關(guān)組件。在Python腳本或交互式環(huán)境中,直接使用importpandasaspd導(dǎo)入pandas庫,后續(xù)代碼再使用該庫的時(shí)候直接用其簡寫pd就可以了。5.1認(rèn)識pandas5.2pandas語法在pandas庫中有兩個(gè)最基本的數(shù)據(jù)類型:Series和DataFrame。其中Series數(shù)據(jù)類型表示一維數(shù)組,與numpy中的一維array類似,并且二者與python中基本的數(shù)據(jù)結(jié)構(gòu)List也很相近;而DataFrame數(shù)據(jù)類型代表二維表格型數(shù)據(jù)結(jié)構(gòu),也可以將其理解為Series的容器。5.2pandas語法5.2.1Series類型5.2.2DataFrame類型5.2.3DataFrame數(shù)據(jù)計(jì)算5.2.1Series類型Series是Pandas庫中的一種數(shù)據(jù)結(jié)構(gòu),類似于一維數(shù)組或列表,但它附帶了索引,可以存儲任意數(shù)據(jù)類型。5.2pandas語法5.2.1Series類型1.創(chuàng)建Series2.Series數(shù)據(jù)的索引運(yùn)算3.條件選擇運(yùn)算4.算術(shù)運(yùn)算5.2pandas語法1.創(chuàng)建Series創(chuàng)建一個(gè)Series的基本語法如下:importpandasaspds=pd.Series(data,index)5.2pandas語法1.創(chuàng)建Series(1)用列表創(chuàng)建Series(2)用數(shù)組創(chuàng)建Series(3)用字典創(chuàng)建Series5.2pandas語法(1)用列表創(chuàng)建Series【例5-1】用列表創(chuàng)建Series的代碼示例5.2pandas語法(2)用數(shù)組創(chuàng)建Series【例5-2】用數(shù)組創(chuàng)建Series的代碼示例5.2pandas語法(3)用字典創(chuàng)建Series【例5-3】用字典創(chuàng)建Series的代碼示例5.2pandas語法2.Series數(shù)據(jù)的索引運(yùn)算在pandas中,使用Series的索引類似于使用字典的鍵來獲取對應(yīng)的值,能夠快速定位和提取Series中的特定數(shù)據(jù),這是一種常見且重要的操作,極大地方便了處理和操作數(shù)據(jù)中的特定元素。5.2pandas語法2.Series數(shù)據(jù)的索引運(yùn)算(1)單個(gè)索引運(yùn)算(2)多個(gè)索引運(yùn)算5.2pandas語法(1)單個(gè)索引運(yùn)算【例5-4】獲取Series中某個(gè)值的代碼示例5.2pandas語法(2)多個(gè)索引運(yùn)算【例5-5】獲取Series中多個(gè)值的代碼示例5.2pandas語法3.條件選擇運(yùn)算在pandas中,可以根據(jù)條件表達(dá)式來篩選出滿足條件的數(shù)據(jù),并返回一個(gè)新的Series,其中只包含符合條件的元素。這種運(yùn)算在pandas中非常常見,用于根據(jù)特定條件選擇需要的數(shù)據(jù),是數(shù)據(jù)分析和處理中的重要技術(shù)之一。5.2pandas語法【例5-6】Series中條件選擇運(yùn)算的代碼示例5.2pandas語法4.算術(shù)運(yùn)算(1)元素級的算術(shù)運(yùn)算(2)Series數(shù)據(jù)級的算術(shù)運(yùn)算5.2pandas語法(1)元素級的算術(shù)運(yùn)算元素級的算術(shù)運(yùn)算是把series數(shù)據(jù)中的每一個(gè)數(shù)值元素與某一個(gè)數(shù)值進(jìn)行相應(yīng)的算術(shù)運(yùn)算?!纠?-7】元素級算術(shù)運(yùn)算的代碼示例5.2pandas語法(2)Series數(shù)據(jù)級的算術(shù)運(yùn)算Series數(shù)據(jù)級的算術(shù)運(yùn)算過程是根據(jù)索引對相應(yīng)的數(shù)據(jù)進(jìn)行計(jì)算,結(jié)果將會(huì)以浮點(diǎn)數(shù)的形式存儲,以避免失去精度。如果在兩個(gè)Series里找不到相同的index,對應(yīng)的位置就返回一個(gè)空值NaN。算術(shù)運(yùn)算符的符號及含義見表5-1。5.2pandas語法(2)Series數(shù)據(jù)級的算術(shù)運(yùn)算表5-1算術(shù)運(yùn)算符的符號及含義【例5-8】Series中加法運(yùn)算代碼示例5.2pandas語法表5-1算術(shù)運(yùn)算符的符號及含義5.2pandas語法【例5-8】Series中加法運(yùn)算代碼示例5.2pandas語法5.2.2DataFrame類型DataFrame是一個(gè)來自pandas庫的數(shù)據(jù)結(jié)構(gòu),用于處理和分析數(shù)據(jù)。它類似于電子表格或數(shù)據(jù)庫表,可以存儲多種類型的數(shù)據(jù),并提供了各種功能來操作和分析數(shù)據(jù)。DataFrame通常由行和列組成,每一行可以包含不同類型的數(shù)據(jù)(整數(shù)、浮點(diǎn)數(shù)、字符串等),并且可以對數(shù)據(jù)進(jìn)行索引、篩選、分組、合并等操作。DataFrame的靈活性使得它成為數(shù)據(jù)科學(xué)和數(shù)據(jù)分析中常用的工具之一。5.2pandas語法5.2.2DataFrame類型1.DataFrame的創(chuàng)建2.DataFrame的索引與查詢3.元數(shù)據(jù)訪問4.條件查詢5.2pandas語法1.DataFrame的創(chuàng)建(1)從字典創(chuàng)建(2)從列表創(chuàng)建(3)從numpy數(shù)組創(chuàng)建(4)從Series創(chuàng)建5.2pandas語法(1)從字典創(chuàng)建可以使用一個(gè)字典,其中鍵表示列名,值表示該列的數(shù)據(jù)。【例5-9】利用字典創(chuàng)建DataFrame的代碼示例5.2pandas語法(2)從列表創(chuàng)建可以使用一個(gè)包含列表的列表,內(nèi)部列表代表每一行的數(shù)據(jù)?!纠?-10】利用列表創(chuàng)建DataFrame的代碼示例5.2pandas語法(3)從numpy數(shù)組創(chuàng)建可以使用numpy數(shù)組創(chuàng)建DataFrame?!纠?-11】利用numpy數(shù)組創(chuàng)建DataFrame的代碼示例5.2pandas語法(4)從Series創(chuàng)建可以使用pandas的Series對象創(chuàng)建DataFrame?!纠?-12】利用Series對象創(chuàng)建DataFrame的代碼示例5.2pandas語法2.DataFrame的索引與查詢在DataFrame中進(jìn)行索引和查詢操作是非常常見的,可以通過行索引、列索引或條件過濾來獲取所需的數(shù)據(jù)。5.2pandas語法2.DataFrame的索引與查詢(1)列索引(2)行索引5.2pandas語法(1)列索引對列可以進(jìn)行單列索引、多列索引、列切片等方式獲取列數(shù)據(jù)。5.2pandas語法(1)列索引【例5-13】單列索引代碼示例【例5-14】多列索引代碼示例【例5-15】列切片代碼示例5.2pandas語法【例5-13】單列索引代碼示例5.2pandas語法【例5-14】多列索引代碼示例5.2pandas語法【例5-15】列切片代碼示例5.2pandas語法(2)行索引當(dāng)需要獲取DataFrame中的一行數(shù)據(jù)時(shí),可以使用loc[]和iloc[]按照標(biāo)簽名和位置進(jìn)行引用。5.2pandas語法【例5-16】利用loc[]和iloc[]進(jìn)行引用代碼示例5.2pandas語法3.元數(shù)據(jù)訪問在訪問DataFrame類型時(shí),可以使用index、columns、values等屬性來獲取DataFrame的索引、列標(biāo)簽和數(shù)據(jù)值,這些屬性提供了訪問DataFrame元數(shù)據(jù)的便捷方式。index:獲取DataFrame的行索引,即行標(biāo)簽的集合。columns:獲取DataFrame的列標(biāo)簽,即列的名稱。values:獲取DataFrame中的數(shù)據(jù)值,以numpy數(shù)組的形式返回。5.2pandas語法【例5-17】元數(shù)據(jù)訪問的代碼示例5.2pandas語法4.條件查詢可使用布爾條件來過濾DataFrame中的數(shù)據(jù)。5.2pandas語法【例5-18】條件查詢的代碼示例5.2pandas語法5.2.3DataFrame數(shù)據(jù)計(jì)算DataFrame數(shù)據(jù)計(jì)算是指在DataFrame中進(jìn)行數(shù)值計(jì)算、統(tǒng)計(jì)計(jì)算或其他類型的數(shù)據(jù)操作。在DataFrame數(shù)據(jù)計(jì)算過程中,可以使用各種方法和函數(shù)對數(shù)據(jù)進(jìn)行處理、轉(zhuǎn)換和分析。常見的DataFrame數(shù)據(jù)計(jì)算方法見表5-2。5.2pandas語法表5-2DataFrame中的具體方法及用途5.2pandas語法【例5-19】數(shù)據(jù)運(yùn)算的代碼示例代碼及運(yùn)行結(jié)果見教材5.2pandas語法5.3pandas讀寫數(shù)據(jù)在進(jìn)行大數(shù)據(jù)分析前,數(shù)據(jù)的讀取和寫入至關(guān)重要。pandas作為功能強(qiáng)大的數(shù)據(jù)處理工具,支持多種數(shù)據(jù)格式,如.csv、.xlsx和.json。通過pandas,可以輕松加載不同格式的數(shù)據(jù)到數(shù)據(jù)框中,為接下來的數(shù)據(jù)清洗、轉(zhuǎn)換、分析和可視化提供基礎(chǔ)。在完成這些操作后,將結(jié)果數(shù)據(jù)寫入外部文件或數(shù)據(jù)庫變得至關(guān)重要。通過pandas寫入數(shù)據(jù),可以保存分析結(jié)果、生成報(bào)告、創(chuàng)建可視化圖表,或與其他系統(tǒng)或團(tuán)隊(duì)共享數(shù)據(jù)。這不僅有助于保留重要信息,還促進(jìn)數(shù)據(jù)分享和進(jìn)一步應(yīng)用。pandas讀取和寫入數(shù)據(jù)的有效運(yùn)用,為數(shù)據(jù)分析提供了堅(jiān)實(shí)的基礎(chǔ),推動(dòng)數(shù)據(jù)驅(qū)動(dòng)決策和發(fā)現(xiàn)數(shù)據(jù)價(jià)值的實(shí)現(xiàn)。5.3pandas讀寫數(shù)據(jù)5.3.1pandas讀數(shù)據(jù)5.3.2pandas寫數(shù)據(jù)5.3.1pandas讀數(shù)據(jù)通過使用pandas,利用不同的方法可以將不同格式的數(shù)據(jù)加載到數(shù)據(jù)框中,具體方法及含義見表5-3。5.3pandas讀寫數(shù)據(jù)5.3.1pandas讀數(shù)據(jù)表5-3讀文件的方法和含義1.直接讀取文件2.讀取時(shí)加上行索引3.讀取時(shí)加上列索引4.讀取時(shí)提取某幾行5.讀取時(shí)跳過某幾行6.讀取含有缺失值的文件5.3pandas讀寫數(shù)據(jù)表5-3讀文件的方法和含義5.3pandas讀寫數(shù)據(jù)1.直接讀取文件【例5-20】直接讀取文件代碼示例5.3pandas讀寫數(shù)據(jù)【例5-20】直接讀取文件代碼示例5.3pandas讀寫數(shù)據(jù)2.讀取時(shí)加上行索引在pandas中,header=None參數(shù)用于指定數(shù)據(jù)文件中不包含列名,因此會(huì)將數(shù)據(jù)的第一行作為數(shù)據(jù)而不是列名。當(dāng)使用header=None時(shí),pandas會(huì)自動(dòng)為DataFrame分配默認(rèn)的整數(shù)列名,如0,1,2,...等。5.3pandas讀寫數(shù)據(jù)【例5-21】讀取時(shí)加上行索引代碼示例5.3pandas讀寫數(shù)據(jù)3.讀取時(shí)加上列索引在pandas中,index_col=0這個(gè)參數(shù)指定了DataFrame中的哪一列作為行索引(index),若index_col=0表示將第一列作為行索引。默認(rèn)情況下,Pandas會(huì)自動(dòng)生成一個(gè)整數(shù)型的行索引,如例5-21的運(yùn)行結(jié)果。但如果指定某一列作為行索引,可以使用index_col參數(shù)來實(shí)現(xiàn)。5.3pandas讀寫數(shù)據(jù)【例5-22】讀取時(shí)加上列索引代碼示例5.3pandas讀寫數(shù)據(jù)4.讀取時(shí)提取某幾行如果只需讀取原始數(shù)據(jù)的前幾行,可以設(shè)置參數(shù)nrows來實(shí)現(xiàn)。5.3pandas讀寫數(shù)據(jù)【例5-23】讀取時(shí)提取某幾行的代碼示例5.3pandas讀寫數(shù)據(jù)5.讀取時(shí)跳過某幾行如果想跳過原始數(shù)據(jù)的前幾行,可以設(shè)置參數(shù)skiprows實(shí)現(xiàn)。5.3pandas讀寫數(shù)據(jù)【例5-24】讀取時(shí)跳過某幾行的代碼示例5.3pandas讀寫數(shù)據(jù)6.讀取含有缺失值的文件使用pandas讀取文件時(shí),會(huì)默認(rèn)將NA,NULL等當(dāng)做缺失值,并默認(rèn)使用NaN進(jìn)行代替。5.3pandas讀寫數(shù)據(jù)示例代碼5.3pandas讀寫數(shù)據(jù)5.3.2pandas寫數(shù)據(jù)與讀取數(shù)據(jù)的方法類似,pandas也提供了一系列對應(yīng)的寫入數(shù)據(jù)的方法,以便將DataFrame數(shù)據(jù)寫入不同的數(shù)據(jù)格式中。一些常用的寫入數(shù)據(jù)的方法及含義見表5-4。5.3pandas讀寫數(shù)據(jù)5.3.2pandas寫數(shù)據(jù)表5-4寫數(shù)據(jù)的方法及含義表5-5to_csv()方法的常用參數(shù)及含義【例5-25】寫入代碼示例5.3pandas讀寫數(shù)據(jù)表5-4寫數(shù)據(jù)的方法及含義5.3pandas讀寫數(shù)據(jù)表5-5to_csv()方法的常用參數(shù)及含義5.3pandas讀寫數(shù)據(jù)【例5-25】寫入代碼示例5.3pandas讀寫數(shù)據(jù)5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處理5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處理5.4.1合并數(shù)據(jù)5.4.2缺失值處理5.4.3排序和匯總5.4.1合并數(shù)據(jù)DataFrame提供了許多合并數(shù)據(jù)的方法,具體見表5-6。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...5.4.1合并數(shù)據(jù)表5-6合并數(shù)據(jù)的方法及用途1.橫向表堆疊2.縱向堆疊3.主鍵合并數(shù)據(jù)4.重疊合并數(shù)據(jù)5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-6合并數(shù)據(jù)的方法及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...1.橫向表堆疊橫向堆疊即將兩個(gè)表在x軸向連接在一起,可以使用concat函數(shù)完成,concat函數(shù)的基本語法如下:pandas.concat(objs,axis=0,join=’outer’,join_axes=None,ignore_index=False,keys=None,levels=None,names=None,verify_integrity=False,copy=True)。concat()的參數(shù)及用途見表5-7。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...1.橫向表堆疊表5-7concat()的參數(shù)及用途【例5-26】concat函數(shù)實(shí)現(xiàn)橫向堆疊的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-7concat()的參數(shù)及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-26】concat函數(shù)實(shí)現(xiàn)橫向堆疊的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...2.縱向堆疊(1)cancat方法(2)append方法5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...(1)cancat方法使用concat方法時(shí),在默認(rèn)情況下,即axis=0時(shí),concat做列對齊,將不同行索引的兩張或多張表縱向合并。在兩張表的列名并不完全相同的情況下,可join參數(shù)取值為inner時(shí),返回的僅僅是列名交集所代表的列,取值為outer時(shí),返回的是兩者列名的并集所代表的列。無論join參數(shù)取值是inner或者outer,結(jié)果都是將兩個(gè)表完全按照Y軸拼接起來。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-27】concat函數(shù)實(shí)現(xiàn)縱向堆疊的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...(2)append方法append方法也可以用于縱向合并兩張表。但是append方法實(shí)現(xiàn)縱向表堆疊有一個(gè)前提條件,那就是兩張表的列名需要完全一致。append方法的基本語法如下:Pandas.DataFrame.append(self,other,ignore_index=False,verify_integrity=False)。append方法的常用參數(shù)及用途見表5-8。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-8append方法的參數(shù)及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-28】append方法實(shí)現(xiàn)縱向堆疊的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...3.主鍵合并數(shù)據(jù)主鍵合并是通過一個(gè)或多個(gè)鍵將兩個(gè)數(shù)據(jù)集的行連接起來,類似于SOL中的JOIN。針對同一個(gè)主鍵存在兩張包含不同字段的表,將其根據(jù)某幾個(gè)字段一一對應(yīng)拼接起來,結(jié)果集列數(shù)為兩個(gè)元數(shù)據(jù)的列數(shù)和減去連接鍵的數(shù)量。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...3.主鍵合并數(shù)據(jù)(1)merge方法(2)join方法5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...(1)merge方法與數(shù)據(jù)庫的join一樣,merge方法也有左連接(left)、右連接(right)、內(nèi)連接(inner)和外連接(outer),但比起數(shù)據(jù)庫SQL語句中的join和merge方法還有其自身獨(dú)到之處,例如可以在合并過程中對數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行排序等。merge語法如下:pandas.merge(left,right,how=’inner’,on=None,left_on=None,right_on=None,left_Index=False,right_index=False,sort=False,suffixes=(‘_x’,’_y’),copy=True,indicator=False)merge方法的參數(shù)及用途見表5-9。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-9merge方法的參數(shù)及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-29】merge方法實(shí)現(xiàn)主鍵合并的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...(2)join方法join方法也可以實(shí)現(xiàn)部分主鍵合并功能,但是join方法使用時(shí),兩個(gè)主鍵的名字必須相同。語法如下:pandas.DataFrame.join(self,other,on=None,how=’left’,lsuffix=’’,rsuffix=’’,sort=False)join方法的參數(shù)及用途見表5-10。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-10join方法的參數(shù)及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-30】join方法實(shí)現(xiàn)主鍵合并的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...4.重疊合并數(shù)據(jù)在數(shù)據(jù)分析和處理過程中若出現(xiàn)兩份數(shù)據(jù)的內(nèi)容幾乎一致的情況,但是某些特征在其中一張表上是完整的,而在另外一張表上的數(shù)據(jù)則是缺失的時(shí)候,可以用combine_first方法進(jìn)行重疊數(shù)據(jù)合并。其語法如下:pandas.DataFbine_first(other)其中,參數(shù)other接收DataFrame。表示參與重疊合并的另一個(gè)DataFrame。無默認(rèn)。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-31】combine_first方法實(shí)現(xiàn)重疊合并的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...5.4.2缺失值處理DataFrame提供了許多數(shù)據(jù)轉(zhuǎn)換和缺失值的處理方法,具體見表5-11。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-11數(shù)據(jù)轉(zhuǎn)換和缺失值處理的方法及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-32】數(shù)據(jù)轉(zhuǎn)換和缺失值處理的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...5.4.3排序和匯總DataFrame提供了很多排序和匯總方法,具體見表5-12。5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...表5-12排序和匯總方法及用途5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...【例5-33】排序和匯總的代碼示例5.4使用pandas進(jìn)行數(shù)據(jù)預(yù)處...5.5本章小結(jié)本章內(nèi)容涵蓋了pandas數(shù)據(jù)處理和預(yù)處理的關(guān)鍵內(nèi)容,從認(rèn)識pandas開始,深入了解了這個(gè)強(qiáng)大的數(shù)據(jù)處理工具。通過介紹pandas的簡介和安裝與使用方法,建立了對pandas庫的基本認(rèn)識。深入研究了pandas的語法,重點(diǎn)介紹了Series類型和DataFrame類型的特性,以及DataFrame數(shù)據(jù)計(jì)算的實(shí)際操作,對pandas的數(shù)據(jù)結(jié)構(gòu)和操作有了更深入的理解。在數(shù)據(jù)讀寫方面,學(xué)習(xí)了如何利用pandas讀取和寫入數(shù)據(jù),探討了讀取和寫入數(shù)據(jù)的方法和技巧,為數(shù)據(jù)處理和分析提供了基礎(chǔ)工具。而在數(shù)據(jù)預(yù)處理部分,重點(diǎn)關(guān)注了數(shù)據(jù)合并、缺失值處理、排序和匯總等關(guān)鍵步驟,這些預(yù)處理工作對于數(shù)據(jù)質(zhì)量的保證至關(guān)重要。通過學(xué)習(xí)這些內(nèi)容,掌握如何利用pandas清洗和準(zhǔn)備數(shù)據(jù),為后續(xù)的數(shù)據(jù)分析和挖掘工作提供了基礎(chǔ)和支持。第6章關(guān)聯(lián)分析通過對海量數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析,能夠發(fā)現(xiàn)不同數(shù)據(jù)之間的關(guān)聯(lián)性,預(yù)測用戶行為、優(yōu)化產(chǎn)品推薦、改善服務(wù)體驗(yàn)等。例如,在電商平臺中,通過關(guān)聯(lián)分析可以發(fā)現(xiàn)用戶購買商品之間的關(guān)聯(lián)關(guān)系,從而實(shí)現(xiàn)個(gè)性化推薦和精準(zhǔn)營銷;在社交網(wǎng)絡(luò)中,可以通過分析用戶之間的交互行為,發(fā)現(xiàn)用戶群體的興趣偏好,為內(nèi)容推薦和社交網(wǎng)絡(luò)建設(shè)提供指導(dǎo)。因此,關(guān)聯(lián)分析在大數(shù)據(jù)環(huán)境下有助于挖掘數(shù)據(jù)的深層次價(jià)值,為企業(yè)決策和業(yè)務(wù)優(yōu)化提供重要支持。第6章關(guān)聯(lián)分析6.1關(guān)聯(lián)分析基礎(chǔ)6.2Apriori算法6.3FP-growth算法6.4ECLAT算法6.5關(guān)聯(lián)規(guī)則評估指標(biāo)6.6實(shí)踐——商品零售購物籃分析6.7本章小結(jié)6.1關(guān)聯(lián)分析基礎(chǔ)6.1關(guān)聯(lián)分析基礎(chǔ)6.1.1啤酒和尿布的故事6.1.2關(guān)聯(lián)分析6.1.3常用關(guān)聯(lián)分析算法6.1.1啤酒和尿布的故事這個(gè)故事的啟示在于:數(shù)據(jù)中可能存在著意想不到的關(guān)聯(lián)關(guān)系,而關(guān)聯(lián)規(guī)則分析可以幫助分析者揭示這些關(guān)系。它也表明了數(shù)據(jù)背后的故事,以及如何從大量數(shù)據(jù)中挖掘出有價(jià)值的信息和見解。6.1關(guān)聯(lián)分析基礎(chǔ)6.1.2關(guān)聯(lián)分析關(guān)聯(lián)規(guī)則分析又稱關(guān)聯(lián)挖掘,也可簡稱為關(guān)聯(lián)分析,就是基于大量的交易數(shù)據(jù)、關(guān)系數(shù)據(jù)或其他信息載體,查找存在于項(xiàng)目集合或?qū)ο蠹现g的頻繁模式、關(guān)聯(lián)、相關(guān)性或因果結(jié)構(gòu)。6.1關(guān)聯(lián)分析基礎(chǔ)6.1.3常用關(guān)聯(lián)分析算法常用的關(guān)聯(lián)分析算法見表6-1。6.1關(guān)聯(lián)分析基礎(chǔ)6.2Apriori算法Apriori算法是關(guān)聯(lián)規(guī)則挖掘頻繁項(xiàng)集的經(jīng)典算法,由R.Agrawal等人在1993年提出來的,是一種挖掘單維布爾型的關(guān)聯(lián)規(guī)則算法,F(xiàn)p-growth、Eclat算法也是以其為核心進(jìn)行改進(jìn)的。Apriori算法通??梢杂糜诮鉀Q兩大任務(wù),一是挖掘頻繁項(xiàng)集,二是挖掘關(guān)聯(lián)規(guī)則。6.2Apriori算法6.2.1相關(guān)概念6.2.2挖掘頻繁項(xiàng)集6.2.3挖掘關(guān)聯(lián)規(guī)則6.2.4Apriori算法的缺點(diǎn)6.2.1相關(guān)概念1.項(xiàng)與項(xiàng)集2.事務(wù)3.項(xiàng)集的頻數(shù)(支持度計(jì)數(shù))4.關(guān)聯(lián)規(guī)則5.關(guān)聯(lián)規(guī)則的支持度(support)6.關(guān)聯(lián)規(guī)則的置信度(confidence)7.最小支持度和最小置信度8.頻繁項(xiàng)集9.強(qiáng)關(guān)聯(lián)規(guī)則6.2Apriori算法1.項(xiàng)與項(xiàng)集6.2Apriori算法數(shù)據(jù)庫中不可分割的最小單位信息,稱為項(xiàng),用符號Ij來表示,項(xiàng)的集合稱為項(xiàng)集。設(shè)集合I={I1,I2,...,Ik}是項(xiàng)集,I中的項(xiàng)個(gè)數(shù)為k,則集合I為k-項(xiàng)集。例如集合{牛奶,面包}是一個(gè)2-項(xiàng)集。2.事務(wù)6.2Apriori算法
3.項(xiàng)集的頻數(shù)(支持度計(jì)數(shù))6.2Apriori算法包括項(xiàng)集的事務(wù)數(shù)稱為項(xiàng)集的頻數(shù)(支持度計(jì)數(shù))。4.關(guān)聯(lián)規(guī)則6.2Apriori算法
5.關(guān)聯(lián)規(guī)則的支持度(support)6.2Apriori算法
6.關(guān)聯(lián)規(guī)則的置信度(confidence)6.2Apriori算法
support_count代表支持度計(jì)數(shù),置信度反映了包含A的事務(wù)中,出現(xiàn)B的條件概率。7.最小支持度和最小置信度6.2Apriori算法
8.頻繁項(xiàng)集6.2Apriori算法如果項(xiàng)集I的支持度滿足預(yù)定義的最小支持度閾值(min_sup),則I是頻繁項(xiàng)集。頻繁k項(xiàng)集的集合通常記為Lk。9.強(qiáng)關(guān)聯(lián)規(guī)則6.2Apriori算法
6.2.2挖掘頻繁項(xiàng)集6.2Apriori算法Apriori算法采用的是逐層搜索的迭代方法,其中k項(xiàng)集用于探索(k+1)項(xiàng)集。首先通過掃描數(shù)據(jù)庫,累計(jì)每個(gè)項(xiàng)的計(jì)數(shù),并收集滿足最小支持度的項(xiàng),找出頻繁1項(xiàng)集的集合。該項(xiàng)集記為L1。然后,使用L1找出頻繁2項(xiàng)集的集合L2,使用L2找出L3,如此下去,直到不能再找到頻繁k項(xiàng)集。找出每個(gè)Lk需要一次數(shù)據(jù)庫的完整掃描。6.2.2挖掘頻繁項(xiàng)集【例6-1】【例6-2】【例6-3】6.2Apriori算法【例6-1】在圖6-1中,{123}為頻繁項(xiàng)集,那么它的子集{1}、{2}、{3}、{12}、{13}、{23}也一定是頻繁項(xiàng)集。6.2Apriori算法【例6-2】在圖6-2中,項(xiàng)集{23}是非頻繁項(xiàng)集,那么超集{023}、{123}、{0123}也是非頻繁項(xiàng)集。6.2Apriori算法【例6-3】根據(jù)表6-2所示的事務(wù)集信息,假設(shè)min_sup=50%,挖掘頻繁項(xiàng)集的過程如圖6-3所示。6.2Apriori算法表6-2事務(wù)集信息16.2Apriori算法圖6-3挖掘頻繁項(xiàng)集的過程6.2Apriori算法6.2.3挖掘關(guān)聯(lián)規(guī)則一旦由數(shù)據(jù)庫D中的事務(wù)找出頻繁項(xiàng)集,就可以直接由它們產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則(強(qiáng)關(guān)聯(lián)規(guī)則滿足最小支持度和最小置信度)。6.2Apriori算法挖掘關(guān)聯(lián)規(guī)則步驟6.2Apriori算法
【例6-4】根據(jù)【例6-3】得到的頻繁2-項(xiàng)集L2={{I1,I2},{I1,I4},{I1,I5},{I2,I4}},{I1,I2}的子集為{I1}和{I2},{I1,I4}的子集為{I1}和{I4},{I1,I5}的子集為{I1}和{I5},{I2,I4}的子集為{I2}和{I4},結(jié)果關(guān)聯(lián)規(guī)則及置信度見表6-3。6.2Apriori算法6.2.4Apriori算法的缺點(diǎn)1.候選項(xiàng)集生成開銷大2.頻繁項(xiàng)集生成的多次掃描3.內(nèi)存消耗較大4.不適用于稀疏數(shù)據(jù)集5.只能處理離散數(shù)據(jù)6.2Apriori算法1.候選項(xiàng)集生成開銷大Apriori算法需要生成所有可能的候選項(xiàng)集,然后掃描整個(gè)數(shù)據(jù)集以計(jì)算每個(gè)候選項(xiàng)集的支持度。當(dāng)數(shù)據(jù)集很大時(shí),候選項(xiàng)集的數(shù)量可能會(huì)非常龐大,導(dǎo)致算法的性能下降。6.2Apriori算法2.頻繁項(xiàng)集生成的多次掃描在Apriori算法中,頻繁項(xiàng)集的生成需要多次掃描數(shù)據(jù)集。每次迭代,都需要掃描數(shù)據(jù)集以計(jì)算候選項(xiàng)集的支持度,這會(huì)增加算法的時(shí)間復(fù)雜度。6.2Apriori算法3.內(nèi)存消耗較大由于需要存儲候選項(xiàng)集和頻繁項(xiàng)集的信息,以及數(shù)據(jù)集本身,Apriori算法可能會(huì)消耗大量的內(nèi)存空間,特別是在處理大規(guī)模數(shù)據(jù)集時(shí)。6.2Apriori算法4.不適用于稀疏數(shù)據(jù)集當(dāng)數(shù)據(jù)集非常稀疏時(shí),即大部分項(xiàng)之間的關(guān)聯(lián)性較低時(shí),Apriori算法的效率可能會(huì)受到影響,因?yàn)榇蟛糠稚傻暮蜻x項(xiàng)集都不會(huì)成為頻繁項(xiàng)集。6.2Apriori算法5.只能處理離散數(shù)據(jù)Apriori算法只能處理離散數(shù)據(jù),對于連續(xù)型數(shù)據(jù)或者其他類型的數(shù)據(jù)需要進(jìn)行離散化處理,這可能會(huì)引入一些信息損失。6.2Apriori算法6.3FP-growth算法FP-growth(FrequentPattern-growth)算法是一種用于挖掘頻繁項(xiàng)集的經(jīng)典算法,相較于Apriori算法,它具有更高的效率。FP-growth算法利用FP樹作為數(shù)據(jù)結(jié)構(gòu),通過對數(shù)據(jù)集的壓縮表示,實(shí)現(xiàn)對頻繁項(xiàng)集的高效挖掘。6.3FP-growth算法6.3.1創(chuàng)建FP樹6.3.2利用FP樹挖掘生成頻繁項(xiàng)集6.3.3FP-growth算法的偽代碼6.3.1創(chuàng)建FP樹創(chuàng)建FP樹的算法步驟【6-5】6.3FP-growth算法創(chuàng)建FP樹的算法步驟6.3FP-growth算法1.掃描事務(wù)數(shù)據(jù)庫,計(jì)算單一項(xiàng)集的頻率(支持度計(jì)數(shù))。2.按頻率遞減序排列,寫出頻繁項(xiàng)(1-項(xiàng)集)的集合L1。3.構(gòu)建FP樹。4.利用FP樹挖掘生成頻繁項(xiàng)集?!?-5】根據(jù)表6-2的事務(wù)數(shù)據(jù)信息,利用FP-growth挖掘頻繁項(xiàng)集,此時(shí)假定最小支持度為2。6.3FP-growth算法【6-5】計(jì)算單一項(xiàng)的頻率寫出頻繁項(xiàng)集合L重寫事務(wù)數(shù)據(jù)庫中的項(xiàng)集創(chuàng)建FP樹創(chuàng)建帶有項(xiàng)頭表的FP樹6.3FP-growth算法計(jì)算單一項(xiàng)的頻率6.3FP-growth算法寫出頻繁項(xiàng)集合L6.3FP-growth算法重寫事務(wù)數(shù)據(jù)庫中的項(xiàng)集6.3FP-growth算法創(chuàng)建FP樹6.3FP-growth算法創(chuàng)建帶有項(xiàng)頭表的FP樹6.3FP-growth算法6.3.2利用FP樹挖掘生成頻繁項(xiàng)集6.3FP-growth算法FP樹的挖掘過程由長度為1的頻繁模式(初始后綴模式)開始,構(gòu)造它的條件模式基(一個(gè)“子數(shù)據(jù)庫”,由FP樹中與該后綴模式一起出現(xiàn)的前綴路徑集組成)。然后,構(gòu)造它的(條件)FP樹,并遞歸地在樹上進(jìn)行挖掘。模式增長通過后綴模式與條件FP樹產(chǎn)生的頻繁模式連接實(shí)現(xiàn)。6.3FP-growth算法【6-5】的FP樹的挖掘過程6.3FP-growth算法6.3.3FP-growth算法的偽代碼輸入:事務(wù)數(shù)據(jù)庫D;最小支持度閾值min_sup。輸出:頻繁模式的完全集。方法:略,見教材對FP-growth方法的性能研究表明:對于挖掘長的頻繁模式和短的頻繁模式,它都是有效的和可伸縮的,并且大約比Apriori算法快一個(gè)數(shù)量級。6.3FP-growth算法6.4ECLAT算法與Apriori算法和FP-Growth算法不同,前兩個(gè)算法都是從TID-項(xiàng)集格式(即TID:itemset)的數(shù)據(jù)集中挖掘頻繁模式。TID是事務(wù)的標(biāo)識符,itemset是TID中購買的商品的集合。這種數(shù)據(jù)格式稱為水平數(shù)據(jù)格式(horizontaldataformat)。本節(jié)介紹的Eclat算法主要應(yīng)用項(xiàng)集-TID格式(即itemset:TID)來表示,其中item是項(xiàng)的名稱,而TID_set是包含item的事務(wù)標(biāo)識符的集合。這種數(shù)據(jù)格式稱為垂直數(shù)據(jù)格式(verticaldataformat)。6.4ECLAT算法6.4.1使用垂直數(shù)據(jù)格式挖掘頻繁項(xiàng)集6.4.2ECLAT算法偽代碼6.4.1使用垂直數(shù)據(jù)格式挖掘頻繁項(xiàng)集表6-8事務(wù)數(shù)據(jù)庫D的垂直數(shù)據(jù)格式表6-9垂直數(shù)據(jù)格式的2項(xiàng)集表6-10垂直數(shù)據(jù)格式的3項(xiàng)集Eclat算法的優(yōu)缺點(diǎn)6.4ECLAT算法表6-8事務(wù)數(shù)據(jù)庫D的垂直數(shù)據(jù)格式6.4ECLAT算法表6-9垂直數(shù)據(jù)格式的2項(xiàng)集6.4ECLAT算法表6-10垂直數(shù)據(jù)格式的3項(xiàng)集6.4ECLAT算法Eclat算法的優(yōu)缺點(diǎn)Eclat算法的優(yōu)點(diǎn)是只需要掃描一次數(shù)據(jù)庫,大大減少了數(shù)據(jù)挖掘所需要的時(shí)間,提高數(shù)據(jù)挖掘的效率。缺點(diǎn)是沒有對候選集進(jìn)行刪減的操作,若某一項(xiàng)出現(xiàn)的頻率非常高,在進(jìn)行交集操作的時(shí)候會(huì)消耗大量內(nèi)存,同時(shí)會(huì)減少算法效率。6.4ECLAT算法6.4.2ECLAT算法偽代碼算法:ECLAT(DatabaseD,最小支持度min_support)輸入:D:交易數(shù)據(jù)庫,其中每個(gè)交易是項(xiàng)的集合min_support:頻繁項(xiàng)集的最小支持度閾值輸出:L:頻繁項(xiàng)集列表6.4ECLAT算法方法6.4ECLAT算法注意6.4ECLAT算法6.5關(guān)聯(lián)規(guī)則評估指標(biāo)關(guān)聯(lián)規(guī)則評價(jià)指標(biāo)除了前面用到的支持度(support))和置信度(confidence)之外,通常還用提升度(Lift)、杠桿率(Leverage)和確信度(Conviction)來進(jìn)行衡量。6.5關(guān)聯(lián)規(guī)則評估指標(biāo)1.提升度(Lift)2.杠桿率(Leverage)3.確信度(Conviction)1.提升度(Lift)提升度衡量了規(guī)則中兩個(gè)項(xiàng)之間的關(guān)聯(lián)程度,即一個(gè)項(xiàng)的出現(xiàn)如何影響另一個(gè)項(xiàng)的程度,提升度可以幫助確定兩個(gè)項(xiàng)之間是否存在真正的關(guān)聯(lián)性,以及這種關(guān)聯(lián)性的程度有多大。具體公式見式子(6-3)。提升度大于1表示A和B之間存在正相關(guān)關(guān)系,提升度小于1表示A和B之間存在負(fù)相關(guān)關(guān)系,提升度等于1表示A和B之間不存在關(guān)聯(lián)關(guān)系。提升度可以幫助確定哪些規(guī)則是最有趣的或最有用的。6.5關(guān)聯(lián)規(guī)則評估指標(biāo)2.杠桿率(Leverage)杠桿率(Leverage)用于衡量關(guān)聯(lián)規(guī)則中項(xiàng)集之間的獨(dú)立性程度。它通過比較項(xiàng)集A和項(xiàng)集B的同時(shí)出現(xiàn)頻率與在它們獨(dú)立情況下的期望頻率之間的差異來評估它們之間的關(guān)聯(lián)性。杠桿率的計(jì)算公式見(6-4)。6.5關(guān)聯(lián)規(guī)則評估指標(biāo)3.確信度(Conviction)確信度(Conviction)是用于衡量關(guān)聯(lián)規(guī)則中項(xiàng)集A和項(xiàng)集B之間的依賴性程度的指標(biāo)。它計(jì)算了當(dāng)假設(shè)規(guī)則A導(dǎo)致B的出現(xiàn)時(shí),B不會(huì)由于A的出現(xiàn)而導(dǎo)致B不出現(xiàn)的概率的增加倍數(shù)。確信度的計(jì)算公式見式子(6-5)。當(dāng)確信度大于1時(shí),表示規(guī)則A導(dǎo)致B的出現(xiàn)概率高于B的獨(dú)立出現(xiàn)概率,表明A和B之間存在依賴性;等于1時(shí)表示A和B之間不存在依賴性;小于1時(shí)表示A和B之間存在獨(dú)立性。6.5關(guān)聯(lián)規(guī)則評估指標(biāo)6.6實(shí)踐——商品零售購物籃分析當(dāng)步入零售店內(nèi),看似無序的商品擺放和購物車中琳瑯滿目的商品,實(shí)則蘊(yùn)含著豐富的信息和潛在的商業(yè)機(jī)會(huì)。零售購物籃分析便是揭示這些信息和機(jī)會(huì)的鑰匙之一。通過深入挖掘顧客購買商品之間的關(guān)聯(lián)關(guān)系,零售購物籃分析幫助洞察顧客的購買行為模式,發(fā)現(xiàn)隱藏在數(shù)據(jù)背后的規(guī)律。6.6實(shí)踐——商品零售購物籃分析6.6.1背景與挖掘目標(biāo)6.6.2數(shù)據(jù)初步探析6.6.3構(gòu)建關(guān)聯(lián)分析模型6.6.4評估關(guān)聯(lián)分析模型6.6.1背景與挖掘目標(biāo)通過分析顧客購物籃中的商品組合,揭示商品之間的相關(guān)性和顧客購買行為的規(guī)律。這種分析有助于零售商了解顧客的購買習(xí)慣,優(yōu)化產(chǎn)品擺放、促銷策略以及庫存管理,從而提升銷售額和顧客滿意度。挖掘目標(biāo)具體如下:1.理解顧客購買行為2.提高交叉銷售和推薦效果3.優(yōu)化產(chǎn)品擺放和促銷策略4.改善庫存管理6.6實(shí)踐——商品零售購物籃...6.6.2數(shù)據(jù)初步探析本節(jié)在網(wǎng)站/datasets/rodsaldanha/arketing-campaign上下載營銷活動(dòng)“MarketingCampaign”數(shù)據(jù)集,此數(shù)據(jù)集一共12列,即12個(gè)屬性特征,分別為ID、Education、Marital、Income、Kidhome、AcceptedCmp1、AcceptedCmp2、AcceptedCmp3、AcceptedCmp4、AcceptedCmp5、Complain、Response,共2240行,即2240條客戶信息,此信息記錄了客戶個(gè)人信息、家庭狀況以及他們對營銷活動(dòng)的反應(yīng)的數(shù)據(jù),可以用于分析客戶行為和營銷策略的效果。此數(shù)據(jù)集MarketingCampaign的屬性及含義見表6-11。6.6實(shí)踐——商品零售購物籃...6.6.2數(shù)據(jù)初步探析表6-11MarketingCampaign的屬性及含義1.獲取數(shù)據(jù)集信息2.統(tǒng)計(jì)一下數(shù)據(jù)集中缺失值的情況3.填充缺失值4.數(shù)據(jù)轉(zhuǎn)換6.6實(shí)踐——商品零售購物籃...表6-11MarketingCampaign的屬性及含義6.6實(shí)踐——商品零售購物籃...1.獲取數(shù)據(jù)集信息6.6實(shí)踐——商品零售購物籃...2.統(tǒng)計(jì)數(shù)據(jù)集中缺失值的情況6.6實(shí)踐——商品零售購物籃...3.填充缺失值6.6實(shí)踐——商品零售購物籃...4.數(shù)據(jù)轉(zhuǎn)換6.6實(shí)踐——商品零售購物籃...6.6.3構(gòu)建關(guān)聯(lián)分析模型本節(jié)利用關(guān)聯(lián)分析的三種算法構(gòu)建模型。6.6實(shí)踐——商品零售購物籃...6.6.3構(gòu)建關(guān)聯(lián)分析模型1.利用Apriori構(gòu)建關(guān)聯(lián)分析模型2.利用FP-growth構(gòu)建關(guān)聯(lián)分析模型6.6實(shí)踐——商品零售購物籃...1.利用Apriori構(gòu)建關(guān)聯(lián)分析模型代碼結(jié)果分析6.6實(shí)踐——商品零售購物籃...代碼6.6實(shí)踐——商品零售購物籃...結(jié)果6.6實(shí)踐——商品零售購物籃...分析(1)頻繁項(xiàng)集分析在已有的數(shù)據(jù)集中,可以觀察到不同屬性的頻繁項(xiàng)集的支持度。例如,Income大于5的客戶占總客戶數(shù)量的約58.9%,沒有孩子的客戶占總客戶數(shù)量的約57.7%。(2)關(guān)聯(lián)規(guī)則分析規(guī)則1:如果客戶的Income大于5,則有約79.6%的可能性會(huì)購買沒有孩子的產(chǎn)品。這表明高收入客戶更有可能購買無孩子產(chǎn)品,這可以成為針對該類客戶的營銷策略。規(guī)則2:如果客戶沒有孩子,則有約81.3%的可能性會(huì)購買收入大于5的產(chǎn)品。這表明沒有孩子的客戶更有可能購買高收入產(chǎn)品,這也可以成為針對該類客戶的營銷策略。6.6實(shí)踐——商品零售購物籃...2.利用FP-growth構(gòu)建關(guān)聯(lián)分析模型代碼結(jié)果分析6.6實(shí)踐——商品零售購物籃...代碼6.6實(shí)踐——商品零售購物籃...結(jié)果6.6實(shí)踐——商品零售購物籃...分析(1)頻繁項(xiàng)集分析在已有的數(shù)據(jù)集中,可以觀察到不同屬性的頻繁項(xiàng)集及它們的支持度。支持度高的項(xiàng)集意味著這些項(xiàng)集在數(shù)據(jù)集中出現(xiàn)的頻率較高,具有一定的重要性。例如,Income_1(Income大于5)和Kidhome_0(沒有孩子)是兩個(gè)支持度較高的項(xiàng)集,分別為約58.9%和57.7%。(2)關(guān)聯(lián)規(guī)則分析根據(jù)關(guān)聯(lián)規(guī)則,可以發(fā)現(xiàn)一個(gè)有趣的現(xiàn)象:在購買Income_1(Income大于5)的客戶中,有約79.6%的客戶也會(huì)購買Kidhome_0(沒有孩子)的產(chǎn)品;反之,在購買Kidhome_0的客戶中,有約81.3%的客戶也會(huì)購買Income_1的產(chǎn)品。這表明高收入客戶更有可能購買沒有孩子的產(chǎn)品,反之,沒有孩子的客戶更有可能購買高收入的產(chǎn)品。因此,可以針對這一現(xiàn)象調(diào)整營銷策略,例如針對高收入客戶推出更多適合家庭成員的產(chǎn)品,或者針對沒有孩子的客戶提供更多高端產(chǎn)品或服務(wù)。6.6實(shí)踐——商品零售購物籃...6.6.4評估關(guān)聯(lián)分析模型根據(jù)提供的數(shù)據(jù),對Apriori算法和FP-Growth算法進(jìn)行評估比較代碼及運(yùn)行結(jié)果見教材6.6實(shí)踐——商品零售購物籃...6.6.4評估關(guān)聯(lián)分析模型1.頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則2.運(yùn)行時(shí)間3.內(nèi)存消耗增量結(jié)論6.6實(shí)踐——商品零售購物籃...1.頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則Apriori算法和FP-Growth算法得到的頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則基本相同,都顯示了Income和Kidhome之間的關(guān)聯(lián)關(guān)系,并且置信度和lift值都在相近的范圍內(nèi)。6.6實(shí)踐——商品零售購物籃...2.運(yùn)行時(shí)間在這個(gè)數(shù)據(jù)集上,Apriori算法的運(yùn)行時(shí)間略低于FP-Growth算法,分別為0.016秒和0.018秒。盡管差異不大,但Apriori算法稍微快一些。6.6實(shí)踐——商品零售購物籃...3.內(nèi)存消耗增量Apriori算法的內(nèi)存消耗增量為0.422MB,而FP-Growth算法的內(nèi)存消耗增量為0.027MB??梢钥闯?,F(xiàn)P-Growth算法在內(nèi)存消耗上表現(xiàn)更為優(yōu)秀,消耗更少的額外內(nèi)存。6.6實(shí)踐——商品零售購物籃...結(jié)論綜合考慮,雖然兩種算法在這個(gè)數(shù)據(jù)集上表現(xiàn)相似,但如果對運(yùn)行時(shí)間和內(nèi)存消耗有更高要求,那么可以選擇FP-Growth算法。它在內(nèi)存消耗方面表現(xiàn)更出色,尤其適用于處理大規(guī)模數(shù)據(jù)集。而Apriori算法則更容易理解和實(shí)現(xiàn),適用于小規(guī)模數(shù)據(jù)集或者對算法復(fù)雜度要求不高的情況。6.6實(shí)踐——商品零售購物籃...6.7本章小結(jié)本章深入探討了關(guān)聯(lián)分析的基礎(chǔ)知識和常用算法。首先介紹了關(guān)聯(lián)分析的基礎(chǔ)概念,以及著名的“啤酒和尿布”的故事,引發(fā)了對關(guān)聯(lián)分析的思考。接著詳細(xì)講解了Apriori算法,包括相關(guān)概念、挖掘頻繁項(xiàng)集和挖掘關(guān)聯(lián)規(guī)則的過程,并探討了其缺點(diǎn)。隨后,介紹了FP-growth算法及其高效的頻繁項(xiàng)集挖掘方式,以及ECLAT算法的垂直數(shù)據(jù)格式應(yīng)用。給出了評估關(guān)聯(lián)規(guī)則質(zhì)量的指標(biāo),并通過一個(gè)商品零售購物籃分析案例,展示了關(guān)聯(lián)分析算法在實(shí)際場景中的應(yīng)用。通過本章的學(xué)習(xí),讀者將全面了解關(guān)聯(lián)分析的原理、常用算法和應(yīng)用,為實(shí)際數(shù)據(jù)挖掘工作提供了重要參考。第7章回歸分析回歸分析是一種統(tǒng)計(jì)方法,用于研究自變量(解釋變量)和因變量(響應(yīng)變量)之間的關(guān)系。通過回歸分析,可以確定自變量與因變量之間的相關(guān)性、預(yù)測因變量的數(shù)值,并了解自變量對因變量的影響程度。通過回歸分析,可以得出模型,從而更好地理解變量之間的關(guān)系,進(jìn)行預(yù)測和決策。回歸分析在各種領(lǐng)域都有廣泛的應(yīng)用,包括經(jīng)濟(jì)學(xué)、社會(huì)科學(xué)、生物學(xué)、醫(yī)學(xué)等。第7章回歸分析7.1回歸分析的基礎(chǔ)7.2一元線性回歸7.3多元線性回歸7.4正則化回歸7.5回歸模型的評價(jià)指標(biāo)7.6實(shí)踐-回歸分析7.7本章小結(jié)7.1回歸分析的基礎(chǔ)7.1回歸分析的基礎(chǔ)7.1.1回歸分析的概念7.1.2回歸分析的步驟7.1.1回歸分析的概念回歸分析是一種統(tǒng)計(jì)方法,用于研究兩個(gè)或多個(gè)變量之間的關(guān)系。在回歸分析中,通常將一個(gè)或多個(gè)自變量(解釋變量)與一個(gè)因變量(響應(yīng)變量)進(jìn)行關(guān)聯(lián),以了解自變量對因變量的影響程度和方向。通過建立數(shù)學(xué)模型描述二者之間的關(guān)系,回歸分析提供了預(yù)測、推斷和解釋的能力。通過回歸分析,可以確定自變量對因變量的影響程度、預(yù)測因變量的數(shù)值、檢驗(yàn)假設(shè)以及探索變量之間的關(guān)聯(lián)。這使得回歸分析成為許多領(lǐng)域中重要的工具,例如經(jīng)濟(jì)學(xué)、社會(huì)科學(xué)、醫(yī)學(xué)和工程等??偠灾?,回歸分析幫助理解和利用變量之間的關(guān)系,為決策和預(yù)測提供有力支持。7.1回歸分析的基礎(chǔ)7.1.2回歸分析的步驟1.數(shù)據(jù)收集2.數(shù)據(jù)清洗和探索性分析3.特征工程4.拆分?jǐn)?shù)據(jù)集5.選擇回歸模型6.模型訓(xùn)練7.模型評估8.調(diào)參優(yōu)化9.模型解釋和分析10.模型部署和監(jiān)測通過以上詳細(xì)步驟,可以系統(tǒng)地進(jìn)行回歸分析,構(gòu)建準(zhǔn)確可靠的預(yù)測模型,并深入理解變量之間的關(guān)系,為決策和預(yù)測提供有效支持。7.1回歸分析的基礎(chǔ)7.2一元線性回歸7.2一元線性回歸7.2.1一元線性回歸模型7.2.2參數(shù)w和b的推導(dǎo)過程7.2.3參數(shù)w和b求解的代碼實(shí)現(xiàn)7.2.1一元線性回歸模型一元線性回歸是用于研究一個(gè)自變量和一個(gè)因變量之間的線性關(guān)系,其定義為y=f(x)=wx+b其中,y是因變量(目標(biāo)變量)的值;x是自變量(解釋變量)的值;b是截距(模型在(x=0)時(shí)的值),w是斜率(自變量(x)對因變量(y)的影響程度,即權(quán)重)。7.2一元線性回歸【例7-1】如圖7-1所示,黃色的實(shí)心圓代表樣本點(diǎn),這些樣本點(diǎn)散落在特征空間中,用兩條直線來擬合這些樣本點(diǎn),一條是紅色的直線,另一條是藍(lán)色的直線,哪條直線擬合這些樣本點(diǎn)更好呢?7.2一元線性回歸7.2.2參數(shù)w和b的推導(dǎo)過程由于損失函數(shù)L(w,b)是凸函數(shù),根據(jù)凸函數(shù)的充分性定理,可以分別對L(w,b)求關(guān)于w和b的偏導(dǎo)數(shù)。將偏導(dǎo)數(shù)設(shè)置為0,可以得到最優(yōu)參數(shù)w和b的值,這樣能夠保證L(w,b)的值全局最小,即損失最小,此時(shí)的w,b也是要得到的最優(yōu)參數(shù)值。7.2一元線性回歸7.2.3參數(shù)w和b求解的代碼實(shí)現(xiàn)7.2一元線性回歸7.3多元線性回歸在回歸分析中,如果有兩個(gè)或兩個(gè)以上的自變量,就稱為多元回歸。7.3多元線性回歸7.3.1多元線性回歸模型和參數(shù)求解7.3.2參數(shù)W求解的代碼實(shí)現(xiàn)7.3.1多元線性回歸模型和參數(shù)求解7.3多元線性回歸7.3.2參數(shù)W求解的代碼實(shí)現(xiàn)7.3多元線性回歸7.4正則化回歸正則化是解決過擬合問題的一種方法,通過對模型參數(shù)進(jìn)行調(diào)整,降低模型的復(fù)雜度,可以避免過擬合。應(yīng)用了正則化方法的模型主要有嶺回歸、最小絕對收縮與選擇算子以及彈性網(wǎng)絡(luò)。7.4正則化回歸7.4.1嶺回歸模型(RidgeRegression)7.4.2最小絕對收縮與選擇算子(LASSO回歸)7.4.3彈性網(wǎng)絡(luò)7.4.1嶺回歸模型(RidgeRegression)7.4正則化回歸7.4.2最小絕對收縮與選擇算子(LASSO回歸)7.4正則化回歸7.4.3彈性網(wǎng)絡(luò)7.4正則化回歸7.5回歸模型的評價(jià)指標(biāo)回歸算法的評價(jià)指標(biāo)為均方誤差MSE(MeanSquaredError)、均方根誤差RMSE(RootMeanSquaredError)、平均絕對誤差MAE(MeanAbsoluteError)、決定系數(shù)R2(R-Squared),從是否預(yù)測到了正確的值角度,用評價(jià)指標(biāo)MSE、RMSE和MAE來對模型進(jìn)行評價(jià);從是否擬合了足夠信息的角度,用評價(jià)指標(biāo)R2來對模型進(jìn)行評價(jià)。7.5回歸模型的評價(jià)指標(biāo)1.MSE(MeanSquaredError)均方誤差2.RMSE(RootMeanSquaredError)均方根誤差3.MAE(MeanAbsoluteError)平均絕對誤差4.R-Squared(R2,決定系數(shù))1.MSE(MeanSquaredError)均方誤差用真實(shí)值預(yù)測值,然后平方之后求和平均。線性回歸用MSE作為損失函數(shù)。MSE越小,說明模型的預(yù)測能力越好。但是,MSE的值受到數(shù)據(jù)量的影響,因此在比較不同模型時(shí),需要使用其它指標(biāo)。7.5回歸模型的評價(jià)指標(biāo)2.RMSE(RootMeanSquaredError)均方根誤差RMSE通過在MSE上開個(gè)根號得到的,兩者實(shí)質(zhì)是一樣的,只不過用于數(shù)據(jù)更好的描述。例如:要做房價(jià)預(yù)測,每平方是萬元(真貴),預(yù)測結(jié)果也是萬元。那么差值的平方單位應(yīng)該是千萬級別的。這時(shí)不太好描述自己做的模型效果。此模型誤差是多少千萬,開根號后誤差的結(jié)果就跟數(shù)據(jù)是一個(gè)級別的,在描述模型的時(shí)候,模型的誤差是多少萬元。所以RMSE的值與MSE相比更易于理解,因?yàn)樗c原始數(shù)據(jù)的單位相同,RMSE越小,說明模型的預(yù)測能力越好。7.5回歸模型的評價(jià)指標(biāo)3.MAE(MeanAbsoluteError)平均絕對誤差平均絕對誤差是預(yù)測值與真實(shí)值之間差異的絕對值的平均值。MAE越小,說明模型的預(yù)測能力越好。與MSE相比,MAE更加魯棒,因?yàn)樗皇墚惓V档挠绊憽?.5回歸模型的評價(jià)指標(biāo)4.R-Squared(R2,決定系數(shù))對于回歸算法而言,只探索數(shù)據(jù)預(yù)測是否準(zhǔn)確是不足夠的。除了數(shù)據(jù)本身的數(shù)值大小之外,還希望模型能夠捕捉到數(shù)據(jù)的“規(guī)律”,比如數(shù)據(jù)的分布規(guī)律,單調(diào)性等等,而是否捕獲了這些信息并無法使用MSE來衡量。如圖7-3所示,橙色線代表真實(shí)標(biāo)簽,而藍(lán)色線代表擬合模型(預(yù)測值)。這是一種比較極端,但的確可能發(fā)生的情況。7.5回歸模型的評價(jià)指標(biāo)圖7-3真實(shí)值和預(yù)測值曲線在圖7-3中,前半部分的擬合非常成功,看上去真實(shí)標(biāo)簽和預(yù)測結(jié)果幾乎重合,但后半部分的擬合非常糟糕,模型向著與真實(shí)標(biāo)簽完全相反的方向去了。7.5回歸模型的評價(jià)指標(biāo)公式?jīng)Q定系數(shù)R2是評價(jià)回歸模型擬合優(yōu)度的指標(biāo)。它表示模型解釋因變量變異的比例。7.5回歸模型的評價(jià)指標(biāo)7.6實(shí)踐-回歸分析本節(jié)采用的數(shù)據(jù)集為舊金山自2005年以來的房屋建造信息,來源于數(shù)據(jù)科學(xué)競賽平臺kaggle:/datasets/asaniczka/housing-production-in-san-francisco-since-2005。數(shù)據(jù)集共包含20個(gè)特征和5188條數(shù)據(jù)這些特征提供了關(guān)于舊金山房屋建造的詳細(xì)信息,包括單位數(shù)量、收入水平、地理位置以及許可相關(guān)的信息。7.6實(shí)踐-回歸分析7.6.1數(shù)據(jù)的初步探析7.6.2利用一元線性回歸預(yù)測房屋完成單位數(shù)量模型7.6.3利用多元線性回歸預(yù)測房屋完成單位數(shù)量模型7.6.4利用正則化回歸預(yù)測房屋完成單位數(shù)量模型結(jié)論7.6.1數(shù)據(jù)的初步探析首先利用pandas加載數(shù)據(jù)集,并查看前5行數(shù)據(jù),利用()查看DataFrame的信息,它會(huì)顯示DataFrame的概要,包括列的名稱、每列非空值的數(shù)量、每列的數(shù)據(jù)類型以及DataFrame的總體內(nèi)存使用情況7.6實(shí)踐-回歸分析7.6.1數(shù)據(jù)的初步探析運(yùn)行結(jié)果計(jì)算每個(gè)列的缺失值數(shù)量刪除具有缺失值的特征列刪除特征后數(shù)據(jù)的相關(guān)矩陣7.6實(shí)踐-回歸分析運(yùn)行結(jié)果由運(yùn)行結(jié)果可知:此數(shù)據(jù)集共有30個(gè)屬性,5188條數(shù)據(jù),特征estimated_affordable_units為bool類型數(shù)據(jù),14個(gè)特征為整型,15個(gè)特征為對象類型,數(shù)據(jù)容量為876.6KB。7.6實(shí)踐-回歸分析計(jì)算每個(gè)列的缺失值數(shù)量由運(yùn)行結(jié)果可知,特征permit_description存在2個(gè)缺失值,特征plan_area存在3510個(gè)缺失值;特征project_affordability_type存在4512個(gè)缺失值,特征project_id存在1406個(gè)缺失值。7.6實(shí)踐-回歸分析刪除具有缺失值的特征列經(jīng)過分析上面具有缺失值的特征以及bool類型特征estimated_affordable_units對本節(jié)的數(shù)據(jù)分析無關(guān),這里將其刪除。7.6實(shí)踐-回歸分析刪除特征后數(shù)據(jù)的相關(guān)矩陣根據(jù)圖7-4可知,已完成的凈單位數(shù)(net_units_completed)與PTS數(shù)據(jù)庫中建議單位數(shù)(proposed_units_in_PTS_database)、實(shí)際建議單位數(shù)(actual_proposed_units)、凈單位數(shù)(net_units)和市場價(jià)單位(market_rate_units)的相關(guān)系數(shù)0.84、0.84、1和0.93,從而可見相關(guān)度很高。7.6實(shí)踐-回歸分析7.6.2利用一元線性回歸預(yù)測房屋完成單位數(shù)量模型凈單位數(shù)量(net_units)與實(shí)際完成凈單位數(shù)量(net_units_completed)相關(guān)指數(shù)最高,本節(jié)使用“net_units”作為自變量,“net_units_completed”作為因變量,構(gòu)建一元線性回歸模型。7.6實(shí)踐-回歸分析構(gòu)建一元線性回歸模型上面這些評價(jià)指標(biāo)表明模型在訓(xùn)練集和測試集上的表現(xiàn)都非常好。均方根誤差(RMSE)顯示:模型的預(yù)測誤差很??;而決定系數(shù)(R2)結(jié)果顯示:模型可以解釋目標(biāo)變量的大部分方差。測試集上的表現(xiàn)非常接近完美,這可能表明模型具有很好的泛化能力。7.6實(shí)踐-回歸分析圖7-5回歸直線由圖7-5可知,此直線擬合效果好。所以給定一個(gè)新的NetUnits值,利用此模型能夠?qū)etUnitsCompleted值進(jìn)行很好的預(yù)測。7.6實(shí)踐-回歸分析7.6.3利用多元線性回歸預(yù)測房屋完成單位數(shù)量模型本節(jié)利用7.6.1探析到數(shù)據(jù)庫中提議的單位數(shù)量(proposed_units_in_PTS_database)、實(shí)際提議的單位數(shù)量(actual_proposed_units)、凈單位數(shù)量(net_units)以及市場價(jià)單位數(shù)量(market_rate_units)與實(shí)際完成凈單位數(shù)量(net_units_completed)相關(guān)性較高的結(jié)論,采用單位數(shù)量(proposed_units_in_PTS_database)、實(shí)際提議的單位數(shù)量(actual_proposed_units)、凈單位數(shù)量(net_units)以及市場價(jià)單位數(shù)量(market_rate_units)作為自變量,實(shí)際完成的凈單位數(shù)量(net_units_completed)做目標(biāo)變量構(gòu)建多元線性回歸模型。7.6實(shí)踐-回歸分析7.6.4利用正則化回歸預(yù)測房屋完成單位數(shù)量模型本節(jié)依然采用單位數(shù)量、實(shí)際提議的單位數(shù)量以及凈單位數(shù)量作為自變量,實(shí)際完成的凈單位數(shù)量做目標(biāo)變量,利用三種正則化回歸構(gòu)建房屋完成單位數(shù)量的預(yù)測模型。7.6實(shí)踐-回歸分析模型比較通過與7.6.2節(jié)的一元線性回歸模型、7.6.3節(jié)的多元線性回歸的指標(biāo)進(jìn)行對比,LASSO回歸模型最好。7.6實(shí)踐-回歸分析結(jié)論使用舊金山自2005年以來的房屋建造信息的數(shù)據(jù)集進(jìn)行房屋回歸分析,具有多重價(jià)值體現(xiàn)。首先,通過建立回歸模型,可以預(yù)測未來舊金山地區(qū)的房屋建造數(shù)量和類型,為城市規(guī)劃和房地產(chǎn)開發(fā)提供重要參考。其次,回歸分析有助于了解市場趨勢和需求變化,為房地產(chǎn)行業(yè)的投資和決策提供依據(jù)。此外,通過評估政策影響,可以指導(dǎo)政府制定和調(diào)整房地產(chǎn)政策,促進(jìn)市場穩(wěn)定和可持續(xù)發(fā)展。同時(shí),回歸分析還能優(yōu)化資源配置,提高生產(chǎn)效率和盈利能力,以及幫助各方更好地管理市場風(fēng)險(xiǎn)。綜上所述,這些價(jià)值體現(xiàn)使得使用該數(shù)據(jù)集進(jìn)行房屋回歸分析成為了理解房地產(chǎn)市場、優(yōu)化決策和推動(dòng)城市發(fā)展的重要工具。7.6實(shí)踐-回歸分析7.7本章小結(jié)本章深入探討了回歸分析的基礎(chǔ)知識和技術(shù)應(yīng)用。首先介紹了回歸分析的概念和步驟,包括一元線性回歸和多元線性回歸模型,以及參數(shù)求解的推導(dǎo)過程和代碼實(shí)現(xiàn)。接著,探討了正則化回歸中的嶺回歸、LASSO回歸和彈性網(wǎng)絡(luò)等模型。討論了回歸模型的評價(jià)指標(biāo),幫助評估模型的準(zhǔn)確性和效果。最后,通過一個(gè)實(shí)際案例-舊金山房屋建造完成量預(yù)測,展示了如何進(jìn)行數(shù)據(jù)初步探析,并利用一元線性回歸、多元線性回歸和正則化回歸等方法建立預(yù)測模型。通過本章的學(xué)習(xí),讀者將深入了解回歸分析的原理和應(yīng)用,掌握建立和評估回歸模型的技能,為實(shí)際預(yù)測和決策提供有力支持。第8章分類分析分類和數(shù)值預(yù)測是預(yù)測問題的兩種主要類型,本章將重點(diǎn)介紹分類問題。分類是一種重要的數(shù)據(jù)分析形式,它提取并刻畫了數(shù)據(jù)中重要的類別模式。這種模式提取的模型被稱為分類器,它用于預(yù)測數(shù)據(jù)實(shí)例的分類,這些分類通常是離散且無序的。目前,分類算法已經(jīng)出現(xiàn)了很多種方法,本章主要學(xué)習(xí)決策樹、樸素貝葉斯分類、支持向量機(jī)等算法的思想、步驟以及如何評估這些分類方法的指標(biāo)。第8章分類分析8.1分類分析的基礎(chǔ)8.2決策樹8.3貝葉斯分類8.4支持向量機(jī)8.5分類的評價(jià)指標(biāo)8.6實(shí)踐----分類分析8.7本章小結(jié)8.1分類分析的基礎(chǔ)在大數(shù)據(jù)分析中,分類問題是指通過對數(shù)據(jù)進(jìn)行學(xué)習(xí)和模式識別,將數(shù)據(jù)實(shí)例劃分為不同的類別或標(biāo)簽的任務(wù)。這種任務(wù)的目標(biāo)是建立一個(gè)模型,能夠自動(dòng)地將新的數(shù)據(jù)實(shí)例歸類到已知的類別中,從而實(shí)現(xiàn)對數(shù)據(jù)的有效分類和管理。分類問題通常涉及使用已知的數(shù)據(jù)集進(jìn)行訓(xùn)練,然后利用訓(xùn)練好的模型對未知數(shù)據(jù)進(jìn)行分類預(yù)測。在大數(shù)據(jù)環(huán)境下,分類問題可以應(yīng)用于各種領(lǐng)域,如金融、醫(yī)療、電子商務(wù)等,用來解決諸如風(fēng)險(xiǎn)評估、疾病診斷、用戶行為分析等實(shí)際挑戰(zhàn)。8.1分類分析的基礎(chǔ)8.1.1二元分類和多元分類8.1.2分類的步驟8.1.1二元分類和多元分類分類問題可以分為兩種主要類型:二元分類和多元分類。在二元分類中,數(shù)據(jù)被分為兩個(gè)互斥的類別,例如將電子郵件分類為“垃圾郵件”或“非垃圾郵件”。而多元分類則涉及將數(shù)據(jù)分為三個(gè)或更多個(gè)互斥的類別,例如將圖像識別為“貓”、“狗”、“汽車”或“飛機(jī)”。在解決實(shí)際問題時(shí),選擇二元分類還是多元分類取決于具體的數(shù)據(jù)和問題特征。8.1分類分析的基礎(chǔ)8.1.2分類的步驟數(shù)據(jù)分類是一個(gè)兩階段過程,包括學(xué)習(xí)階段(構(gòu)建分類模型)和分類階段(使用模型預(yù)測給定數(shù)據(jù)的類標(biāo)號)。第一階段:建立描述預(yù)先定義的數(shù)據(jù)類或概念集的分類器。第二階段:使用模型進(jìn)行分類。8.1分類分析的基礎(chǔ)8.2決策樹決策樹是數(shù)據(jù)挖掘的有力工具之一,決策樹學(xué)習(xí)算法是從一組樣本數(shù)據(jù)集(一個(gè)樣本數(shù)據(jù)也可以稱為實(shí)例)為基礎(chǔ)的一種歸納學(xué)習(xí)算法,它著眼于從一組無次序、無規(guī)則的樣本數(shù)據(jù)(概念)中推理出決策樹表示形式的分類規(guī)則。8.2決策樹8.2.1決策樹歸納8.2.2屬性選擇度量8.2.3實(shí)例分析8.2.4樹剪枝處理8.2.1決策樹歸納決策樹的學(xué)習(xí)過程是歸納的,從訓(xùn)練數(shù)據(jù)中總結(jié)出一般性規(guī)則,并且分類的過程是簡單而快速的。常見的決策樹算法包括ID3、C4.5和CART。這些算法都采用貪心方法,即在構(gòu)建樹的過程中每次選擇當(dāng)前看起來最優(yōu)的特征進(jìn)行劃分,而不進(jìn)行回溯。決策樹的構(gòu)建是以自頂向下遞歸的方式進(jìn)行的,從訓(xùn)練數(shù)據(jù)集的整體開始,逐步劃分為較小的子集,直到滿足停止條件為止。8.2決策樹決策樹歸納過程1.樹從單個(gè)結(jié)點(diǎn)N開始,N代表D中訓(xùn)練元組,D為數(shù)據(jù)分區(qū);2.如果D中的元組都為同一類,則結(jié)點(diǎn)變成樹葉并用該類標(biāo)記它。3.否則算法調(diào)用屬性選擇方法確定分裂準(zhǔn)則,分裂準(zhǔn)則指定分裂屬性也指出分裂點(diǎn)或分裂子集。理想情況下,分裂準(zhǔn)則要使得每個(gè)分支上的輸出分區(qū)盡可能“純”。一個(gè)分區(qū)是純的就是它的所有元組都屬于同一類。4.結(jié)點(diǎn)N用分裂準(zhǔn)則標(biāo)記作為結(jié)點(diǎn)上的測試。對分類準(zhǔn)則的每個(gè)輸出,由結(jié)點(diǎn)N生長一個(gè)分支,D中的元組據(jù)此進(jìn)行劃分有三種可能的情況:(1)A是離散值的(2)A是連續(xù)值的(3)A是離散值并且必須產(chǎn)生二叉樹5.對于D的每個(gè)結(jié)果分區(qū)Dj上的元組,算法使用同樣的過程遞歸地形成決策樹。6.遞歸劃分步驟僅當(dāng)下列終止條件之一成立時(shí)停止:(1)分區(qū)D的所有元組都是同一個(gè)類。(2)沒有剩余屬性可以用來進(jìn)一步劃分元組。使用多數(shù)表決,將N轉(zhuǎn)化為樹葉,并用D中的多數(shù)類標(biāo)記它。也可以存放結(jié)點(diǎn)元組的類分布。(3)給定的分枝沒有元組,即分區(qū)Dj為空,用D中的多數(shù)類創(chuàng)建一個(gè)樹葉。8.2決策樹8.2.2屬性選擇度量屬性選擇度量是一種選擇分裂準(zhǔn)則,把給定類標(biāo)記的訓(xùn)練元組的數(shù)據(jù)分區(qū)D“最好地”劃分成單獨(dú)類的啟發(fā)式方法。理想情況是,劃分成較小的分區(qū)后,每個(gè)分區(qū)應(yīng)當(dāng)是純的(即落在一個(gè)給定分區(qū)的所有元組都屬于相同的類),屬性選擇度量決定了給定結(jié)點(diǎn)上的元組如何分裂,所以又稱作分裂準(zhǔn)則。常用的屬性選擇度量有信息增益、增益率和基尼指數(shù)。設(shè)D為有類標(biāo)號的訓(xùn)練集,訓(xùn)練集分為m個(gè)類,分別為C1,C2,......,Cm,Ci,D是D中屬于Ci類的元組集合,|D|和|Ci,D|分別表示D和Ci,D中的元組個(gè)數(shù)。8.2決策樹8.2.2屬性選擇度量1.信息增益2.增益率3.基尼指數(shù)4.度量對比8.2決策樹1.信息增益信息增益定義為原來信息需求與新的信息需求之間的差。一般而言,信息增益越大,則意味著使用屬性A來進(jìn)行劃分所獲得的“純度提升”越大。著名的ID3決策樹學(xué)習(xí)算法就是使用信息增益作為屬性選擇度量的。8.2決策樹1.信息增益式子(8-1)式子(8-2)式子(8-3)8.2決策樹式子(8-1)8.2決策樹式子(8-2)8.2決策樹式子(8-3)Grain(A)=Info(D)-InfoA(D)8.2決策樹2.增益率8.2決策樹3.基尼指數(shù)8.2決策樹4.度量對比信息增益偏向于多值屬性,增益率調(diào)整了這種偏倚,但是它傾向于產(chǎn)生不平衡的劃分,其中一個(gè)分區(qū)比其他分區(qū)小得多?;嶂笖?shù)偏向于多值屬性,當(dāng)類的數(shù)量很大時(shí)會(huì)有困難。它還傾向于導(dǎo)致等大小的分區(qū)和純度。8.2決策樹8.2.3實(shí)例分析蘋果的評估信息數(shù)據(jù)集D由五個(gè)特征:編號、大小、形狀和類別(是否為好果)構(gòu)成,共有10個(gè)樣本,具體信息見表8-1。8.2決策樹8.2.3實(shí)例分析表8-1蘋果數(shù)據(jù)信息表最終的決策樹對新的數(shù)據(jù)樣本進(jìn)行預(yù)測8.2決策樹表8-1蘋果數(shù)據(jù)信息表8.2決策樹最終的決策樹8.2決策樹對新的數(shù)據(jù)樣本進(jìn)行預(yù)測8.2決策樹8.2.4樹剪枝處理樹剪枝兩種常用兩種方法:先剪枝和后剪枝。8.2決策樹8.2.4樹剪枝處理1.先剪枝2.后剪枝8.2決策樹1.先剪枝先剪枝通過提前停止樹的構(gòu)建對樹進(jìn)行剪枝,停止之后結(jié)點(diǎn)就成為樹葉。該樹葉可以持有子集元組中最頻繁的類,或這些元組的概率分布。在構(gòu)造樹時(shí)可以用統(tǒng)計(jì)顯著性、信息增益、基尼指數(shù)等度量來評估劃分的優(yōu)劣。如果一個(gè)劃分的結(jié)點(diǎn)的元組導(dǎo)致低于預(yù)定義閾值的劃分,則給定子集的進(jìn)一步劃分停止。但選擇一個(gè)合適的閾值是困難的。8.2決策樹2.后剪枝通過刪除結(jié)點(diǎn)的分枝并用樹葉替換它而剪掉給定結(jié)點(diǎn)上的子樹。該樹葉的類標(biāo)號用子樹中最頻繁的類標(biāo)記。CART使用的代價(jià)復(fù)雜度剪枝算法,該方法把樹的復(fù)雜度看作樹中樹葉結(jié)點(diǎn)的個(gè)數(shù)和樹的錯(cuò)誤率的函數(shù),錯(cuò)誤率是樹誤分類的元組所占的百分比。它從樹的底部開始。對于每個(gè)內(nèi)部結(jié)點(diǎn)N,計(jì)算N的子樹的代價(jià)復(fù)雜度和該子樹剪枝后N的子樹的代價(jià)復(fù)雜度。使用標(biāo)記類元組的錯(cuò)誤率來評估代價(jià)復(fù)雜度,該集合獨(dú)立于用于建立未剪枝樹的訓(xùn)練集和用于準(zhǔn)確率評估的驗(yàn)證集。一般而言,最小化代價(jià)復(fù)雜度的最小決策樹是首選。8.2決策樹8.3貝葉斯分類貝葉斯分類法是統(tǒng)計(jì)學(xué)分類方法,他們可以預(yù)測類隸屬關(guān)系的概率,如一個(gè)給定的元組屬于一個(gè)特定類的概率。貝葉斯分類基于貝葉斯定理,本節(jié)給出相關(guān)概念。8.3貝葉斯分類8.3.1相關(guān)概念8.3.2樸素貝葉斯分類器8.3.3樸素貝葉斯實(shí)例分析8.3.4拉普拉斯修正8.3.5樸素貝葉斯算法偽代碼8.3.1相關(guān)概念1.先驗(yàn)概率2.條件概率3.后驗(yàn)概率4.貝葉斯定理8.3貝葉斯分類1.先驗(yàn)概率先驗(yàn)概率是基于背景常識或者歷史數(shù)據(jù)的統(tǒng)計(jì)得出的預(yù)判概率,一般只包含一個(gè)變量。例如P(A),P(B)。8.3貝葉斯分類2.條件概率條件概率是表示一個(gè)事件發(fā)生后另一個(gè)事件發(fā)生的概率,一般情況下B表示某一個(gè)因素,A表示結(jié)果,P(A|B)表示在因素B的條件下A發(fā)生的概率,即由因求果,公式見式子(8-8)。8.3貝葉斯分類3.后驗(yàn)概率后驗(yàn)概率是由果求因,也就是在知道結(jié)果的情況下求原因的概率,例如Y事件是X引起的,那么P(X|Y)就是后驗(yàn)概率,也可以說它是事件發(fā)生后的反向條件概率。8.3貝葉斯分類4.貝葉斯定理貝葉斯定理是一種概率理論中的基本定理,用于計(jì)算在已知一些先驗(yàn)條件的情況下,某一事件的后驗(yàn)概率。該定理以英國數(shù)學(xué)家托馬斯·貝葉斯的名字命名,其數(shù)學(xué)表達(dá)式見式子(8-9)。8.3貝葉斯分類8.3.2樸素貝葉斯分類器樸素貝葉斯分類器的思想源于貝葉斯定理且是一種簡單而有效的分類方法。在該算法中,假設(shè)待分類項(xiàng)的各個(gè)屬性之間是相互獨(dú)立的,即一個(gè)屬性值在給定類別下的影響與其他屬性值無關(guān)?;谶@一假設(shè),可以通過計(jì)算待分類項(xiàng)屬于各個(gè)類別的概率,并選擇具有最大概率的類別作為待分類項(xiàng)的類別。8.3貝葉斯分類8.3.2樸素貝葉斯分類器樸素貝葉斯分類法的工作過程(見教材)8.3貝葉斯分類8.3.3樸素貝葉斯實(shí)例分析根據(jù)表8-1所給的數(shù)據(jù)信息,利用樸素貝葉斯分類器預(yù)測表8-8中新的數(shù)據(jù)樣本類別。蘋果的類別信息好果和壞果分別對應(yīng)C1和C2表示。8.3貝葉斯分類8.3.4拉普拉斯修正相比原始貝葉斯分類器,樸素貝葉斯分類器基于單個(gè)的屬性計(jì)算類條件概率更加容易操作,需要注意的是:若某個(gè)屬性值在訓(xùn)練集中和某個(gè)類別沒有一起出現(xiàn)過,這樣會(huì)抹掉其它屬性的信息,因?yàn)樵摌颖镜念悧l件概率計(jì)算結(jié)果為0。因此在估計(jì)概率值時(shí),常常進(jìn)行平滑處理,拉普拉斯修正就是其中的一種經(jīng)典方法,具體計(jì)算方法如式子(8-14)8.3貝葉斯分類8.3.5樸素貝葉斯算法偽代碼算法8.2:樸素貝葉斯分類算法輸入:訓(xùn)練樣本,特征屬性輸出:待預(yù)測特征屬性的所屬類別8.3貝葉斯分類8.4支持向量機(jī)支持向量機(jī)(SupportVectorMachine,SVM)是一種監(jiān)督學(xué)習(xí)的廣義線性分類器,用于二元分類問題。它通過求解學(xué)習(xí)樣本的最大邊距超平面來確定決策邊界,并將問題轉(zhuǎn)化為一個(gè)凸二次規(guī)劃問題。當(dāng)樣本線性可分時(shí),SVMMM能夠直接在原始空間中找到兩類樣本的最優(yōu)分類超平面;而當(dāng)樣本線性不可分時(shí),支持向量機(jī)引入松弛變量,并通過非線性映射將低維度輸入空間的樣本映射到高維度空間,使其變?yōu)榫€性可分,從而在新的特征空間中尋找最優(yōu)分類超平面。這樣的特性使得支持向量機(jī)在處理各種數(shù)據(jù)集時(shí)能夠表現(xiàn)出高度準(zhǔn)確性的分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對不良會(huì)計(jì)行為的動(dòng)機(jī)及對策研究分析 財(cái)務(wù)管理專業(yè)
- 學(xué)生留級審批表
- 2025至2030年中國兒童油漆行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃報(bào)告
- 工地承接勞務(wù)派遣合同范本
- 三方協(xié)議期間簽其他合同
- 軍人夫妻婚后財(cái)產(chǎn)協(xié)議書
- 農(nóng)產(chǎn)品代銷售合同協(xié)議書
- 分公司股東協(xié)議合同范本
- 小時(shí)工協(xié)議算不算勞動(dòng)合同
- 珠寶售后寄賣合同范本模板
- 保育員三級理論知識考核試題題庫及答案
- 化學(xué)品作業(yè)場所安全警示標(biāo)志-鹽酸
- 畫冊設(shè)計(jì)工作計(jì)劃模板
- 銀行間本幣市場業(yè)務(wù)簡介
- (完整版)劍橋通用五級PET考試練習(xí)題
- 鋼絲繩課件-圖文
- 模板匹配課件
- 健康照護(hù)教材課件匯總完整版ppt全套課件最全教學(xué)教程整本書電子教案全書教案課件合集
- 被執(zhí)行人財(cái)產(chǎn)申報(bào)表
- 2021年度計(jì)算機(jī)審計(jì)初級網(wǎng)絡(luò)培訓(xùn)測試題(參考答案)
- 公對公借款協(xié)議
評論
0/150
提交評論