版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
DescriptionandVisualizationofData第4章數(shù)據(jù)的描述與可視化概述4.2學(xué)習(xí)目標(biāo)4.14.34.44.5數(shù)據(jù)對(duì)象與屬性類型數(shù)據(jù)的基本統(tǒng)計(jì)描述數(shù)據(jù)對(duì)象的相似性度量數(shù)據(jù)可視化1概述Summarize4.1數(shù)據(jù)描述從提取信息的角度來看,當(dāng)我們采集到一堆雜亂無章的數(shù)據(jù)后,首先需要科學(xué)合理地描述這些信息。例如,對(duì)于連續(xù)變量數(shù)據(jù)進(jìn)行分析時(shí),可以用百分位值、集中趨勢(shì)、離散趨勢(shì)和數(shù)據(jù)分布的統(tǒng)計(jì)量來描述;對(duì)于分析數(shù)據(jù)向其中心值聚集的程度這類問題時(shí),可以通過平均值、中位數(shù)和眾數(shù)等數(shù)據(jù)來描述;對(duì)于討論數(shù)據(jù)遠(yuǎn)離中心值程度的這些問題時(shí),可以通過范圍、標(biāo)準(zhǔn)差和方差等數(shù)據(jù)來描述;對(duì)于樣本量較大情況下連續(xù)變量的研究,有時(shí)在數(shù)據(jù)描述時(shí)會(huì)提前提出假設(shè),認(rèn)為數(shù)據(jù)應(yīng)當(dāng)服從某種分布,可以采用一系列的指標(biāo)來描述數(shù)據(jù)離散分布的程度。在數(shù)據(jù)描述方面,中學(xué)講得比較多的是統(tǒng)計(jì)圖表,有時(shí)我們還需要用列表,畫圖來描述,這就是數(shù)據(jù)的可視化問題,因此利用可視化反應(yīng)信息是一種非常重要的數(shù)據(jù)描述方法。同時(shí)也要注意到不同的數(shù)據(jù)圖和表反應(yīng)的信息是不一樣的。比如對(duì)數(shù)據(jù)分類時(shí),如果需要了解數(shù)據(jù)分布,則可以選擇條形圖;如果需要了解數(shù)據(jù)結(jié)構(gòu),則選擇餅圖;而對(duì)于連續(xù)數(shù)據(jù),也可以選擇直方圖。數(shù)據(jù)可視化數(shù)據(jù)可視化數(shù)據(jù)可視化(DataVisualization)是借助于圖形化手段,清晰有效地表達(dá)數(shù)據(jù)信息。數(shù)據(jù)可視化的客體是數(shù)據(jù),它是以數(shù)據(jù)為工具,可視化為手段,目的是描述真實(shí)的世界和探索世界。常用數(shù)據(jù)可視化工具:Tableau可以幫助用戶快速分析、可視化并分享信息。QlikView是一個(gè)完整的商業(yè)分析軟件,使開發(fā)者和分析者能夠構(gòu)建和部署強(qiáng)大的分析應(yīng)用。DataFocus是一款新型的商業(yè)智能產(chǎn)品,主要用于智能的大數(shù)據(jù)分析領(lǐng)域。FineBI支持多種視圖對(duì)數(shù)據(jù)表進(jìn)行可視化管理?,F(xiàn)代數(shù)據(jù)可視化技術(shù)指的是運(yùn)用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換為圖形或圖像在屏幕上顯示出來,并進(jìn)行交互處理的理論、方法和技術(shù)。它涉及到計(jì)算機(jī)圖形學(xué)、圖像處理、計(jì)算機(jī)輔助設(shè)計(jì)、計(jì)算機(jī)視覺和人機(jī)交互技術(shù)等多個(gè)領(lǐng)域。在數(shù)據(jù)分析的初始階段,通常都要進(jìn)行可視化處理。Python數(shù)據(jù)可視化是利用matplotlib,它是建立在Numpy之上的一個(gè)Python圖庫,包括了很多繪圖函數(shù),類似Matlab的繪圖框架。2數(shù)據(jù)對(duì)象與屬性類型DataObjectandAttributeTypes4.2數(shù)據(jù)對(duì)象(DataObject)是指客觀存在并且可以相互區(qū)別事物的數(shù)據(jù)描述。又稱為樣本或?qū)嵗?。?shù)據(jù)對(duì)象可以是外部實(shí)體(如產(chǎn)生或使用信息的任何事物)、事物(如報(bào)表)、行為(如打電話)、事件(如響警報(bào))、角色(如教師、學(xué)生)、單位(如會(huì)計(jì)科)、地點(diǎn)(如倉庫)或結(jié)構(gòu)(如文件)的數(shù)據(jù)描述等??傊?,可以由一組屬性值來確定的實(shí)體都可以被認(rèn)為是數(shù)據(jù)對(duì)象。數(shù)據(jù)對(duì)象例如,一個(gè)班級(jí)只有一個(gè)班長,而每個(gè)班長只在一個(gè)班級(jí)任職,則班級(jí)對(duì)象與班長對(duì)象的聯(lián)系是一對(duì)一的。(1)一對(duì)一聯(lián)系(1∶1)例如,一個(gè)班級(jí)有多名學(xué)生,而每名學(xué)生只屬于一個(gè)班級(jí),則班級(jí)對(duì)象與學(xué)生對(duì)象的聯(lián)系是一對(duì)多的。(2)一對(duì)多聯(lián)系(1∶N)例如,一名學(xué)生可以學(xué)習(xí)多門課程,而每一門課程又可以有多名學(xué)生來學(xué),則學(xué)生對(duì)象和課程對(duì)象之間的聯(lián)系是多對(duì)多的。(3)多對(duì)多聯(lián)系(M∶N)數(shù)據(jù)對(duì)象彼此之間相互連接的方式稱為聯(lián)系,也稱為關(guān)系。聯(lián)系可分為以下3種類型:屬性與屬性類型屬性(Attribute)是一個(gè)數(shù)據(jù)字段,表示數(shù)據(jù)對(duì)象的一個(gè)特征。數(shù)據(jù)對(duì)象可以由若干個(gè)屬性來描述,但屬性具有原子性,不可再分解。例如,學(xué)生是一個(gè)數(shù)據(jù)對(duì)象,可以由屬性(字段)學(xué)號(hào)、姓名、性別、出生日期、專業(yè)等來描述。一個(gè)屬性的類型由該屬性可能具有的值集合決定,一般分為兩大類,一類是定性描述的屬性,即用文字語言進(jìn)行相關(guān)描述的屬性,如標(biāo)稱屬性、二元屬性和序數(shù)屬性等;另一類是定量描述的屬性,即用數(shù)學(xué)語言進(jìn)行描述的屬性,可以是整數(shù)值或連續(xù)值。標(biāo)準(zhǔn)屬性標(biāo)稱屬性(NominalAttribute)的值是一些符號(hào)或事物名稱。每個(gè)值代表某種類別、編碼或狀態(tài),因此標(biāo)稱屬性又被看做是分類的(Categorical)。標(biāo)稱屬性的值是枚舉的,可以用數(shù)字表示這些符號(hào)或名稱。如姓名、性別、籍貫、郵政編碼或婚姻狀態(tài)等。標(biāo)稱屬性的值不僅僅是不同的名字,它提供了足夠的信息用于區(qū)分對(duì)象。鑒于標(biāo)稱屬性值并不具有有意義的序,因此統(tǒng)計(jì)它的中位數(shù)和均值是沒有意義的,但是可以找出某個(gè)出現(xiàn)次數(shù)最多的值。比如,出現(xiàn)次數(shù)最多的姓名等,這個(gè)就可以用眾數(shù)(Mode)來表示。因此,標(biāo)稱屬性的中心趨勢(shì)度量一般是眾數(shù)。屬性與屬性類型二元屬性分為對(duì)稱的和非對(duì)稱的:(1)對(duì)稱的二元屬性:如果兩種狀態(tài)具有同等價(jià)值,并且攜帶相同權(quán)重。如拋硬幣的結(jié)果狀態(tài),出生嬰兒的性別屬性等,分別用0和1表示。(2)非對(duì)稱的二元屬性:兩種狀態(tài)的結(jié)果不是同等重要的。如新冠肺炎核酸檢測的陽性和陰性結(jié)果。為了方便研究,通常將重要結(jié)果(通常是稀有的)的編碼置為1,非重要結(jié)果的編碼置為0。二元屬性二元屬性(BinaryAttribute)是標(biāo)稱屬性的特例,只有兩個(gè)狀態(tài):0或1,其中0通常表示該屬性不出現(xiàn),1表示該屬性出現(xiàn)。常見的二元屬性如拋一枚硬幣是正面朝上還是反面朝上,新冠肺炎的核酸檢測結(jié)果為陰性還是陽性等。二元屬性又稱布爾屬性,兩種狀態(tài)分別對(duì)應(yīng)False和True。屬性與屬性類型序數(shù)屬性序數(shù)屬性(OrdinalAttribute)的可能值之間存在有意義的序或秩評(píng)定,但是相繼值之間的差是未知的,也就是說對(duì)應(yīng)的值有先后次序。如五級(jí)評(píng)分標(biāo)準(zhǔn):優(yōu)秀(90≤X≤100)、良好(80≤X<90)、中等(70≤X<80)、及格(60≤X<70)和不及格(X<60)等,這些值都具有有意義的先后次序,因此也可以用數(shù)字如1、2、3、4、5分別對(duì)應(yīng)屬性的取值。序數(shù)屬性可以通過把數(shù)值量的值域劃分成有限個(gè)有序類別,如客戶滿意度評(píng)價(jià):0-很不滿意、1-不滿意、2-中性、3-滿意、4-很滿意等,即可以把數(shù)值屬性離散化。由于序數(shù)屬性是有序的,它的中位數(shù)是有意義的,因此序數(shù)屬性的中心趨勢(shì)度量可以是眾數(shù)和中位數(shù)。標(biāo)稱數(shù)屬、二元數(shù)屬和序數(shù)屬性都是定性的,所以它們只能描述對(duì)象的特征,而不能給出實(shí)際大小或數(shù)值。屬性與屬性類型數(shù)值屬性離散屬性與連續(xù)屬性數(shù)值屬性(NumericAttribute)是可以度量的量,用整數(shù)或?qū)崝?shù)值表示,如成績、年齡、體重等。數(shù)值屬性分為區(qū)間標(biāo)度和比率標(biāo)度兩類,區(qū)分的原則主要是該屬性是否有固有的零點(diǎn)。區(qū)間標(biāo)度屬性(Interval-scaledAttribute):用相等的單位尺度度量,區(qū)間屬性的值有序,取值可以為正、0、負(fù)。如溫度屬性表示為:-7℃~+3℃。比率標(biāo)度屬性(Ratiao-scaledAttribute):具有固定零點(diǎn)的數(shù)值屬性,比值有意義。如重量、高度、速度和貨幣量等屬性。由于比率標(biāo)度數(shù)據(jù)屬性值是有序的,因此可以計(jì)算均值、方差、中位數(shù)、眾數(shù)等。機(jī)器學(xué)習(xí)中的分類算法通常把屬性分為離散的和連續(xù)的。離散屬性(DiscreteAttribute)是指具有有限個(gè)或無限個(gè)可數(shù)個(gè)數(shù)的屬性。如年齡(有限個(gè)值)、顧客編號(hào)(無限可數(shù))等屬性。連續(xù)屬性(ContinuousAttribute)是指非離散屬性的那些屬性。如人的身高屬性取值是連續(xù)的。連續(xù)值是有范圍的。在實(shí)踐中,實(shí)數(shù)值用有限位數(shù)字表示,連續(xù)屬性一般用浮點(diǎn)變量表示。3數(shù)據(jù)的基本統(tǒng)計(jì)描述BasicStatisticalDescriptionofTheData4.3中心趨勢(shì)度量均值數(shù)據(jù)集“中心”的最常用的數(shù)值度量是(算術(shù))均值(MeanValue)。設(shè)某屬性X的N個(gè)觀測值為x1,x2,…,xN,則該集合的均值(Mean)為:中心趨勢(shì)在統(tǒng)計(jì)學(xué)中是指一組數(shù)據(jù)向某一中心值靠攏的程度,它反映了一組數(shù)據(jù)中心點(diǎn)的位置所在。中心趨勢(shì)度量就是尋找數(shù)據(jù)水平的代表值或中心值。中心趨勢(shì)度量包括均值、中位數(shù)、眾數(shù)和中列數(shù)。在實(shí)際問題中,對(duì)于X的每個(gè)xi可以與一個(gè)權(quán)重
關(guān)聯(lián)。權(quán)重反映它們所依附對(duì)應(yīng)值的重要性或出現(xiàn)的頻率。當(dāng)各項(xiàng)權(quán)重不相等時(shí),計(jì)算平均數(shù)時(shí)就要采用加權(quán)平均數(shù)(WeighedMean)。式(4-2)說明了加權(quán)平均值的大小不僅取決于總體中各單位數(shù)值的大小,而且取決于各數(shù)值出現(xiàn)的次數(shù)(頻數(shù))。(4-1)(4-2)中心趨勢(shì)度量中位數(shù)中位數(shù)(Median)又稱中點(diǎn)數(shù)或中值,它是按順序排列的一組數(shù)據(jù)中居于中間位置的數(shù)。即在這組數(shù)據(jù)中,有一半的數(shù)據(jù)比它大,另一半的數(shù)據(jù)比它小。在概率論與統(tǒng)計(jì)學(xué)中,中位數(shù)一般用于數(shù)值型數(shù)據(jù),在數(shù)據(jù)挖掘中可以把中位數(shù)推廣到序數(shù)型數(shù)據(jù)中。假定有某屬性X的N個(gè)值按遞增順序排列,如果N是奇數(shù),則中位數(shù)是該有序數(shù)列的中間值;如果N是偶數(shù),則中位數(shù)是中間兩個(gè)值的任意一個(gè)。對(duì)數(shù)值型區(qū)間,一般約定中位數(shù)取中間兩個(gè)數(shù)的平均值,中間數(shù)位置如式(4-3)所示。
(4-3)中心趨勢(shì)度量眾數(shù)眾數(shù)(Mode)是一組數(shù)據(jù)中出現(xiàn)次數(shù)最多的數(shù)值,可以對(duì)定性和定量型屬性確定眾數(shù)。眾數(shù)是一種位置平均數(shù),是總體中出現(xiàn)次數(shù)最多的變量值。從分布的角度看,眾數(shù)是具有明顯集中趨勢(shì)點(diǎn)的數(shù)值,一組數(shù)據(jù)分布最高峰點(diǎn)所對(duì)應(yīng)的數(shù)值即為眾數(shù)。有時(shí)眾數(shù)在一組數(shù)中有好幾個(gè)。具有一個(gè)、兩個(gè)或三個(gè)眾數(shù)的數(shù)據(jù)集分別稱為單峰(Unimodal)、雙峰(Bimodal)和三峰(Trimodal)。一般具有兩個(gè)或兩個(gè)以上眾數(shù)的數(shù)據(jù)集稱為多峰的(Multimodal)。在極端情況下,如果每個(gè)數(shù)值只出現(xiàn)一次則它沒有眾數(shù)。其中L表示眾數(shù)所在的下限;Δ1表示眾數(shù)所在組次數(shù)與其下限的鄰組次數(shù)之差;Δ2表示眾數(shù)所在組次數(shù)與其上限的鄰組次數(shù)之差;d表示所在組組距。對(duì)于非對(duì)稱的單峰型數(shù)據(jù)集,一般有下面的經(jīng)驗(yàn)關(guān)系:mean-mode≈3×(mean-median)。中列數(shù)中列數(shù)(Midrange)在統(tǒng)計(jì)中指的是數(shù)據(jù)集里最大值和最小值的算術(shù)平均值,也可以度量數(shù)值數(shù)據(jù)的中心趨勢(shì)。(4-4)例4.1某企業(yè)50名工人日加工零件的數(shù)據(jù)如表4.1所示,分別計(jì)算加工零件數(shù)值的均值、中位數(shù)和眾數(shù)。表4.1加工零件數(shù)統(tǒng)計(jì)表按零件數(shù)分組(個(gè))頻數(shù)(人)105~1103110~1155115~1208120~12514125~13010130~1356135~1404
例4.2利用Python求均值、中位數(shù)和眾數(shù)。importpandasaspdimportnumpyasnpss=pd.Series(np.random.randint(8,size=18))
#生成0~7的18個(gè)整數(shù)print(ss)print('均值:\n',ss.mean())print('中位數(shù):\n',ss.median())print('眾數(shù):\n',ss.mode())數(shù)據(jù)散布的度量數(shù)據(jù)散布的度量用于評(píng)估數(shù)值數(shù)據(jù)散布或發(fā)散的程度。散布度量的測定是對(duì)統(tǒng)計(jì)資料分散狀況的測定,即找出各個(gè)變量值與集中趨勢(shì)的偏離程度。通過度量散布趨勢(shì),可以清楚地了解一組變量值的分布情況。數(shù)據(jù)散布的度量包括極差、分位數(shù)、四分位數(shù)、百分位數(shù)和四分位數(shù)極差。五數(shù)概括可以用盒圖顯示,它對(duì)于識(shí)別離群點(diǎn)是有用的;方差和標(biāo)準(zhǔn)差也可以反映數(shù)據(jù)分布的散布狀況。極差(Range)又稱范圍誤差或全距,是一組觀測值的最大值與最小值之間的差距。它是標(biāo)志值變動(dòng)的最大范圍,是測定標(biāo)志變動(dòng)的最簡單指標(biāo)。極差沒有充分利用數(shù)據(jù)的信息,但計(jì)算十分簡單,僅適用樣本容量較小(n<10)情況。分位數(shù)又稱分位點(diǎn),是指將一個(gè)隨機(jī)變量的概率分布范圍分為幾個(gè)等份的數(shù)值點(diǎn),常用的有中位數(shù)(即二分位數(shù))、四分位數(shù)和百分位數(shù)等。四分位數(shù)是將全部數(shù)據(jù)由小到大(或由大到小)排序后,用3個(gè)點(diǎn)將全部數(shù)據(jù)分為4等份,與這3個(gè)點(diǎn)位置上相對(duì)應(yīng)的數(shù)值稱為四分位數(shù),分別記為Q1(下四分位數(shù),25%)、Q2(中位數(shù),50%)、Q3(上四分位數(shù),75%)。其中,Q3到Q1之間距離差的一半又稱為半四分位差,半四分位差越小,說明中間部分的數(shù)據(jù)越集中;半四分位差越大,則意味著中間部分的數(shù)據(jù)越分散。Q1和Q3之間的距離是散布的一種簡單度量,它給出被數(shù)據(jù)的中間一半所覆蓋的范圍。該距離稱為四分位數(shù)極差(IQR),定義為:IQR=Q3-Q1極差、四分位數(shù)和四分位數(shù)極差數(shù)據(jù)散布的度量例4.3在一個(gè)班級(jí)中隨機(jī)抽取10名學(xué)生,得到每名學(xué)生的英語考試分?jǐn)?shù)(單位:分)如下:91,69,83,75,78,81,96,92,88,86。求IQR。解:第一步,9名學(xué)生考試分?jǐn)?shù)進(jìn)行排序:69,75,78,81,83,86,88,91,92,96第二步,計(jì)算機(jī)Q1、Q3:Q1位置=(10+1)/4=2.75,即Q1在第2個(gè)數(shù)值(75)和第3個(gè)數(shù)值(78)之間0.75的位置上,因此,Q1=75+(78-75)×0.75=77.25(分);Q3位置=3(10+1)/4=8.25,即Q3在第8個(gè)數(shù)值(91)和第9個(gè)數(shù)值(92)之間0.25的位置上,因此Q3=91+(92-91)×0.25=91.25(分)第三步,計(jì)算四分位數(shù)極差I(lǐng)QR:IQR=Q3-Q1=91.25-77.25=14(分)數(shù)據(jù)散布的度量在對(duì)稱分布中,中位數(shù)(和其它中心度量)把數(shù)據(jù)劃分成相同大小的兩半。對(duì)于偏斜分布,除中位數(shù)之外,還提供兩個(gè)四分位數(shù)Q1和Q3更加有益。識(shí)別可疑離群點(diǎn)的通常規(guī)則是,挑選落在上四分位數(shù)之上或下四分位數(shù)之下至少1.5×IQR處的值。
五數(shù)概括法(Five-numberSummary)即用下面的五個(gè)數(shù)來概括數(shù)據(jù)集,分別是最小值、下四分位數(shù)(Q1)、中位數(shù)(Q2)、上四分位數(shù)(Q3)和最大值。箱線圖(BoxPlot)又稱為盒圖或盒式圖,是一種用作顯示一組數(shù)據(jù)分散情況的統(tǒng)計(jì)圖,因形狀像箱子而得名,箱線圖體現(xiàn)了五數(shù)概括,在各種領(lǐng)域也經(jīng)常用到,常見于品質(zhì)管理,快速識(shí)別異常值等。一般異常對(duì)象被稱為離群點(diǎn)。箱線圖示意圖如圖4.1所示。離群點(diǎn)上限中位數(shù)上四分位數(shù)Q3下四分位數(shù)Q1下限圖4.1箱線圖示意圖圖4.1中的參數(shù)下限、下四分位數(shù)、中位數(shù)、上四分位數(shù)和上限統(tǒng)稱為箱線圖的五大參數(shù)。其中上限是非異常范圍內(nèi)的最大值,且上限=Q3+1.5×IQR,下限是非異常范圍內(nèi)的最小值,且下限=Q1-1.5×IQR。
圖4.2例4.5程序運(yùn)行結(jié)果4數(shù)據(jù)對(duì)象的相似性度量SimilarityMeasuresforDataObjects4.4數(shù)據(jù)矩陣與相似矩陣假設(shè)有n個(gè)對(duì)象(如人),被p個(gè)屬性(又稱維或特征,如年齡、身高、體重或性別)刻畫,這些對(duì)象記作x1=(x11,x12,…,x1p),x2=(x21,x22,…,x2p),……,其中xij是對(duì)象xi的第j個(gè)屬性的值,對(duì)象xi也稱作對(duì)象的特征向量。把xi的集合叫做數(shù)據(jù)矩陣,各個(gè)對(duì)象之間的距離構(gòu)成的矩陣,叫做相異性矩陣,通常情況下,常用的聚類算法都需要在這兩種數(shù)據(jù)結(jié)構(gòu)上運(yùn)行。數(shù)據(jù)矩陣或稱為對(duì)象-屬性結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)用關(guān)系表的形式或n×p(n個(gè)對(duì)象×p個(gè)屬性)矩陣存放n個(gè)對(duì)象,每行對(duì)應(yīng)于一個(gè)對(duì)象。相異矩陣或稱對(duì)象-對(duì)象結(jié)構(gòu):存放n個(gè)對(duì)象兩兩之間的相異度,通常用一個(gè)n×n矩陣表示。其中d(i,j)是對(duì)象i和對(duì)象j之間的相異性或“差別”的度量,一般而言,d(i,j)是一個(gè)非負(fù)的數(shù)值,對(duì)象i和j彼此高度相似或“接近”時(shí),d(i,j)值接近于0;對(duì)象i和j越不同,d(i,j)值就越大。注意,d(i,i)=0,即一個(gè)對(duì)象與自己的相異性為0。此外,如果d(i,j)=d(j,i)時(shí),則矩陣是對(duì)稱的。標(biāo)準(zhǔn)屬性的相異性兩個(gè)標(biāo)稱屬性對(duì)象i和j之間的相異性d可以根據(jù)不匹配率來計(jì)算:其中,m表示匹配的數(shù)目,即i和j取值相同狀態(tài)的屬性數(shù);p表示對(duì)象的屬性總數(shù)。有時(shí)可以通過賦予m較大的權(quán)重,或者賦給有較多狀態(tài)屬性的匹配具有更大權(quán)重來增加m的影響。對(duì)象i和j之間的相似性為:sim(i,j)=1-d(i,j)。例4.6標(biāo)稱屬性之間相異性矩陣示例,數(shù)據(jù)如表4.2所示。表4.2例4.6數(shù)據(jù)表對(duì)象(標(biāo)識(shí))籍貫(標(biāo)稱屬性)1北京2湖南3江蘇4北京由于我們只有一個(gè)標(biāo)稱屬性籍貫,即p=1,當(dāng)對(duì)象i和j相匹配時(shí),d(i,j)=0;當(dāng)對(duì)象不匹配時(shí),d(i,j)=1。于是,我們得到相異性矩陣:二元屬性的相異性二元屬性(DoubleAttributes)只有兩種狀態(tài):0或1,其中0表示該屬性不出現(xiàn),1表示它出現(xiàn)。例如,給出一個(gè)描述患者的屬性是吸煙,1表示患者吸煙,而0表示患者不吸煙。不能像數(shù)值一樣來處理二元屬性,需要采用特定的方法來計(jì)算二元數(shù)據(jù)的相異性。如果所有的二元數(shù)據(jù)都被看作具有相同的權(quán)重,則我們得到一個(gè)兩行兩列的列聯(lián)表,如表4.3示,其中q是對(duì)象i和j都取1的屬性數(shù),r是在對(duì)象i中取1、在對(duì)象j中取0的屬性數(shù),s是在對(duì)象i中取0、在對(duì)象j中取1的屬性數(shù),而t是對(duì)象i和j都取0的屬性數(shù)。屬性的總數(shù)是p,其中p=q+r+s+t。對(duì)于對(duì)稱的二元屬性,每個(gè)狀態(tài)都同樣重要?;趯?duì)稱二元屬性的相異性稱為對(duì)稱二元相異性。如果對(duì)象i和對(duì)象j都用對(duì)稱的二元屬性刻畫,則i和j的相異性為:(4-7)表4.3二元屬性的列聯(lián)表對(duì)象i對(duì)象j
10sum1qrq+r0sts+tsumq+sr+tp二元屬性的相異性對(duì)于非對(duì)稱的二元屬性,兩個(gè)狀態(tài)不是同等重要的,如核酸檢測的陽性(1)和陰性(0)結(jié)果。給定兩個(gè)非對(duì)稱的二元屬性,兩個(gè)都取值1的情況(正匹配)被認(rèn)為比兩個(gè)都取0的情況(負(fù)匹配)更有意義。因此,這樣的二元屬性經(jīng)常被認(rèn)為是“一元的”(只有一種狀態(tài)),基于這種屬性的相異性稱為非對(duì)稱的二元相異性,其中負(fù)匹配t被認(rèn)為是不重要的,因此在計(jì)算時(shí)常常被忽略,如式(4-8)所示。(4-8)互補(bǔ)地,也可以基于相似性而不是基于相異性來度量兩個(gè)二元屬性的差別,則對(duì)于i和j之間非對(duì)稱的二元相似性可以用下式計(jì)算:(4-9)式(4-9)的系數(shù)sim(i,j)被稱為Jaccard系數(shù),它在文獻(xiàn)中被廣泛使用。二元屬性的相異性例4.7二元屬性之間相異性矩陣示例。假設(shè)一個(gè)患者記錄表(見表4.4)包含屬性:姓名、性別、發(fā)燒、咳嗽、因素1、因素2、因素3和因素4,其中姓名是對(duì)象標(biāo)識(shí)符,性別是對(duì)稱屬性,其余都是非對(duì)稱二元的屬性。表4.4患者記錄的數(shù)據(jù)表姓名性別發(fā)燒咳嗽因素1因素2因素3因素4劉世元MYNPNNN李吉友MYYNNNN于金鳳FYNPNPN……………………對(duì)于非對(duì)稱屬性,值Y和P被設(shè)置為1,值N被設(shè)置為0。假設(shè)患者(對(duì)象)之間的距離只基于非對(duì)稱屬性來計(jì)算。根據(jù)(4-7)式,三個(gè)患者劉世元、李吉友和于金鳳兩兩之間的相異性如下:這些度量值顯示了劉世元和李吉友、李吉友和于金鳳都不大可能患類似的疾病,因?yàn)樗麄兊南喈愋暂^高。在這三個(gè)患者中,劉世元和于金鳳最有可能患類似的疾病。數(shù)值屬性的相似性度量
在數(shù)據(jù)分析過程中,常常需要把數(shù)據(jù)對(duì)象區(qū)分為不同的類別,判斷不同對(duì)象是否歸于同一個(gè)類別的依據(jù)是對(duì)象之間的相似性較高,而對(duì)象相似性一般由對(duì)象之間的距離來度量。距離是指把一個(gè)對(duì)象看做N維空間中的一個(gè)點(diǎn),并在空間中定義距離?;诰嚯x的相似性是指當(dāng)兩個(gè)對(duì)象距離較近時(shí)其相似性就大,否則相似性就小。假設(shè)n維空間兩個(gè)點(diǎn)Xi(xi1,xi2,…,xin),Xj(xj1,xj2,…,xjn),定義Xi與Xj的距離如下:歐幾里得距離(EuclideanDistance)是數(shù)據(jù)分析算法中最常用的距離度量,表示空間中兩點(diǎn)之間的直線距離。公式如下:歐幾里得距離歐幾里得距離(EuclideanDistance)是數(shù)據(jù)分析算法中最常用的距離度量,表示空間中兩點(diǎn)之間的直線距離。公式如下:切比雪夫距離(4-10)(4-11)
數(shù)值屬性的相似性度量曼哈頓距離(ManhattanDistance)表示城市中兩個(gè)點(diǎn)之間的街區(qū)距離,也稱為城市街區(qū)距離。公式如下:曼哈頓距離將曼哈頓距離與歐氏距離推廣,可以得到閔可夫斯基距離(MinkowskiDistance),也叫范數(shù)。公式如下:閔可夫斯基距離(4-12)(4-13)其中p是一個(gè)可變參數(shù),根據(jù)可變參數(shù)的不同,閔氏距離可以表示不同類型的距離:當(dāng)p=1時(shí),就是曼哈頓距離;當(dāng)p=2時(shí),就是歐氏距離;當(dāng)p→∞時(shí),就是切比雪夫距離。數(shù)值屬性的相似性度量例4.8
Python計(jì)算各類距離。importnumpyasnpXi=np.array([1,2,3])Xj=np.array([4,5,6])d_Eu=np.sqrt(np.sum(np.square(Xi-Xj)))#歐氏距離d_Ch=np.abs(Xi-Xj).max()#切比雪夫距離d_Ma=np.sum(np.abs(Xi-Xj))#曼哈頓距離print('Xi與Xj的歐氏距離為:',d_Eu)print('Xi與Xj的切比雪夫距離為:',d_Ch)print('Xi與Xj的曼哈頓距離為:',d_Ma)序數(shù)屬性的相似性度量在計(jì)算對(duì)象之間的相異性時(shí),序數(shù)屬性的處理與數(shù)值屬性非常類似。假設(shè)f是用于描述n個(gè)對(duì)象的一組序數(shù)屬性之一。關(guān)于f的相異性計(jì)算涉及如下步驟:第i個(gè)對(duì)象的f值為xif,屬性f有Mf有序的狀態(tài),表示排位1,…,Mf。用對(duì)應(yīng)的排位rif∈{1,…,Mf}取代xif。由于每個(gè)序數(shù)屬性都可以有不同的狀態(tài)值,所以通常需要將每個(gè)屬性的值域映射到[0.0,1.0]上,以便每個(gè)屬性都有相同的權(quán)重。用zif代替第i個(gè)對(duì)象的rif來實(shí)現(xiàn)數(shù)據(jù)規(guī)格化,其中(3)相異性可以用4.4.4節(jié)介紹的任意一種數(shù)值屬性的距離度量計(jì)算,使用zif作為第i個(gè)對(duì)象的f值。
(4-14)例4.9序數(shù)型屬性間的相異性示例。假定在表4.4中的樣本數(shù)據(jù)中,某患病因素為高血壓,共有三種狀態(tài),一級(jí)高血壓、二級(jí)高血壓、三級(jí)高血壓。也就是Mf
=3。第一步,如果把血壓的每個(gè)值替換為它的排位數(shù)1、2、3,假如4名患者血壓屬性分別被賦值為3、1、2、3。第二步,通過將排位數(shù)1映射為0.0、排位2映射為0.5、排位3映射為1.0來實(shí)現(xiàn)對(duì)排位的規(guī)格化。第三步,我們可以使用比如說歐幾里得距離(4-10)式得到如下的相異性矩陣:由相異性矩陣可以看出,對(duì)象1與對(duì)象2不相似,對(duì)象2與對(duì)象4也不相似,即d(2,1)=1.0,d(4,2)=1.0。這符合直觀,因?yàn)閷?duì)象1和對(duì)象4都是三級(jí)高血壓,對(duì)象2是一級(jí)高血壓。序數(shù)屬性的相似性值也可以由相異性值得到,如:sim(i,j)=1-d(i,j)?;旌项愋蛯傩缘南嗨菩运^混合類型屬性是指一組數(shù)據(jù)擁有多種類型的屬性。計(jì)算混合屬性類型對(duì)象之間的相異性方法有兩種:一種方法是將每種類型的屬性分成一組,對(duì)每種類型分別進(jìn)行數(shù)據(jù)挖掘分析(例如聚類分析)。如果這些分析得到兼容的結(jié)果,則這種方法是可行的。然而,在實(shí)際應(yīng)用中,每種屬性類型分別分析不大可能產(chǎn)生兼容的結(jié)果。另一種更為可取的方法是將所有屬性類型一起處理,只做一次分析。這樣就需要將不同的屬性組合在單個(gè)相異性矩陣中,把有意義的屬性都轉(zhuǎn)換到共同的區(qū)間[0.0,1.0]上。假設(shè)數(shù)據(jù)集包含p個(gè)混合類型的屬性,對(duì)象i和對(duì)象j之間的相異性d(i,j)定義為:(4-15)
混合類型屬性的相似性例4.10混合類型屬性間的相異性。我們來計(jì)算表4.5中對(duì)象的相異性矩陣。表4.5包含混合類型屬性的樣本數(shù)據(jù)集對(duì)象標(biāo)識(shí)符屬性1(標(biāo)稱的)屬性2(序數(shù)的)屬性3(數(shù)值的)1北京優(yōu)秀452天津中等223上海良好644北京優(yōu)秀28利用上面公式(與4.4.2和4.4.5方法相同)分別計(jì)算出屬性1、屬性2的相異性矩陣M1和M2:
由表4.5可以看出,對(duì)象1和對(duì)象4在屬性1和屬性2上的值相同,因此能夠直觀地猜測出它們兩個(gè)最相似。這一猜測通過相異性矩陣得到了印證,因?yàn)閐(4,1)是任何兩個(gè)不同對(duì)象的最小值。余弦相似性余弦相似性是用向量空間中兩個(gè)向量夾角的余弦值作為衡量兩個(gè)對(duì)象間差異的大小,它的取值范圍在-1到1之間。余弦值越接近1,也就是兩個(gè)向量越相似,完全相同時(shí)數(shù)值為1;相反方向時(shí)為-1;正交或不相關(guān)為0。二維向量余弦相似性如圖4.3所示。最常見的應(yīng)用是計(jì)算文本相似度,具體做法是分別抽取兩個(gè)文檔的所有特征詞,建立兩個(gè)文本向量,計(jì)算這兩個(gè)向量的余弦值,就可以知道兩個(gè)文檔在統(tǒng)計(jì)學(xué)方法中的相似情況。實(shí)踐證明,這是一個(gè)非常有效的方法。θX1=(x11,x12)X2=(x21,x22)x1x2圖4.3平面向量余弦相似性示意圖假設(shè)n維向量Xi=(xi1,xi2,…,xin),Xj=(xj1,xj2,…,xjn),θ是Xi和Xj的夾角,余弦相似性公式如下:其中Xi·Xj為向量的內(nèi)積(數(shù)量積),||Xi||為向量的模。例4.11用上述理論計(jì)算文本相似性。為了簡單起見,這里只計(jì)算句子的相似度。句子A:這只皮靴號(hào)碼大了,那只號(hào)碼合適。句子B:這只皮靴號(hào)碼不小,那只更合適。計(jì)算上面兩個(gè)句子相似程度的基本思路是:如果這兩個(gè)句子所用特征詞相同的越多,則它們的內(nèi)容就應(yīng)該越相似。因此,可以從詞頻入手,計(jì)算它們的相似程度。第一步,分詞:句子A:這只/皮靴/號(hào)碼/大了,那只/號(hào)碼/合適。句子B:這只/皮靴/號(hào)碼/不/小,那只/更/合適。第二步,列出所有的詞:這只,皮靴,號(hào)碼,大了,那只,合適,不,小,更第三步,計(jì)算詞頻:句子A:這只1,皮靴1,號(hào)碼2,大了1,那只1,合適1,不0,小0,更0句子B:這只1,皮靴1,號(hào)碼1,大了0。那只1,合適1,不1,小1,更1第四步,寫出詞頻向量:句子A:(1,1,2,1,1,1,0,0,0)句子B:(1,1,1,0,1,1,1,1,1)利用式(4-16)余弦相似性計(jì)算過程如下:例4.12利用Python求例4.11中文本向量的余弦相似性。求余弦相似性需要用到np.linalg.norm來求向量的范式,等同于求向量的歐式距離。
importnumpyasnpX1=np.array([1,1,2,1,1,1,0,0,0])X2=np.array([1,1,1,0,1,1,1,1,1])X1_norm=np.linalg.norm(X1)X2_norm=np.linalg.norm(X2)cos=np.dot(X1,X2)/(X1_norm*X2_norm)#引用計(jì)算內(nèi)積函數(shù)np.dot()print('X1和X2余弦相似性:',cos)5數(shù)據(jù)可視化DataVisualization4.5基于像素的可視化技術(shù)基于像素的可視化技術(shù)(Pixel-orientedTechnique)在屏幕上創(chuàng)建m個(gè)窗口,每維一個(gè),記錄著m個(gè)維值映射到這些窗口中對(duì)應(yīng)位置上的m個(gè)像素,像素的顏色反映對(duì)應(yīng)的值。在窗口內(nèi),數(shù)據(jù)值按所有窗口共用的某種全局序安排,全局序可以用一種對(duì)研究問題有一定意義的方法,通過對(duì)所有記錄排序得到。近些年來,基于像素的可視化技術(shù)在很多具體場景中得到了廣泛的應(yīng)用并且充分驗(yàn)證了該方法的有效性。例4.13基于像素的可視化示例。假設(shè)某電商的顧客信息表,包含4個(gè)維(屬性):收入、信貸額度、成交量和年齡。通過可視化技術(shù)分析收入屬性與其它屬性之間的相關(guān)性。對(duì)所有顧客按收入遞增序排序,并使用這個(gè)序,在四個(gè)可視化窗口安排顧客數(shù)據(jù),如圖4.4所示。像素顏色這樣選擇:值越小,顏色越淡。使用基于像素的可視化,可以很容易地得到如下觀察:信貸額度隨收入增加而增加;收入處于中部區(qū)間的顧客更可能從該電商處購物;收入與年齡之間沒有明顯的相關(guān)性?;谙袼乜梢暬夹g(shù)的一個(gè)缺點(diǎn)是,它們對(duì)于理解多維空間的數(shù)據(jù)分布幫助不大,例如它們并不能顯示在多維子空間是否存在稠密區(qū)域。幾何投影可視化技術(shù)二維數(shù)據(jù)的散點(diǎn)圖二維數(shù)據(jù)的散點(diǎn)圖是在笛卡爾坐標(biāo)系兩個(gè)坐標(biāo)軸下繪制的二維數(shù)據(jù)的散點(diǎn)圖。也可以使用不同顏色或形狀表示不同的數(shù)據(jù)點(diǎn)以增加到第三維。例4.14Python繪制二維散點(diǎn)圖并用不同顏色顯示。importmatplotlib.pyplotaspltimportnumpyasnpn=50x=np.random.rand(n)*2#隨機(jī)產(chǎn)生50個(gè)0~2之間的x,y坐標(biāo)值y=np.random.rand(n)*2colors=np.random.rand(50)#隨產(chǎn)生50個(gè)0~1之間的顏色值area=np.pi*(10*np.random.rand(n))**2#點(diǎn)的半徑范圍:0~10plt.scatter(x,y,s=area,c=colors,alpha=0.5,marker=(9,3,30))plt.show()程序運(yùn)行結(jié)果如圖4.5所示。圖4.5例4.14程序運(yùn)行結(jié)果幾何投影可視化技術(shù)三維數(shù)據(jù)的散點(diǎn)圖三維數(shù)據(jù)散點(diǎn)圖是在笛卡爾坐標(biāo)系的三個(gè)坐標(biāo)軸下繪制的散點(diǎn)圖。如果使用顏色信息,也可以顯示4維數(shù)據(jù)點(diǎn)。對(duì)于超過4維的數(shù)據(jù)集,散點(diǎn)圖一般不太有效。例4.15利用鳶尾花數(shù)據(jù)集前三個(gè)特征,繪制三維散點(diǎn)圖并用不同顏色顯示。importpandasaspdimportmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3D#繪制3D坐標(biāo)的函數(shù)fromsklearn.datasetsimportload_irisiris=load_iris()#導(dǎo)入鳶尾花df=pd.DataFrame(iris.data[:],columns=iris.feature_names[:])x=df['sepallength(cm)']#設(shè)置x、y、z軸y=df['sepalwidth(cm)']z=df['petallength(cm)']fig=plt.figure()#繪圖ax=Axes3D(fig)ax.scatter(x,y,z)ax.set_xlabel('sepallength(cm)',fontdict={'size':10,'color':'black'})ax.set_xlabel('sepalwidth(cm)',fontdict={'size':10,'color':'black'})ax.set_xlabel('petallength(cm)',fontdict={'size':10,'color':'black'})plt.show()程序運(yùn)行結(jié)果如圖4.6所示。圖4.6例4.15程序運(yùn)行結(jié)果幾何投影可視化技術(shù)散點(diǎn)圖矩陣散點(diǎn)圖矩陣(ScatterMatrix)是散點(diǎn)圖的一種擴(kuò)充,提供每個(gè)維與其它維的可視化。Python通過函數(shù)scatter_matrix()繪制散點(diǎn)圖矩陣。例4.16繪制散點(diǎn)圖矩陣示例。importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltv1=np.random.normal(0,1,100)#生成數(shù)據(jù)v2=np.random.randint(0,23,100)v3=v1*v2df=pd.DataFrame([v1,v2,v3]).T#3*100的數(shù)據(jù)集pd.plotting.scatter_matrix(df,diagonal='kde',color='b')#繪制散點(diǎn)圖矩陣plt.show()程序運(yùn)行結(jié)果如圖4.7所示。圖4.7例4.16程序運(yùn)行結(jié)果幾何投影可視化技術(shù)平行坐標(biāo)圖隨著維度的增加,散點(diǎn)圖矩陣變得不太有效。平行坐標(biāo)圖(ParallelCoordinatesPlot)是對(duì)具有多個(gè)屬性問題的一種可視化方法。在平行坐標(biāo)圖中,數(shù)據(jù)集的一行數(shù)據(jù)在平行坐標(biāo)圖中用一條折線表示,縱向是屬性值,橫向是屬性類別(用索引表示)。例4.17Pandas包繪制平行坐標(biāo)圖示例。importpandasaspdimportmatplotlib.pyplotaspltfrompandas.plottingimportparallel_coordinatesimportseabornasseadata=sea.load_dataset('iris')fig,axes=plt.subplots()parallel_coordinates(data,'species',ax=axes)plt.legend(loc='uppercenter',bbox_to_anchor=(0.5,-0.1),ncol=3,fancybox=True,shadow=True)plt.show()程序運(yùn)行結(jié)果如圖4.8所示。圖4.8例4.17程序運(yùn)行結(jié)果基于圖符的可視化技術(shù)切爾諾夫臉切爾諾夫臉(ChernoffFaces)是統(tǒng)計(jì)學(xué)家赫爾曼·切爾諾夫于1973年引進(jìn)的。切爾諾夫臉把多達(dá)18個(gè)變量的多維數(shù)據(jù)以卡通人物的臉顯示出來,有助于揭示數(shù)據(jù)中的趨勢(shì)。臉的要素有眼、耳、口和鼻等,用其形狀、大小、位置和方向表示維度的值。切爾諾夫臉利用人的思維能力,識(shí)別面部特征的微小差異并且立即消化、理解許多面部特征。觀察大型數(shù)據(jù)表可能是令人乏味的,切爾諾夫臉可以濃縮數(shù)據(jù),從而更容易被人們消化理解,有助于數(shù)據(jù)的可視化。切爾諾夫臉有對(duì)稱的切爾諾夫臉(18維)和非對(duì)稱的切爾諾夫臉(36維)兩種類型。如圖4.9所示。圖4.9切爾諾夫臉(每張臉表示一個(gè)n維數(shù)據(jù))由于人類非常善于識(shí)別臉部特征,臉譜化使得多維度數(shù)據(jù)容易被分析人員消化理解,有助于數(shù)據(jù)的規(guī)律和不規(guī)律性的可視化。而切爾諾夫臉的局限性在于,它無法表示數(shù)據(jù)的多重聯(lián)系,以及未能顯示具體的數(shù)據(jù)值。這種方法已被應(yīng)用于多地域經(jīng)濟(jì)戰(zhàn)略指標(biāo)數(shù)據(jù)分析,空間數(shù)據(jù)可視化等領(lǐng)域?;趫D符的可視化技術(shù)人物線條畫人物線條畫(StickFigure)可視化技術(shù)是把多維數(shù)據(jù)映射到5-段人物線條畫中,其中每幅畫都有一個(gè)四肢和一個(gè)軀體。兩個(gè)維度被映射到顯示軸(X軸和Y軸),而其余的被映射到四肢角度和長度。下圖顯示的是人口普查數(shù)據(jù),其中年齡和收入被映射到顯示軸,而其他維被映射到人物線條畫。如果數(shù)據(jù)項(xiàng)關(guān)于兩個(gè)顯示維相對(duì)稠密,則結(jié)果可視化顯示紋理模式,從而反應(yīng)數(shù)據(jù)趨勢(shì),如圖4.10所示。圖4.10人物線條畫層次可視化技術(shù)對(duì)于大型高維數(shù)據(jù)集,很難同時(shí)對(duì)所有維可視化。層次可視化(HierarchicalVisualization)技術(shù)是把所有維劃分成子集(即子空間),然后對(duì)這些子空間可視化。一種常用的方法就是給定某些變量固定值時(shí)的子空間的可視化,常常通過3D圖形展現(xiàn)。為了繪制3D圖形,需要調(diào)用Axes3D對(duì)象的plot_surface()方法來完成。Matplotlib的3D繪圖函數(shù)plot_surface()功能非常強(qiáng)大,繪圖質(zhì)量很好。
程序運(yùn)行結(jié)果如圖4.11所示。圖4.11u=[sin(x)+2]×cos(z)函數(shù)圖像2
程序運(yùn)行結(jié)果如圖4.12所示。
層次可視化技術(shù)高維數(shù)據(jù)的可視化一般很難直觀地理解高維(維數(shù)大于3)的數(shù)據(jù),如果將這些數(shù)據(jù)轉(zhuǎn)化為可視化的形式,就可以幫助理解和分析高維空間中的數(shù)據(jù)特性。高維數(shù)據(jù)可視化旨在用相關(guān)的低維數(shù)據(jù)圖形表現(xiàn)高維度的數(shù)據(jù),并輔之以交互手段,幫助人們分析和理解高維數(shù)據(jù)。降維方法降維方法是將高維數(shù)據(jù)投影到低維空間,盡量保留高維空間中原有的特性和聚類關(guān)系。常見的降維方法有主成分分析(PrincipleComponentAnalysis,PCA)、多維度分析(Multi-dimensionalScaling,MDS)和自組織圖(Self-organizationMap,SOM)等。這些方法通過數(shù)學(xué)模型將高維數(shù)據(jù)降維,進(jìn)而在低維空間中顯示。通常,數(shù)據(jù)在高維空間中的距離越近,在投影圖中兩點(diǎn)的距離也越近。高維投影圖可以很好地展示高維數(shù)據(jù)間的相似度以及聚類情況等,但并不能表示數(shù)據(jù)在每個(gè)維度上的信息,也不能表現(xiàn)維度間的關(guān)系。高維投影圖損失了數(shù)據(jù)在原始維度上的細(xì)節(jié)信息,但直觀地提供了數(shù)據(jù)之間宏觀的結(jié)構(gòu)。高維數(shù)據(jù)降維常用方法如圖4.13所示。圖4.13高維數(shù)據(jù)降維常用方法高維數(shù)據(jù)的可視化非降維方法非降維方法保留了高維數(shù)據(jù)在每個(gè)維度上的信息,可以展示所有的維度。各種非降維方法的主要區(qū)別在于如何對(duì)不同的維度進(jìn)行數(shù)據(jù)到圖像屬性的映射。當(dāng)維度較少時(shí),可以直接通過與位置、顏色、形狀等多種視覺屬性相結(jié)合的方式對(duì)高維數(shù)據(jù)進(jìn)行編碼。當(dāng)維度數(shù)量增多,數(shù)據(jù)量變大,或?qū)?shù)據(jù)呈現(xiàn)精度的需要提高時(shí),這些方法難以滿足需要。文本詞云圖繪制文本詞云圖需要用到wordcloud模塊,該模塊依賴numpy庫和PIL庫。Wordcloud模塊中的WordCloud()函數(shù)用于生成或者繪制詞云的對(duì)象。WordCloud()函數(shù)常用形式為:wordcloud.WordCloud(font_path=None,width=400,height=200,mask=None,scale=1,max_words=200,min_font_size=4,max_font_size=None,background_color='black',color_func=None,mode='RGB',prefer_horizontal=0.9,random_state=None,relative_scaling=0.5,font_step=1,regexp=None,collocations=True,colormap=’viridis’,contour_width=0,contour_color='black',repeat=False)文本詞云圖(1)font_path:系統(tǒng)中的中文字體文件一般都在C:\Windows\Fonts目錄下(默認(rèn)為wordcloud模塊下的DroidSansMono.ttf)。調(diào)用不同的字體文件就可以改變相應(yīng)的字體,顯示出來的效果也不同。(2)width:畫布寬度(默認(rèn)為400像素)。(3)height:畫布高度(默認(rèn)為200像素)。(4)mask:簡單理解為繪制模板,默認(rèn)None。當(dāng)mask不為0時(shí),之前依據(jù)height和width設(shè)置的畫布則作廢,此時(shí)“畫布”形狀及大小由mask決定。(5)scale:float,默認(rèn)1。按比例放大(>1)或者縮小(<1)畫布。值越大,圖像密度越大,越清晰。(6)max_words:int,默認(rèn)200。設(shè)定詞云最多顯示的特征詞個(gè)數(shù)。(7)min_font_size:int,默認(rèn)值4。設(shè)定最小特征詞的字體大小。(8)max_font_size:int,默認(rèn)值None。最大特征詞的字體大小,如果沒有設(shè)置的話,直接使用畫布的大小。(9)background_color:詞云圖像的背景色(默認(rèn)為黑色‘black’)。(10)color_func:callable,默認(rèn)None,生成新顏色的函數(shù)。(11)mode:默認(rèn)值“RGB”,當(dāng)mode=“RGBA”且background_color=“None”時(shí),將生成透明的背景。常用參數(shù)說明文本詞云圖(1)prefer_horizontal:特征詞水平方向排版出現(xiàn)的頻率(默認(rèn)為0.9)。(2)random_state:設(shè)置有多少種隨機(jī)生成狀態(tài),即有多少種配色方案。(3)font_step:int,默認(rèn)值1。對(duì)生成的特征詞抽樣,設(shè)定抽取的兩個(gè)特征詞之間略過的詞個(gè)數(shù),如果大于1,會(huì)加快運(yùn)算但有可能導(dǎo)致結(jié)果出現(xiàn)較大的誤差。(4)relative_scaling:float,默認(rèn)值0.5。按特征詞頻倒序排列,上一個(gè)特征詞相對(duì)下一個(gè)特征詞的大小倍數(shù)。(5)regexp:使用正則表達(dá)式分割輸入的字符。(6)colormap:默認(rèn)值為“viridis”。隨機(jī)為每個(gè)特征詞染色,該參數(shù)使用了‘color_func’時(shí)將會(huì)被屏蔽。(7)contour_width:float,默認(rèn)值0。設(shè)置詞云邊界寬度,但不畫出詞云邊界線。當(dāng)mask中填充部分的邊界平滑時(shí)可以設(shè)置contour_width,否則不需要設(shè)置該參數(shù),會(huì)產(chǎn)生鋸齒。(8)contour_color:邊界線顏色,默認(rèn)為黑色‘black’。當(dāng)contour_width不為0時(shí),設(shè)置本參數(shù)改變邊界線顏色。(9)repeat:是否重復(fù)特征詞以使得總特征詞數(shù)量滿足max_words(默認(rèn)False)。當(dāng)文本內(nèi)容較少時(shí)建議設(shè)置為真(True)。不常用參數(shù)說明文本詞云圖例4.19文本詞云圖示例。為文本文件D:\data_mining\01.txt繪制詞云圖。importwordcloudimportnumpyasnpimportmatplotlib.pyplotaspltimportPILimportjiebaimportrewithopen(r'D:\python3sy\01.txt',encoding='utf8')asf:text1=f.readlines()image1=PIL.Image.open(r'd:\python3sy\3.jpg')#導(dǎo)入圖片MASK=np.array(image1)WC=wordcloud.WordCloud(font_path='C:\\windows\\Fonts\\simhei.TTF',max_words=2000,mask=MASK,height=400,width=400,background_color='white',repeat=False,mode='RGBA')#設(shè)置詞云圖對(duì)象屬性st1=re.sub('[,。、“”‘’]','',str(text1))#使用正則表達(dá)式將符號(hào)替換掉conten=''.join(jieba.lcut(st1))#此處分詞之間要有空格隔開con=WC.generate(conten)plt.imshow(con)plt.axis('off')plt.show()程序運(yùn)行結(jié)果如圖4.14所示。圖4.14例4.19程序運(yùn)行結(jié)果本章結(jié)束啦!歡迎課后繼續(xù)交流~第5章
數(shù)據(jù)采集和預(yù)處理學(xué)習(xí)目標(biāo)概述5.25.15.35.45.55.6數(shù)據(jù)清洗數(shù)據(jù)集成數(shù)據(jù)標(biāo)準(zhǔn)化數(shù)據(jù)歸約數(shù)據(jù)變換與數(shù)據(jù)離散化1概述SummarizeChapter0101大數(shù)據(jù)采集概述大數(shù)據(jù)的來源非常廣泛,如信息管理系統(tǒng)、網(wǎng)絡(luò)信息系統(tǒng)、物聯(lián)網(wǎng)系統(tǒng)、科學(xué)實(shí)驗(yàn)系統(tǒng)等,其數(shù)據(jù)類型包括結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。。02大數(shù)據(jù)采集方法傳統(tǒng)的數(shù)據(jù)采集來源單一,且存儲(chǔ)、管理和分析數(shù)據(jù)量也相對(duì)較小,大多采用關(guān)系型數(shù)據(jù)庫和并行數(shù)據(jù)倉庫即可處理。03數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理(DataPreprocessing)是指在數(shù)據(jù)挖掘之前對(duì)原始數(shù)據(jù)進(jìn)行的一些處理。概述大數(shù)據(jù)采集概述在大數(shù)據(jù)平臺(tái)下,由于數(shù)據(jù)源具有更復(fù)雜的多樣性,數(shù)據(jù)采集的形式也變得更加復(fù)雜多樣,當(dāng)然,業(yè)務(wù)處理也可能變得迥然不同。為了提升業(yè)務(wù)處理的性能,同時(shí)又希望保留歷史數(shù)據(jù)以備數(shù)據(jù)挖掘與分析,對(duì)數(shù)據(jù)的采集要著重考慮如下幾個(gè)方面:(1)關(guān)系型數(shù)據(jù)庫數(shù)據(jù)采集:從關(guān)系型數(shù)據(jù)庫中采集數(shù)據(jù)時(shí),為滿足查詢和其他操作的實(shí)時(shí)性,需要定期清除超過時(shí)間期限的歷史數(shù)據(jù)以確保數(shù)據(jù)處理的效率。(2)數(shù)據(jù)流處理平臺(tái):將實(shí)時(shí)采集的源數(shù)據(jù)寫入數(shù)據(jù)流存儲(chǔ)平臺(tái),如Kafka,通過數(shù)據(jù)采集作為消費(fèi)者來進(jìn)行處理,包括去重、去噪、中間計(jì)算等操作,最終寫入目標(biāo)數(shù)據(jù)存儲(chǔ)中。(3)視頻文件的特征數(shù)據(jù)提?。簩?duì)于視頻文件的大數(shù)據(jù)處理,加載圖片后利用識(shí)別算法提取圖片的特征信息,并轉(zhuǎn)換為符合業(yè)務(wù)需求的數(shù)據(jù)模型。由于數(shù)據(jù)提取過程耗時(shí)長且需要較多內(nèi)存資源,需要注意避免成為整個(gè)數(shù)據(jù)階段的瓶頸。大數(shù)據(jù)采集方法傳統(tǒng)的數(shù)據(jù)采集來源單一,且存儲(chǔ)、管理和分析數(shù)據(jù)量也相對(duì)較小,大多采用關(guān)系型數(shù)據(jù)庫和并行數(shù)據(jù)倉庫即可處理。目前,大數(shù)據(jù)采集方面增加了如下幾種新的方法。網(wǎng)絡(luò)數(shù)據(jù)采集方法通過網(wǎng)絡(luò)爬蟲或網(wǎng)站公開API等方式從網(wǎng)站上獲取數(shù)據(jù)信息。該方法可以將非結(jié)構(gòu)化數(shù)據(jù)從網(wǎng)頁中抽取出來,將其存儲(chǔ)為統(tǒng)一的本地?cái)?shù)據(jù)文件,并以結(jié)構(gòu)化的方式存儲(chǔ)。它支持圖片、音頻、視頻等文件或附件的采集,附件與正文可以自動(dòng)關(guān)聯(lián)。系統(tǒng)日志采集方法很多互聯(lián)網(wǎng)企業(yè)都有自己的海量數(shù)據(jù)采集工具,多用于系統(tǒng)日志采集,如Hadoop的Chukwa,Cloudera的Flume,F(xiàn)acebook的Scribe等,這些工具均采用分布式架構(gòu),能滿足每秒數(shù)百M(fèi)B的日志數(shù)據(jù)采集和傳輸需求。其他數(shù)據(jù)采集方法對(duì)于企業(yè)生產(chǎn)經(jīng)營數(shù)據(jù)或?qū)W科研究數(shù)據(jù)等保密性要求較高的數(shù)據(jù),可以通過與企業(yè)或研究機(jī)構(gòu)合作,使用特定系統(tǒng)接口等相關(guān)方式采集數(shù)據(jù)。數(shù)據(jù)預(yù)處理概述
數(shù)據(jù)預(yù)處理(DataPreprocessing)是指在數(shù)據(jù)挖掘之前對(duì)原始數(shù)據(jù)進(jìn)行的一些處理?,F(xiàn)實(shí)世界中的數(shù)據(jù)幾乎都是“臟”數(shù)據(jù),所采集的數(shù)據(jù)極易受到不一致數(shù)據(jù)、噪聲、缺失值的侵?jǐn)_。(1)數(shù)據(jù)的不一致性:原始數(shù)據(jù)是從各種實(shí)際應(yīng)用系統(tǒng)中采集的,而各應(yīng)用系統(tǒng)的數(shù)據(jù)缺乏統(tǒng)一的標(biāo)準(zhǔn)和定義,數(shù)據(jù)結(jié)構(gòu)具有較大的差異。(2)噪聲數(shù)據(jù):數(shù)據(jù)采集過程中會(huì)受到采集設(shè)備故障、數(shù)據(jù)傳輸錯(cuò)誤或存儲(chǔ)介質(zhì)損壞等因素的干擾,導(dǎo)致采集到的數(shù)據(jù)可能含有噪聲,即不精確或不準(zhǔn)確的數(shù)據(jù)。(3)缺失值:系統(tǒng)設(shè)計(jì)缺陷或使用過程中的人為因素可能導(dǎo)致數(shù)據(jù)記錄中某些屬性值丟失或不確定,從而造成數(shù)據(jù)不完整,例如數(shù)據(jù)采集傳感器故障導(dǎo)致某些數(shù)據(jù)無法采集等。2數(shù)據(jù)清洗DatacleaningTChapter021.缺失值清洗pandas處理缺失值Pandas使用浮點(diǎn)值NaN表示缺失數(shù)據(jù)(1)缺失值的檢測與統(tǒng)計(jì)(2)刪除缺失值(3)填充缺失值缺失值處理方法(1)刪除法(2)替換法(3)插補(bǔ)法(1)缺失值的檢測與統(tǒng)計(jì)pandas處理缺失值函數(shù)isnull()(或notnull())可以直接判斷該列中的哪個(gè)數(shù)據(jù)為NaN,缺失值時(shí)為True(或False),非缺失值時(shí)為False(或True)。方法info()和sum()分別查看非缺失值的信息和統(tǒng)計(jì)出各列缺失值的數(shù)量。例5.1缺失值檢測和統(tǒng)計(jì)示例。importnumpyasnpimportpandasaspddf=pd.DataFrame([['S1','許文秀','女',21,'團(tuán)員','計(jì)算機(jī)系','湖北'],['S2','劉德峰','男',20,np.NaN,'信息系','貴州'],['S3','劉世元','男',22,np.NaN,'計(jì)算機(jī)系',np.NaN],['S4','于金鳳','女',np.NaN,np.NaN,'電信系',np.NaN],['S5','周新娥','女',23,'團(tuán)員','電信系',np.NaN],['S6','王曉晴','女',22,np.NaN,np.NaN,np.NaN]],columns=['學(xué)號(hào)','姓名','性別','年齡','政治面貌','系部','籍貫'])print(df)print(())#打印出各列數(shù)據(jù)的非缺失值信息print(df.isnull())#打印出缺失值信息,缺失值時(shí)為True,非缺失值時(shí)為Falseprint(df.isnull().sum())#打印出各列中缺失值的數(shù)量(2)刪除缺失值pandas處理缺失值根據(jù)一定的規(guī)則將含有缺失值的行或列直接進(jìn)行刪除。dropna()為Pandas庫中DataFrame的一個(gè)方法,用于刪除缺失值。常用形式如下:dropna(axis=0,how='any',thresh=None,subset=None,,inplace=False)例5.1缺失值檢測和統(tǒng)計(jì)示例。importnumpyasnpimportpandasaspddf=pd.DataFrame([['S1','許文秀','女',21,'團(tuán)員','計(jì)算機(jī)系','湖北'],['S2','劉德峰','男',20,np.NaN,'信息系','貴州'],['S3','劉世元','男',22,np.NaN,'計(jì)算機(jī)系',np.NaN],['S4','于金鳳','女',np.NaN,np.NaN,'電信系',np.NaN],['S5','周新娥','女',23,'團(tuán)員','電信系',np.NaN],['S6','王曉晴','女',22,np.NaN,np.NaN,np.NaN]],columns=['學(xué)號(hào)','姓名','性別','年齡','政治面貌','系部','籍貫'])print(df)print(())#打印出各列數(shù)據(jù)的非缺失值信息print(df.isnull())#打印出缺失值信息,缺失值時(shí)為True,非缺失值時(shí)為Falseprint(df.isnull().sum())#打印出各列中缺失值的數(shù)量(3)填充缺失值pandas處理缺失值直接刪除缺失值的樣本并不是一個(gè)很好的方法,因此可以用一個(gè)特定的值替換缺失值。缺失值所在的屬性為數(shù)值型時(shí),通常利用其均值、中位數(shù)和眾數(shù)等描述其集中趨勢(shì)的統(tǒng)計(jì)量來填充;缺失值所在屬性為類別型數(shù)據(jù)時(shí),則可以選擇眾數(shù)來填充。Pandas庫中提供了缺失值替換的方法fillna(),常用形式如下:fillna(value=None,method=None,asxi=None,inplace=False,limit=None)(3)填充缺失值pandas處理缺失值常見的填充方法有:①填充固定值:選取某個(gè)固定值/默認(rèn)值填充缺失值。②填充均值:對(duì)每一列的缺失值,填充當(dāng)前列的均值。③填充中位數(shù):對(duì)每一列的缺失值,填充當(dāng)前列的中位數(shù)。④填充眾數(shù):對(duì)每一列的缺失值,填充當(dāng)前列的眾數(shù)。如果存在某列缺失值過多,眾數(shù)為NaN的情況,這時(shí)就取每列刪除掉NaN值后的眾數(shù)。⑤填充上下樣本的數(shù)據(jù):對(duì)每一數(shù)據(jù)樣本的缺失值,填充其上面一個(gè)或下面一個(gè)樣本的數(shù)據(jù)值。⑥填充插值得到的數(shù)據(jù):用插值法擬合出缺失的數(shù)據(jù),然后進(jìn)行填充。常用interpolate()函數(shù)默認(rèn)采用線性插值,即假設(shè)函數(shù)是直線形式,缺失值用前一個(gè)值和后一個(gè)值的平均數(shù)填充。⑦填充KNN數(shù)據(jù):填充近鄰的數(shù)據(jù),先利用KNN計(jì)算臨近的k個(gè)數(shù)據(jù),然后填充它們的均值。⑧填充模型預(yù)測的值:把缺失值作為新的Label,建立模型得到預(yù)測值,然后進(jìn)行填充。pandas處理缺失值例5.3填充缺失值示例。importnumpyasnpimportpandasaspddf=pd.DataFrame([['S1','許文秀','女',21,'團(tuán)員','計(jì)算機(jī)系','湖北',387],['S2','劉德峰','男',20,np.NaN,'信息系','貴州',376],['S3','劉世元','男',22,np.NaN,'計(jì)算機(jī)系',np.NaN,380],['S4','于金鳳','女',np.NaN,np.NaN,'電信系',np.NaN,np.NaN],['S5','周新娥','女',23,'團(tuán)員','電信系',np.NaN,367],['S6','王曉晴','女',22,np.NaN,np.NaN,np.NaN,np.NaN]],columns=['學(xué)號(hào)','姓名','性別','年齡','政治面貌','系部','籍貫','總分'])print(df.fillna(-1))#填充缺失值為'-1'print(df.fillna(method='ffill'))#向下填充缺失值print(df['年齡'].fillna(df['年齡'].mean()))#年齡列的缺失值用其均值填充print(df.fillna(df.mode()))#利用眾數(shù)填充缺失值fornindf:df[n]=df[n].interpolate()#數(shù)值型屬性用線性插值df[n].dropna(inplace=True)print(df)2.異常值清洗
異常值是指那些在數(shù)據(jù)集中存在的不合理的值,這里所說不合理的值是偏離正常范圍的值,不是錯(cuò)誤值。異常值的存在會(huì)嚴(yán)重干擾數(shù)據(jù)分析的結(jié)果。1.異常值檢測(1)簡單統(tǒng)計(jì)分析(2)散點(diǎn)圖方法(3)3σ原則(4)箱線圖2.異常值處理(1)直接刪除(2)視為缺失值(3)平均值修正(4)蓋帽法(5)分箱平滑法①分箱②數(shù)據(jù)平滑(6)回歸插補(bǔ)(7)多重插補(bǔ)(8)不處理pandas處理缺失值(1)簡單統(tǒng)計(jì)分析例5.4計(jì)算成年人的身高、體重公式為:Y=(X-100)×0.9,其中X為身高(cm),Y為標(biāo)準(zhǔn)體重(kg)。importmatplotlib.pyplotaspltimportnumpyasnpx=np.arange(100,230,5)#假設(shè)成年人(18歲以上)正常高度在1米至2.3米y=(x-100)*0.9plt.rcParams['font.family']='STSong'#圖形中顯示漢字plt.rcParams['font.size']=12plt.title('身高和體重')plt.plot(x,y,'.')plt.plot(140,187,'r.')#異常值plt.plot(156,212,'r.')#異常值plt.plot(187,208,'r.')plt.show()程序運(yùn)行結(jié)果如圖5.1所示。圖5.1例5.4程序運(yùn)行結(jié)果最常用的統(tǒng)計(jì)量是最大值和最小值,用來判斷這個(gè)變量的取值是否超出合理的范圍。如電商信息表中客戶年齡age=199,則該變量的取值存在異常。pandas處理缺失值(2)散點(diǎn)圖方法通過數(shù)據(jù)分布的散點(diǎn)圖可以檢測異常數(shù)據(jù)。例5.5探究房屋面積和房屋價(jià)格的關(guān)系示例。importmatplotlib.pyplotaspltimportnumpyasnpx=[225.98,247.07,253.14,254.85,241.58,301.01,20.67,288.64,163.56,120.06,207.83,342.75,147.9,53.06,224.72,29.51,21.61,483.21,245.25,299.25,343.35]#房屋面積數(shù)據(jù)y=[196.63,203.88,210.75,372.74,202.41,347.61,24.9,239.34,140.32,304.15,176.84,488.23,128.79,49.64,191.74,33.1,30.74,400.02,205.35,330.64,283.45]#房屋價(jià)格數(shù)據(jù)plt.figure(figsize=(20,8),dpi=100)#創(chuàng)建畫布plt.scatter(x,y)#繪制散點(diǎn)圖plt.show()#顯示圖像程序運(yùn)行結(jié)果如圖5.2所示。圖5.2例5.5程序運(yùn)行結(jié)果pandas處理缺失值(3)3σ原則在正態(tài)分布中,σ代表標(biāo)準(zhǔn)差,μ代表均值,x=μ即為圖像的對(duì)稱軸。3σ原則認(rèn)為:數(shù)值分布在(μ-σ,μ+σ)中的概率為0.6827;數(shù)值分布在(μ-2σ,μ+2σ)中的概率為0.9544;數(shù)值分布在(μ-3σ,μ+3σ)中的概率為0.9974。也就是說,Y的取值幾乎全部集中在(μ-3σ,μ+3σ)區(qū)間內(nèi),超出這個(gè)范圍的可能性僅占不到0.3%,屬于極個(gè)別的小概率事件,因此將超出(μ-3σ,μ+3σ)范圍的值都可以認(rèn)為是異常值,如圖5.3所示。3σ原則要求數(shù)據(jù)服從正態(tài)或近似正態(tài)分布,且樣本數(shù)量大于10。圖5.3正太分布3σ示意圖pandas處理缺失值例5.6
3σ原則檢測異常值示例。importpandasaspddata=[78,72,-14,70,68,72,77,78,42,78,74,54,80,82,65,62]#學(xué)生某門課程成績s=pd.Series(data)dmean=s.mean()dstd=s.std()print('檢測出異常值:')yz1=dmean-3*dstdyz2=dmean+3*dstdforiinrange(0,len(data)):if(data[i]<yz1)or(data[i]>yz2):print(data[i],end=',')結(jié)果檢測出異常值-14pandas處理缺失值(4)箱線圖箱線圖是通過數(shù)據(jù)集的四分位數(shù)形成的圖形化描述,是非常簡單而且有效的可視化異常值的一種檢測方法。例5.7箱線圖檢測異常值示例。importpandasaspdimportmatplotlib.pyplotaspltdata=[78,72,34,70,68,72,77,78,56,78,74,54,80,82,65,62]s=pd.Series(data)plt.boxplot(x=s.values,whis=1.5)plt.show()程序運(yùn)行結(jié)果如圖5.4所示。圖5.4例5.7程序運(yùn)行的結(jié)果從圖5.4可以看出,檢測出的異常值為34。異常值處理pandas處理缺失值異常值處理是數(shù)據(jù)預(yù)處理中的一個(gè)重要步驟,它是保證原始數(shù)據(jù)可靠性,平均值與標(biāo)準(zhǔn)差計(jì)算準(zhǔn)確性的前提。(1)直接刪除直接將含有異常值的記錄刪除。這種方法簡單易行,但缺點(diǎn)也不容忽視,一是在觀測值很少的情況下,這種刪除操作會(huì)造成樣本量不足;二是直接刪除、可能會(huì)對(duì)變量的原有分布造成影響,從而導(dǎo)致統(tǒng)計(jì)模型的不穩(wěn)定。(2)視為缺失值利用處理缺失值的方法來處理。這一方法的好處是能夠利用現(xiàn)有變量的信息,來填補(bǔ)異常值。需要注意的是,將該異常值作為缺失值處理,需要根據(jù)該異常值的特點(diǎn)來進(jìn)行,此時(shí)需要考慮該異常值(缺失值)是完全隨機(jī)缺失、隨機(jī)缺失還是非隨機(jī)缺失的不同情況進(jìn)行不同處理。(3)平均值修正如果數(shù)據(jù)的樣本量很小的話,也可用前后兩個(gè)觀測值的平均值來修正該異常值。這其實(shí)是一種比較折中的方法,大部分的參數(shù)方法是針對(duì)均值來建模的,用平均值來修正,優(yōu)點(diǎn)是能克服丟失樣本的缺陷,缺點(diǎn)是丟失了樣本“特色”。異常值處理pandas處理缺失值(4)蓋帽法將某連續(xù)變量均值上下三倍標(biāo)準(zhǔn)差范圍外的記錄替換為均值上下三倍標(biāo)準(zhǔn)差值,即蓋帽處理。如圖5.5所示。圖5.5蓋帽法示意圖異常值處理pandas處理缺失值(5)分箱平滑法分箱平滑法是指通過考察“鄰居”(周圍的值)來平滑存儲(chǔ)數(shù)據(jù)的值。分箱的主要目的是消除異常值,將連續(xù)數(shù)據(jù)離散化,增加粒度。①分箱在分箱前,一定要先排序數(shù)據(jù),再將它們分配到等深(等寬)的箱子中。等深分箱:按記錄數(shù)進(jìn)行分箱,每箱具有相同的記錄數(shù),每箱的記錄數(shù)稱為箱子的權(quán)重,也稱箱子的深度。等寬分箱:在整個(gè)屬性值的區(qū)間上平均分布,即每個(gè)箱的區(qū)間范圍設(shè)定為一個(gè)常量,稱為箱子的寬度。例如客戶收入屬性income排序后的值(人民幣:元):2300,2500,2800,3000,3500,4000,4500,4800,5000,5300,5500,6000,6200,6700,7000,7200分箱的結(jié)果如下:等深分箱。如深度為4,分箱結(jié)果為:箱1:2300,2500,2800,3000;箱2:3500,4000,4500,4800;箱3:5000,5300,5500,6000;箱4:6200,6700,7000,7200。等寬分箱。如寬度為1200元人民幣,分箱結(jié)果為:箱1:2300,2500,2800,3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國地產(chǎn)綠化商業(yè)計(jì)劃書
- 2024-2030年中國咸菜市場發(fā)展前景調(diào)研與投資策略分析報(bào)告
- 2024-2030年中國印花熱熔膠融資商業(yè)計(jì)劃書
- 2024年體育用品銷售租賃合同
- 滿洲里俄語職業(yè)學(xué)院《STEM課程教學(xué)與微課制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年兒童個(gè)性化教育服務(wù)聘請(qǐng)教師勞動(dòng)合同模板3篇
- 2024年房屋中介居間協(xié)議2篇
- 漯河醫(yī)學(xué)高等??茖W(xué)?!懂嫹◣缀闻c土建制圖》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年銅川貨運(yùn)從業(yè)資格證模擬考試下載什么軟件
- 2024年標(biāo)準(zhǔn)格式個(gè)人等額本息貸款合同版B版
- 成長賽道-模板參考
- 室外晾衣棚施工方案
- 兒童健康管理服務(wù)總結(jié)分析報(bào)告
- 殯葬行業(yè)的風(fēng)險(xiǎn)分析
- 下肢靜脈血栓個(gè)案查房
- 通信工程冬季施工安全培訓(xùn)
- 痛風(fēng)病科普講座課件
- 工作崗位風(fēng)險(xiǎn)評(píng)估報(bào)告
- 護(hù)理查房肺部感染心衰
- 拒執(zhí)罪申請(qǐng)書范本
- 《阿米巴經(jīng)營》讀書分享
評(píng)論
0/150
提交評(píng)論