大數(shù)據(jù)技術(shù)及應(yīng)用-基于Python語言 課件 第8、9章 大數(shù)據(jù)分析與挖掘、大數(shù)據(jù)可視化_第1頁
大數(shù)據(jù)技術(shù)及應(yīng)用-基于Python語言 課件 第8、9章 大數(shù)據(jù)分析與挖掘、大數(shù)據(jù)可視化_第2頁
大數(shù)據(jù)技術(shù)及應(yīng)用-基于Python語言 課件 第8、9章 大數(shù)據(jù)分析與挖掘、大數(shù)據(jù)可視化_第3頁
大數(shù)據(jù)技術(shù)及應(yīng)用-基于Python語言 課件 第8、9章 大數(shù)據(jù)分析與挖掘、大數(shù)據(jù)可視化_第4頁
大數(shù)據(jù)技術(shù)及應(yīng)用-基于Python語言 課件 第8、9章 大數(shù)據(jù)分析與挖掘、大數(shù)據(jù)可視化_第5頁
已閱讀5頁,還剩167頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第8章大數(shù)據(jù)分析與挖掘目錄Contents8.1

數(shù)據(jù)的描述性分析8.2

回歸分析8.3

分類算法簡介8.4聚類算法簡介8.5分布式大數(shù)據(jù)挖掘算法典型案例數(shù)據(jù)的描述性分析8.1數(shù)據(jù)的集中趨勢度量數(shù)據(jù)的離散趨勢度量數(shù)據(jù)的偏態(tài)特性度量數(shù)據(jù)相關(guān)性計(jì)算8.1

數(shù)據(jù)的描述性分析所謂數(shù)據(jù)的描述性分析方法是指用統(tǒng)計(jì)學(xué)方法,描述數(shù)據(jù)的統(tǒng)計(jì)特征量,分析數(shù)據(jù)的分布特性。

主要包括數(shù)據(jù)的集中趨勢分析(Centraltendency)、數(shù)據(jù)離散趨勢分析(Dispersiontendency)、數(shù)據(jù)的頻率分布(Frequencydistribution)等。

8.1.1數(shù)據(jù)的集中趨勢度量

1.均值(Mean)

算術(shù)平均值:計(jì)算集合中的所有數(shù)據(jù)的算術(shù)平均值。

加權(quán)平均:又稱加權(quán)算術(shù)平均,集合中每個(gè)值

與一個(gè)權(quán)值

相關(guān)聯(lián)。

截?cái)嗑担喝サ糇罡吆妥畹椭岛笥?jì)算的均值,可以抵消少數(shù)極端值的影響,例如:薪水的截?cái)嗑悼梢韵呤杖霕O端值對平均薪資的影響。

8.1.1數(shù)據(jù)的集中趨勢度量

2.中位數(shù)(Median)

中位數(shù)指的是按順序排列的一組數(shù)據(jù)中居于中間位置的數(shù),奇數(shù)個(gè)數(shù)值的中間那個(gè)值,或者是偶數(shù)個(gè)數(shù)值的中間兩個(gè)值的平均值?!纠?.1】求20個(gè)數(shù)57,55,85,24,33,49,94,2,8,51,71,30,91,6,47,50,65,43,41,7的中位數(shù)。

首先對數(shù)據(jù)從小到大排序,結(jié)果為:267824303341434749505155576571859194。中間兩個(gè)數(shù)為47和49,因此該組數(shù)據(jù)的中位數(shù)為48。

相較于均值,中位數(shù)有著更好的抗干擾性,例如,在99個(gè)年收10萬的人中加入一個(gè)年收1000萬的,可以把平均年收入提高到19.9萬,但這一均值實(shí)際上并沒有很好地反映出這個(gè)人群的收入特征,而中位數(shù)對這個(gè)問題并沒有那么敏感。

8.1.1數(shù)據(jù)的集中趨勢度量

3.眾數(shù)(Mode)

眾數(shù)是指在一組數(shù)據(jù)中出現(xiàn)次數(shù)最多的數(shù),即出現(xiàn)頻率最高的那個(gè)數(shù),眾數(shù)也被稱作數(shù)據(jù)的“?!保∕ode)。

下圖是對稱數(shù)據(jù)、右偏數(shù)據(jù)和左偏數(shù)據(jù)的中位數(shù)、均值和眾數(shù)位置示意圖。對稱數(shù)據(jù)、右偏數(shù)據(jù)和左偏數(shù)據(jù)的中位數(shù)、均值和眾數(shù)位置8.1.1數(shù)據(jù)的集中趨勢度量

提示:所謂左偏和右偏指的是均值相對于眾數(shù)的位置,均值在眾數(shù)左邊則為左偏,在右則為右偏。可以觀察到以下現(xiàn)象:①對稱數(shù)據(jù)的中位數(shù)、均值和眾數(shù)是重合的;②右偏態(tài)(正偏離)數(shù)據(jù)的均值位于中位數(shù)和眾數(shù)的右側(cè);③左偏態(tài)(負(fù)偏離)數(shù)據(jù)的均值位于中位數(shù)和眾數(shù)的左側(cè)。8.1.2數(shù)據(jù)的離散趨勢度量

1.方差(Variance)

在統(tǒng)計(jì)描述中,方差是集合中每個(gè)數(shù)據(jù)與均值差的平方和。

總體方差的計(jì)算公式為:

8.1.2數(shù)據(jù)的離散趨勢度量

方差的值越大說明該數(shù)據(jù)項(xiàng)波動越大。當(dāng)數(shù)據(jù)分布比較分散時(shí),各個(gè)數(shù)據(jù)與平均值的差的平方和較大,方差就較大;當(dāng)數(shù)據(jù)分布比較集中時(shí),各個(gè)數(shù)據(jù)與平均值差的平方和較小。

8.1.2數(shù)據(jù)的離散趨勢度量

2.四分位數(shù)(Quartile)

四分位數(shù)也稱四分位點(diǎn),將所有數(shù)值按大小順序排列并分成四等份,處于三個(gè)分割點(diǎn)位置的就是四分位數(shù),如圖所示:l第1“四分位數(shù)”(Q1),又稱“較小四分位數(shù)”,

等于該樣本中所有數(shù)值由小到大排列后第25%的數(shù)字。l第2“四分位數(shù)”(Q2),又稱“中位數(shù)”,

等于該樣本中所有數(shù)值由小到大排列后第50%的數(shù)字。l第3“四分位數(shù)”(Q3),又稱“較大四分位數(shù)”,

等于該樣本中所有數(shù)值由小到大排列后第75%的數(shù)字。l四分位距:第三“四分位數(shù)”與第一“四分位數(shù)”的差距

8.1.2數(shù)據(jù)的離散趨勢度量25%25%25%25%

例如,有一組數(shù)據(jù):6,7,15,36,39,40,41,42,43,47,49,將其分為四等分,根據(jù)四分位數(shù)的定義可知15是第1四分位數(shù),40是第2四分位數(shù),43是第3四分位數(shù)。四分位數(shù)示意圖Q1Q2Q38.1.2數(shù)據(jù)的離散趨勢度量

3.五數(shù)概括

數(shù)據(jù)分布形狀的完整概括可以用所謂的“五數(shù)概括”來描述,包括中位數(shù)、四分位數(shù)Q1和Q3,最小和最大觀測值。五數(shù)概括通常用箱形圖(盒圖)進(jìn)行可視化表示。

箱形圖(Boxplot)又稱為盒圖,是對五數(shù)概括的可視化,數(shù)據(jù)分布用一個(gè)盒子來表示,如圖所示。箱形圖(Boxplot)示例

8.1.2數(shù)據(jù)的離散趨勢度量

在箱形圖中,盒子兩端是第一和第三“四分位數(shù)”,“中位數(shù)”在盒子里用一條線標(biāo)記出來,“外邊界”是盒子外面延伸到最大值和最小值的兩條線,也稱為“胡須”。

例如,右圖是學(xué)生成績分布的箱形,可以從圖中觀察到學(xué)生的英語成績相對其它科目普遍較好,而數(shù)學(xué)則大部分都處于80分以下,成績集中在65~78之間。學(xué)生成績分布箱形圖示例8.1.2數(shù)據(jù)的離散趨勢度量

4.離散系數(shù)

離散系數(shù)(CoefficientofVariation)又稱變異系數(shù),樣本的變異系數(shù)是樣本標(biāo)準(zhǔn)差與樣本平均數(shù)之比:

表:成人與幼兒數(shù)據(jù)【例8.2】下表中有兩組分別代表成人和幼兒的數(shù)據(jù),用離散系數(shù)比較兩組數(shù)據(jù)的分布特性。組別數(shù)據(jù)均值標(biāo)準(zhǔn)差離散系數(shù)成人166,167,169,169,169,170,170,171,171,171,171,172,173,173,173,175,175,176,177,179171.853.330.0194幼兒67,68,69,70,70,71,71,71,72,72,72,72,72,72,73,74,75,76,76,7772.002.640.0367

8.1.2數(shù)據(jù)的離散趨勢度量

兩組數(shù)據(jù)平均值相差很大,標(biāo)準(zhǔn)差不能判斷各自數(shù)據(jù)差異的大小。但通過計(jì)算離散系數(shù)可以看出,雖然成人組的標(biāo)準(zhǔn)差大于幼兒組,但是幼兒組的離散系數(shù)明顯大于成人組,因此可以說明,幼兒組的身高差異比成人組大。

8.1.3數(shù)據(jù)的偏態(tài)特性度量

1.偏度(Skewness)

偏度是描述分布“偏離對稱性程度”的特征數(shù),也稱為偏態(tài)系數(shù),是統(tǒng)計(jì)數(shù)據(jù)分布偏斜方向和程度的度量。

偏度被定義為三階標(biāo)準(zhǔn)中心矩:

偏度大于0為正偏態(tài)分布(也稱為右偏態(tài))。偏度小0為負(fù)偏態(tài)分布(也稱為左偏態(tài))。

8.1.3數(shù)據(jù)的偏態(tài)特性度量

2.峰度(Kurtosis)

峰度系數(shù)是用來反映頻數(shù)分布曲線頂端尖峭或扁平程度的指標(biāo)。通過對峰度系數(shù)的測量,我們能夠判定數(shù)據(jù)分布相對于正態(tài)分布而言是更陡峭還是平緩。

峰度被定義為四階標(biāo)準(zhǔn)中心矩:公式中的“-3”是為了讓正態(tài)分布數(shù)據(jù)的峰度為0。

峰度和曲線形狀示意圖

8.1.3數(shù)據(jù)的偏態(tài)特性度量【例】用Excel軟件對數(shù)據(jù)進(jìn)行“描述統(tǒng)計(jì)”

使用Excel軟件可以對很方便地對數(shù)據(jù)進(jìn)行描述性統(tǒng)計(jì),在使用該功能前,需要加載“分析工具庫“加載項(xiàng),然后在”數(shù)據(jù)“菜單的”數(shù)據(jù)分析“工具中選擇”描述統(tǒng)計(jì)“功能即可完成。Excel中進(jìn)行統(tǒng)計(jì)性描述分析的界面如下圖所示。Excel的數(shù)據(jù)描述性統(tǒng)計(jì)示意圖

8.1.4

數(shù)據(jù)相關(guān)性計(jì)算

大多數(shù)據(jù)包含了多個(gè)維度,想要分析兩個(gè)多維度數(shù)據(jù)之間的關(guān)系,可以用協(xié)方差和Pearson相關(guān)系數(shù)等方法。

例如,下表是一個(gè)班級某門課程的筆試成績和實(shí)驗(yàn)成績,想要分析兩個(gè)成績之間是否有相關(guān)性(是否筆記成績較好的學(xué)生,實(shí)驗(yàn)成績也相對較好)。筆試成績41816666673810694441492558實(shí)驗(yàn)成績48978525971085878840852886表

:某課程的筆試成績與實(shí)驗(yàn)成績

8.1.4數(shù)據(jù)相關(guān)性計(jì)算

再如,有兩個(gè)時(shí)間序列數(shù)據(jù)(如圖所示),它們之間是否相關(guān)性?

使用統(tǒng)計(jì)方法分析數(shù)據(jù)之間相關(guān)性的常用方法有:協(xié)方差、皮爾遜相關(guān)系數(shù)和斯皮爾曼秩相關(guān)系數(shù)。

8.1.4數(shù)據(jù)相關(guān)性計(jì)算

1.協(xié)方差

兩個(gè)實(shí)數(shù)隨機(jī)變量X與Y的數(shù)學(xué)期望值分別為E(X)=μ與E(Y)=ν,它們之間的協(xié)方差定義為:上式也可以表示為:協(xié)方差具有以下性質(zhì):

如果兩個(gè)變量的變化趨勢一致,那么兩個(gè)變量之間的協(xié)方差就是正值。

如果兩個(gè)變量的變化趨勢相反,那么兩個(gè)變量之間的協(xié)方差就是負(fù)值。

如果X與Y是統(tǒng)計(jì)獨(dú)立的,那么二者之間的協(xié)方差就是0。但是,反過來并不成立。即如果X與Y的協(xié)方差為0,二者并不一定是統(tǒng)計(jì)獨(dú)立的。

8.1.4數(shù)據(jù)相關(guān)性計(jì)算兩個(gè)隨機(jī)變量X與Y之間的相互關(guān)系,一般有如下圖所示的3種情況:X與Y正相關(guān)時(shí),它們的分布大部分在區(qū)域(1)和(3)中,有cov(X,Y)>0。當(dāng)X與Y負(fù)相關(guān)時(shí),它們的分布大部分在區(qū)域(2)和(4)中,有cov(X,Y)<0。當(dāng)X與Y不相關(guān)時(shí),它們在區(qū)域(1)和(3)中的分布,與在區(qū)域(2)和(4)中的分布幾乎一樣多,有cov(X,Y)=0。

8.1.4數(shù)據(jù)相關(guān)性計(jì)算2.皮爾遜相關(guān)系數(shù)

皮爾遜相關(guān)系數(shù)(Pearsoncorrelationcoefficient)也稱為簡單相關(guān)系數(shù),是標(biāo)準(zhǔn)化的協(xié)方差,它的取值范圍是[-1,1]。

兩個(gè)變量之間的皮爾遜相關(guān)系數(shù)被定義為兩個(gè)變量之間的協(xié)方差和標(biāo)準(zhǔn)差的商:

上式定義了隨機(jī)變量的總體相關(guān)系數(shù)。

8.1.4數(shù)據(jù)相關(guān)性計(jì)算

3.斯皮爾曼秩相關(guān)系數(shù)

斯皮爾曼秩相關(guān)系數(shù)(Spearmanrankcorrelationcoefficient)與皮爾遜相關(guān)系數(shù)一樣,它也可以反映兩組變量聯(lián)系的緊密程度,取值在[-1,1]之間,計(jì)算方法上也完全相同,不同的是它建立在秩次的基礎(chǔ)之上,對原始變量的分布和樣本容量的大小不作要求,屬于非參數(shù)統(tǒng)計(jì)方法,適用范圍更廣。設(shè)R(r1,r2,…,rn)表示X在(x1,x2,…,xn)中的秩,Q(q1,q2,…,qn)表示Y在(y1,y2,…,yn)中的秩,如果X和Y具有同步性,那么R和Q也會表現(xiàn)出同步性,反之亦然,將其代入皮爾遜相關(guān)系數(shù)的計(jì)算公式,就得到秩之間的一致性,也就是Spearman相關(guān)系數(shù)。斯皮爾曼秩相關(guān)系數(shù)的定義為:

回歸分析8.2一元線性回歸(LinearRegression)其他類型的回歸模型

8.2

回歸分析

所謂回歸分析(RegressionAnalysis),是在現(xiàn)有觀察數(shù)據(jù)的基礎(chǔ)上,利用數(shù)理統(tǒng)計(jì)方法建立因變量與自變量之間的回歸關(guān)系函數(shù)表達(dá)式(稱回歸方程式)。這種技術(shù)通常用于預(yù)測分析、時(shí)間序列模型以及發(fā)現(xiàn)變量之間的因果關(guān)系。

“回歸”一詞是由英國著名統(tǒng)計(jì)學(xué)家弗朗西斯·高爾頓(FrancisGalton,1822—1911)引入的,他是最先應(yīng)用統(tǒng)計(jì)方法研究兩個(gè)變量之間關(guān)系問題的人。弗朗西斯·高爾頓對父母身高與兒女身高之間的關(guān)系很感興趣,并致力于此方面的研究。高爾頓發(fā)現(xiàn),雖然有一個(gè)趨勢:父母高,兒女也高;父母矮,兒女也矮,但從平均意義上說,盡管父母雙親都異常高或異常矮,兒女的身高并非也普遍地異常高或異常矮,而是具有“回歸“于人口總平均身高的趨勢。

8.2

回歸分析

回歸分析中,當(dāng)研究的因果關(guān)系只涉及因變量和一個(gè)自變量時(shí),叫做一元回歸分析;當(dāng)研究的因果關(guān)系涉及因變量和兩個(gè)或兩個(gè)以上自變量時(shí),叫做多元回歸分析。此外,回歸分析中,又依據(jù)描述自變量與因變量之間因果關(guān)系的函數(shù)表達(dá)式是線性的還是非線性的,分為線性回歸分析和非線性回歸分析。8.2.1一元線性回歸

1.一元線性回歸模型

回歸模型是描述因變量如何依賴自變量和隨機(jī)誤差項(xiàng)的方程,線性回歸使用最佳的擬合直線(也就是回歸線)建立因變量(Y)和一個(gè)或多個(gè)自變量(X)之間的聯(lián)系。右圖是一元線性回歸示意圖。

一元線性回歸示意圖一元線性回歸模型只涉及一個(gè)自變量,可表述為:

8.2.1一元線性回歸

2.最小二乘估計(jì)法

最小二乘估計(jì)是求解線性回歸方程的最常用方法,最小二乘原理就是所選的樣本回歸函數(shù)使得所有Y的估計(jì)值與真實(shí)值差的平方和最小。

首先我們引入樣本回歸函數(shù)和殘差等相關(guān)概念。樣本回歸函數(shù)(sampleregressionfunction,SRF)是根據(jù)樣本數(shù)據(jù)擬合的回歸方程,表示為:殘差指的是的真實(shí)值與估計(jì)值之差:

普通最小二乘法(ordinaryleastsquares,OLS),即選擇參數(shù)和,使得全部觀察值的殘差平方和最?。?/p>

8.2.1一元線性回歸

求解聯(lián)立方程(損失函數(shù)對求偏導(dǎo)):

解得:求得回歸方程后,給定樣本以外的自變量的觀測(X),就可以得到被因變量的預(yù)測值(Y)。8.2.1一元線性回歸【例】某公司廣告費(fèi)與銷售額的一元線性回歸分析有一個(gè)公司每月的廣告費(fèi)用和銷售額如表所示:表

:某公司每月的廣告費(fèi)用和銷售額廣告費(fèi)(萬元)X489871261069銷售額(萬元)Y9202215172318251020如果我們把廣告費(fèi)和銷售額畫在二維坐標(biāo)內(nèi),就能夠得到一個(gè)散點(diǎn)圖,如果想探索廣告費(fèi)和銷售額的關(guān)系,可以利用一元線性回歸做出一條擬合直線方程,結(jié)果(取小數(shù)點(diǎn)后4位)為:y=2.2516+1.9808*x樣本數(shù)據(jù)點(diǎn)與回歸直線的圖:樣本數(shù)據(jù)點(diǎn)與回歸直線圖8.2.2其他類型的回歸模型一元線性回歸的Python語言參考代碼如下:importpandasaspdimportnumpyasnpfrommatplotlibimportpyplotaspltfromsklearn.linear_modelimportLinearRegressiondata=pd.read_csv('廣告費(fèi)與銷售額.csv')Model=LinearRegression()x=data[['廣告費(fèi)']]y=data[['銷售額']]Model.fit(x,y)#訓(xùn)練模型beta0=Mercept_[0]print('截距=',beta0)beta1=Model.coef_[0][0]print('斜率=',beta1)#畫散點(diǎn)圖plt.rcParams['font.family']='SimHei'fig=plt.figure(dpi=300)ax=fig.add_subplot()ax.scatter(x,y)X=np.linspace(0,16,100)Y=beta0+beta1*Xax.scatter(X,Y,s=1,color='black')ax.set_xlabel('廣告費(fèi)(萬元)',fontproperties='SimHei',fontsize=12)ax.set_ylabel('銷售額(萬元)',fontproperties='SimHei',fontsize=12)plt.show()8.2.2其他類型的回歸模型1.多元回歸模型

在回歸分析中,如果有兩個(gè)或兩個(gè)以上的自變量,就稱為多元回歸,多元線性回歸模型可以表示為:

8.2.2其他類型的回歸模型2.非線性回歸如果回歸模型的因變量是自變量的一次以上函數(shù)形式,回歸規(guī)律在圖形上表現(xiàn)為形態(tài)各異的各種曲線(如圖所示),稱為非線性回歸。非線性回歸問題示意圖8.2.2

其他類型的回歸模型1確定變量間的依存關(guān)系,根據(jù)實(shí)際資料做散點(diǎn)圖2按照圖形的分布形狀選擇合適的模型(回歸函數(shù)類型),常見的函數(shù)有多項(xiàng)式回歸、雙曲線、冪函數(shù)、二次曲線和對數(shù)函數(shù)等;3用某種優(yōu)化方法確定回歸模型中的未知參數(shù)。求解非線性回歸問題需要預(yù)先選擇適配的曲線類型,基本方法為:確定變量間的依存關(guān)系,根據(jù)實(shí)際資料做散點(diǎn)圖按照圖形的分布形狀選擇合適的模型(回歸函數(shù)類型),常見的函數(shù)有多項(xiàng)式回歸、雙曲線、冪函數(shù)、二次曲線和對數(shù)函數(shù)等;用某種優(yōu)化方法確定回歸模型中的未知參數(shù)。

分類算法簡介8.3邏輯回歸近鄰分類算法決策樹算法8.3.1邏輯回歸

邏輯回歸(Logisticregression)屬于分類算法,用于估計(jì)某種事物的可能性。邏輯回歸是當(dāng)前常用的一種機(jī)器學(xué)習(xí)方法,例如在許多深度學(xué)習(xí)模型中,為了判決樣本的類別,在模型的最后通常會加上一個(gè)邏輯回歸層。以下介紹邏輯回歸的基本思想。

原始的線性回歸方程可以表示為:

為了進(jìn)行邏輯判斷(結(jié)果為0或1),應(yīng)用logistic函數(shù)(如:sigmoid函數(shù))將線性回歸的輸出壓縮到0和1之間:

8.3.1邏輯回歸

例如,對于二分類問題,假設(shè)樣本是{x,y},y是0或者1,表示負(fù)類(negative)或者正類(positive),樣本x是m維特征向量。那么樣本x屬于正類,也就是y=1的“概率”可以通過下面的邏輯函數(shù)來表示:判別的準(zhǔn)則是:

把樣本分入{y=1};否則分入{y=0}。也就是說,如果樣本x屬于正類的概率大于0.5,那么就判定它是正類,否則就是負(fù)類。8.3.1邏輯回歸

8.3.1邏輯回歸【例】判斷客戶拖欠貸款可能性的邏輯回歸分析模型。

現(xiàn)有如下表所示的銀行貸款拖欠率數(shù)據(jù)文件bankloan.xls,要求建立分類模型,預(yù)測客戶是否會拖欠貸款。表

銀行貸款拖欠率數(shù)據(jù)性別年齡教育工齡收入房產(chǎn)面積負(fù)債率信用卡負(fù)債其他負(fù)債違約141317176.00137.009.3011.365.01102711031.00288.0017.301.364.00014011555.00226.005.500.862.1708.3.1邏輯回歸用Python的機(jī)器學(xué)習(xí)庫sklearn建立邏輯回歸模型,參考代碼如下:8.3.1邏輯回歸程序的輸出結(jié)果:模型的平均準(zhǔn)確度為:0.81均方誤差為:0.19準(zhǔn)確率:0.8085714285714285[0.792857140.764285710.857142860.807142860.82142857]8.3.2近鄰分類算法

近鄰分類算法,或稱為K最近鄰(KNN,K-NearestNeighbor)分類算法是數(shù)據(jù)挖掘分類技術(shù)中最經(jīng)典的方法之一。該算法由于簡單有效,已經(jīng)被廣泛應(yīng)用于眾多領(lǐng)域,并派生出了各種改進(jìn)版本,例如基于距離權(quán)重的KNN算法、基于特征權(quán)重的KNN算法和基于代表點(diǎn)的KNN算法(如KNNModel)等。8.3.2近鄰分類算法

1.kNN的核心思想

對于一個(gè)需要預(yù)測的輸入向量x,我們只需要在訓(xùn)練數(shù)據(jù)集中尋找k個(gè)與向量x最近的向量的集合,然后把x的類別預(yù)測為這k個(gè)樣本中類別數(shù)最多的那一類。KNN算法的流程如下:8.3.2近鄰分類算法

2.k值的設(shè)定

k值的設(shè)定在KNN算法中十分關(guān)鍵,取值過大易造成欠擬合效果,取值過小易造成過擬合效果。例如,在圖中,綠色圓要被決定賦予哪個(gè)類,是紅色三角形還是藍(lán)色四方形?如果k=3,由于紅色三角形所占比例為2/3,綠色圓將被賦予紅色三角形那個(gè)類,如果k=5,由于藍(lán)色四方形比例為3/5,因此綠色圓被賦予藍(lán)色四方形類。k值對近鄰分類結(jié)果的影響8.3.2近鄰分類算法

為了確定合適的k值,可以通過交叉驗(yàn)證測試法,從選取一個(gè)較小的k值開始,不斷增加k的值,然后計(jì)算驗(yàn)證集合的方差,最終找到一個(gè)比較合適的k值。在圖所示的k值與分類錯(cuò)誤率的關(guān)系圖中,可以看出選擇k=10,可以讓分類效果最好。用交叉驗(yàn)證法選擇k值示意圖8.3.2近鄰分類算法

【例】用交叉驗(yàn)證法尋找KNN分類算法的最優(yōu)k值鳶尾花數(shù)據(jù)集Iris是一個(gè)經(jīng)典的數(shù)據(jù)集,該數(shù)據(jù)集包含3類共150條記錄,每類各有50個(gè)樣本,每個(gè)樣本都有4項(xiàng)屬性:sepallength、spalwidth、petallength和petalwidth(花萼長度、花萼寬度、花瓣長度、花瓣寬度),可以通過這4個(gè)特征預(yù)測鳶尾花卉屬于(iris-setosa,iris-versicolour,iris-virginica)中的哪一品種。右圖是一個(gè)鳶尾花的圖例。鳶尾花圖例8.3.2近鄰分類算法本例題對鳶尾花數(shù)據(jù)集用交叉驗(yàn)證法確定KNN算法的最優(yōu)k值,相關(guān)的Python語言參考代碼如下:8.3.2近鄰分類算法

根據(jù)本例題Python程序運(yùn)行的如圖所示,x軸為k值,y軸為分類精度accuracy。可以看出,用KNN算法對鳶尾花數(shù)據(jù)集iris進(jìn)行分類,取k=12可以得到最好的分類精度。kNN算法運(yùn)行結(jié)果示意圖8.3.3決策樹算法

決策樹算法通過訓(xùn)練數(shù)據(jù)構(gòu)建決策樹,對未知的數(shù)據(jù)進(jìn)行分類。決策樹的每個(gè)內(nèi)部節(jié)點(diǎn)表示在一個(gè)屬性(attribute)上的測試,每個(gè)分枝代表該測試的一個(gè)輸出,而每個(gè)樹葉結(jié)點(diǎn)存放著一個(gè)類標(biāo)號。

1.信息熵的性質(zhì)

變量的不確定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。隨機(jī)變量的分布越接近均勻分布,其離散程度越大,熵值則越高。圖是信息熵性質(zhì)示意圖。信息熵性質(zhì)示意圖8.3.3決策樹算法8.3.3決策樹算法2.信息增益

信息增益是針對一個(gè)屬性而言的,待分類的集合的熵和選定某個(gè)屬性的條件熵之差。

舉例說明如下:

下表是描述天氣預(yù)報(bào)與是否出去打網(wǎng)球的預(yù)測數(shù)據(jù),該數(shù)據(jù)集包含4個(gè)屬性:Outlook、Temperature、Humidity和Windy,學(xué)習(xí)目標(biāo)是play或者notplay。表中一共14個(gè)樣例,包括9個(gè)正例和5個(gè)負(fù)例。OutlookTemperatureHumidityWindyPlay?(類別)overcastmildhightrueyesovercasthotnormalfalseyesrainmildhightruenorainmildhighfalseyesraincoolnormalfalseyesraincoolnormaltruenoovercastcoolnormaltrueyessunnymildhighfalsenosunnycoolnormalfalseyesrainmildnormalfalseyesSunnymildnormalfalseyessunnyhothighfalsenosunnyhothightruenoovercasthothighfalseyes表:天氣預(yù)報(bào)對打網(wǎng)球決策影響數(shù)據(jù)集8.3.3決策樹算法8.3.3決策樹算法8.3.3決策樹算法1.ID3算法的劃分屬性選擇策略ID3算法在決策樹的每一個(gè)非葉子結(jié)點(diǎn)劃分之前,先計(jì)算每一個(gè)屬性所帶來的信息增益,選擇最大信息增益的屬性來劃分,因?yàn)樾畔⒃鲆嬖酱?,區(qū)分樣本的能力就越強(qiáng),越具有代表性。

4.ID3算法的缺點(diǎn)和改進(jìn)

ID3的缺點(diǎn)是信息增益偏向取值較多的屬性。其原因是當(dāng)某個(gè)屬性的取值較多時(shí),根據(jù)此特征劃分更容易得到確定性更強(qiáng)的子集劃分結(jié)果,因此劃分之后的熵更低,則信息增益更大,因此信息增益比較偏向取值較多的屬性。8.3.3決策樹算法

其中,t代表給定的節(jié)點(diǎn),i代表標(biāo)簽的任意分類,p(i|t)

代表標(biāo)簽分類i在節(jié)點(diǎn)t上所占的比例。

CART分類樹算法每次僅對某個(gè)特征(離散屬性)的值進(jìn)行二分,因此CART分類樹算法建立起來的是二叉樹,而不是多叉樹。

對于連續(xù)屬性怎么做?8.3.3決策樹算法

CART算法用Gini指數(shù)作為劃分屬性度量:采用基尼指數(shù)(Giniindex)來度量信息不純度,選擇基尼指數(shù)最小的作為節(jié)點(diǎn)特征(基尼系數(shù)介于0-1之間,總體樣本包含的類別越雜亂,Gini指數(shù)就越大)?;嵯禂?shù)定義為:

聚類算法簡介8.4主要的聚類算法類型聚類質(zhì)量度量指標(biāo)決策樹算法K-Means算法8.4

聚類算法簡介

聚類(Clustering)的目的是把大型數(shù)據(jù)劃分成不同的簇,它所針對的是無標(biāo)簽類別的數(shù)據(jù),因此聚類屬于無監(jiān)督學(xué)習(xí)類型。所謂“簇”(Cluster),是指數(shù)據(jù)對象的集合,同一簇中的對象之間彼此相似,不同簇之間的對象相異。下圖是聚類算法的示意圖。

聚類算法示意圖8.4

聚類算法簡介

聚類有非常廣泛的應(yīng)用場景,例如:客戶細(xì)分:發(fā)現(xiàn)顧客中獨(dú)特的群組,然后利用他們的特性發(fā)展目標(biāo)營銷項(xiàng)目。土地利用:在土地觀測數(shù)據(jù)庫中發(fā)現(xiàn)相似的區(qū)域。保險(xiǎn):識別平均索賠額度較高的機(jī)動車輛保險(xiǎn)客戶群組。網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn):運(yùn)用聚類算法發(fā)現(xiàn)復(fù)雜網(wǎng)絡(luò)中的社區(qū)結(jié)構(gòu),如圖所示聚類算法示意圖8.4.1主要的聚類算法類型 劃分聚類方法(partitioningmethods):給定一個(gè)有n個(gè)對象的數(shù)據(jù)集,劃分聚類技術(shù)將構(gòu)造數(shù)據(jù)k個(gè)劃分(kn),每一個(gè)劃分就代表一個(gè)簇。并要求每一個(gè)簇至少包含一個(gè)對象,每一個(gè)對象屬于且僅屬于一個(gè)簇。代表算法:K-Means、K-medoids和CLARANS等算法。凝聚的層次聚類:一種自底向上的策略,首先將每個(gè)對象作為一個(gè)簇,然后合并這些原子簇為越來越大的簇,直到某個(gè)終結(jié)條件被滿足。分裂的層次聚類:采用自頂向下的策略,它首先將所有對象置于一個(gè)簇中,然后逐漸細(xì)分為越來越小的簇,直到達(dá)到了某個(gè)終結(jié)條件。代表算法:BRICH、CURE和ROCK等算法?;诿芏鹊姆椒?density-basedmethods):密度聚類方法的指導(dǎo)思想是,只要一個(gè)區(qū)域中的點(diǎn)的密度大于某個(gè)域值,就把它加到與之相近的聚類中去。這類算法能克服基于距離的算法只能發(fā)現(xiàn)“類圓形”的聚類的缺點(diǎn),可發(fā)現(xiàn)任意形狀的聚類,且對噪聲數(shù)據(jù)不敏感。代表算法:DBSCAN、OPTICS和DENCLUE等算法?;诰W(wǎng)格的方法(grid-basedmethods):

該方法是一種使用多分辨率的網(wǎng)格數(shù)據(jù)結(jié)構(gòu)。它將對象空間量化為有限數(shù)目的單元,這些單元形成了網(wǎng)格結(jié)構(gòu),所有的聚類操作都在該結(jié)構(gòu)上進(jìn)行。

代表算法:CLIQUE、STING等算法。目前主要的聚類分析算法可以分為四大類型:8.4.1主要的聚類算法類型

下圖是目前常見的聚類方法和典型代表性算法的歸類和總結(jié),供讀者參考。

8.4.2聚類質(zhì)量度量指標(biāo)

好的聚類方法需要產(chǎn)生高質(zhì)量的聚類結(jié)果,所生成的簇必須滿足:高的內(nèi)部相似度(簇內(nèi)越緊密越好)低的外部相似度(簇間越分離越好)

簇內(nèi)距離最小化

簇間距離最大化

聚類算法目標(biāo)示意圖8.4.2聚類質(zhì)量度量指標(biāo)

常用的聚類質(zhì)量度量指標(biāo)有:

(1)Compactness(緊密性)(CP)以簇內(nèi)誤差的平方和(SumoftheSquaredError,SSE)作為度量標(biāo)準(zhǔn)(計(jì)算每一個(gè)類各點(diǎn)到聚類中心的距離),越小意味著類內(nèi)聚類距離越近。缺點(diǎn):沒有考慮類間效果。8.4.2聚類質(zhì)量度量指標(biāo)

(2)Separation(間隔性)(SP)

計(jì)算各聚類中心兩兩之間平均距離,越大意味著類間聚類距離越遠(yuǎn)。缺點(diǎn):沒有考慮類內(nèi)效果。

(3)Davies-BouldinIndex(戴維森堡丁指數(shù),分類適確性指標(biāo))(DBI)

計(jì)算任意兩類別的CP(緊密性)指標(biāo)之和除以兩聚類中心距離求最大值,DB越小意味著類內(nèi)距離越小同時(shí)類間距離越大。8.4.2聚類質(zhì)量度量指標(biāo)

(4)DunnValidityIndex(鄧恩指數(shù))(DVI)

計(jì)算任意兩個(gè)簇元素的最短距離(類間)除以任意簇中的最大距離(類內(nèi)),越大意味著類間距離越大同時(shí)類內(nèi)距離越小。

8.4.3

K-Means算法

K-Means算法的每個(gè)簇的中心由簇中對象的平均值表示所以稱之為k均值聚類算法。該算法初始確定K個(gè)簇中心,然后把每個(gè)點(diǎn)歸類到其最近的簇中心,然后重新計(jì)算新的簇中心,通過迭代的方法不斷更新簇中心,其基本流程如圖所示。

K-Means算法流程示意圖8.4.3

K-Means算法

1.K-Means算法的基本流程K-Means算法的基本流程如下:算法名稱:K-menas輸入:k:簇?cái)?shù)目,D:包含n個(gè)樣本的數(shù)據(jù)集。輸出:簇中心集合。算法流程:Step1:從數(shù)據(jù)集中隨機(jī)取k個(gè)對象,作為k個(gè)簇的初始聚類中心。Step2:計(jì)算剩下的對象到k個(gè)簇中心的相似度,將這些對象分別劃分到相似度最高的簇。Step3:根據(jù)聚類結(jié)果,更新k個(gè)簇的中心,計(jì)算方法是取簇中所有對象各自維度的算術(shù)平均值。Step4:將數(shù)據(jù)集中全部元素按照新的中心重新聚類。Step5:達(dá)到算法停止條件,轉(zhuǎn)至步驟6;否則轉(zhuǎn)至步驟3。Step6:輸出聚類結(jié)果。8.4.3

K-Means算法

K-mean算法的停止條件可以有多種,例如:設(shè)定迭代次數(shù)聚類中心不再變化前后兩次聚類結(jié)果的目標(biāo)函數(shù)變化很?。ㄈ绮捎镁垲愘|(zhì)量度量指標(biāo))

例如,度量標(biāo)準(zhǔn)采用緊密性指標(biāo)CP,設(shè)迭代次數(shù)為t,給定一個(gè)很小的正數(shù),如果前后兩次迭代結(jié)果

,

則算法結(jié)束;否則t=t+1,繼續(xù)執(zhí)行算法。8.4.3

K-Means算法

2.K-Means算法的優(yōu)缺點(diǎn)設(shè)定迭代次數(shù)

K-Means算法的優(yōu)點(diǎn)是效率相對較高,其時(shí)間復(fù)雜度為O(tkn),其中n是樣本數(shù),k是類簇?cái)?shù),t是迭代次數(shù),通常情況下k,t<<n。K-Means算法的不足之處主要表現(xiàn)在:只有當(dāng)數(shù)據(jù)樣本的均值有定義的情況下才能使用必須事先給定簇的數(shù)量k不能處理噪聲和離群點(diǎn)不適合于發(fā)現(xiàn)非凸形狀的簇流形(manifold)

流形(manifold)數(shù)據(jù)的聚類示意圖對于如右圖所示的流形(manifold)數(shù)據(jù),K-Means算法的效果就很差。8.4.3

K-Means算法

3.K-Means算法的改進(jìn)

對于K-Means算法,k個(gè)初始化的簇中心的選擇對最后的聚類結(jié)果和運(yùn)行時(shí)間都有很大的影響,因此需要選擇合適的k個(gè)簇中心。如果僅僅是完全隨機(jī)的選擇,有可能導(dǎo)致算法收斂很慢。

K-Means++算法就是對K-Means隨機(jī)初始化質(zhì)心的方法的優(yōu)化。

K-Means++的對于初始化質(zhì)心的優(yōu)化策略很簡單有效:

a)

從輸入的數(shù)據(jù)集合中隨機(jī)選擇一個(gè)樣本作為第一個(gè)聚類中心

b)對于數(shù)據(jù)集中的每一個(gè)點(diǎn),計(jì)算它與已選擇的簇中心中最近的距離只有當(dāng)數(shù)據(jù)樣本的均值有定義的情況下才能使用8.4.3

K-Means算法

3.K-Means算法的改進(jìn)

對于K-Means算法,k個(gè)初始化的簇中心的選擇對最后的聚類結(jié)果和運(yùn)行時(shí)間都有很大的影響,因此需要選擇合適的k個(gè)簇中心。如果僅僅是完全隨機(jī)的選擇,有可能導(dǎo)致算法收斂很慢。K-Means++算法就是對K-Means隨機(jī)初始化質(zhì)心的方法的優(yōu)化。K-Means++的對于初始化質(zhì)心的優(yōu)化策略很簡單有效:a)

從輸入的數(shù)據(jù)集合中隨機(jī)選擇一個(gè)樣本作為第一個(gè)聚類中心b)對于數(shù)據(jù)集中的每一個(gè)點(diǎn),計(jì)算它與已選擇的簇中心中最近的距離只有當(dāng)數(shù)據(jù)樣本的均值有定義的情況下才能使用8.4.3

K-Means算法

c)選擇一個(gè)新的數(shù)據(jù)點(diǎn)作為新的簇中心,選擇的原則是D(x)較大的點(diǎn),被選取作為聚類中心的概率較大d)重復(fù)b和c直到選擇出k個(gè)聚類質(zhì)心e)利用這k個(gè)質(zhì)心來作為初始化質(zhì)心去運(yùn)行標(biāo)準(zhǔn)的K-Means算法8.4.3

K-Means算法

(2)確定K值的方法

“肘”方法(Elbowmethod)是常用的一種確定K值的方法,它采用的核心指標(biāo)是SSE

(sumofthesquarederrors,誤差平方和),選擇指標(biāo)突然變化的點(diǎn)作為K值。下圖是“肘”方法的示意圖。

當(dāng)選擇的k值小于真正的類別數(shù)時(shí),k每增加1,代價(jià)函數(shù)(CostFunction)的值就會大幅的減?。欢?dāng)選擇的k值大于真正的類別數(shù)時(shí),k每增加1,代價(jià)函數(shù)值的變化就不會那么明顯。因此,正確的k值就會在這個(gè)轉(zhuǎn)折點(diǎn),如圖

所示(k值可以取為3)

“肘”方法示意圖

分布式大數(shù)據(jù)挖掘算法典型案例8.5主要的聚類算法類型聚類質(zhì)量度量指標(biāo)決策樹算法K-Means算法8.5

分布式大數(shù)據(jù)挖掘算法典型案例

將傳統(tǒng)的數(shù)據(jù)挖掘算法應(yīng)用于大數(shù)據(jù)時(shí),由于數(shù)據(jù)量的劇增,使得計(jì)算時(shí)間和對內(nèi)存空間的要求非常巨大,通常難以正常執(zhí)行。為了解決這樣的困境,分布式計(jì)算模型的引入就成為一種必然的選擇。分布式計(jì)算將應(yīng)用分解成許多小部分,分配給多臺計(jì)算機(jī)協(xié)作處理,這樣可以節(jié)約整體計(jì)算時(shí)間,大大提高計(jì)算效率。

Hadoop所提供的MapReduce計(jì)算模型能夠?qū)⒂?jì)算任務(wù)分配到集群中的多臺服務(wù)上執(zhí)行,每臺服務(wù)器上的子任務(wù)可以從本地讀取數(shù)據(jù)完成計(jì)算子任務(wù),最后將中間結(jié)果進(jìn)行合并計(jì)算。因此,分布式存儲在集群中的大數(shù)據(jù)就不必讀取到同一個(gè)節(jié)點(diǎn)進(jìn)行集中處理,大大節(jié)約了數(shù)據(jù)傳輸量,并且可以協(xié)同集群中的多臺服務(wù)器共同完成計(jì)算任務(wù),減小了計(jì)算時(shí)間。

8.5

分布式大數(shù)據(jù)挖掘算法典型案例

MapReduce能夠解決的問題有一個(gè)共同特點(diǎn):任務(wù)可以被分解為多個(gè)子問題,且這些子問題相對獨(dú)立,可以并行處理這些子問題。在實(shí)際應(yīng)用中,這類問題非常多,在谷歌的相關(guān)論文中提到了MapReduce的一些典型應(yīng)用,包括分布式grep、URL訪問頻率統(tǒng)計(jì)、Web連接圖反轉(zhuǎn)、倒排索引構(gòu)建、分布式排序等問題。

8.5

分布式大數(shù)據(jù)挖掘算法典型案例

Mahout是Apache的一個(gè)開源項(xiàng)目,提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序,并且Mahout還提供了對ApacheHadoop的支持,把諸多經(jīng)典的算法轉(zhuǎn)換到MapReduce計(jì)算框架下,大大提高了算法可處理的數(shù)據(jù)量和處理性能,使這些算法可以更高效的運(yùn)行在分布式環(huán)境中。Mahout中實(shí)現(xiàn)的主要算法在下表中列出。8.5

分布式大數(shù)據(jù)挖掘算法典型案例8.5分布式大數(shù)據(jù)挖掘算法典型案例

Mahout最大的優(yōu)點(diǎn)就是基于hadoop實(shí)現(xiàn),把很多以前運(yùn)行于單機(jī)上的算法,轉(zhuǎn)化為了MapReduce模式,這樣大大提升了算法可處理的數(shù)據(jù)量和處理性能。

從Mahout所實(shí)現(xiàn)的MapReduce型算法可以看出,許多經(jīng)典的數(shù)據(jù)挖掘算法可以被改造成分布式算法在Hadoop平臺上執(zhí)行,但要求這些算法在執(zhí)行過程劃能夠被劃分成多個(gè)相互獨(dú)立的子任務(wù)并行執(zhí)行。

8.5.1基于MapReduce的K-Means聚類算法

接下來介紹如何運(yùn)用Python語言,將傳統(tǒng)聚類算法K-Means改造成基于MapReduce計(jì)算模型的分布式算法,與大量現(xiàn)有的教材所運(yùn)用的Java語言實(shí)現(xiàn)方法相比,本書的內(nèi)容給出了分布式大數(shù)據(jù)挖掘算法的Python實(shí)現(xiàn)方法,更方便于熟悉Python語言但對Java語言不太了解的讀者學(xué)習(xí)。

8.5.1

基于MapReduce的K-Means聚類算法

K-Means之所以能用MapReduce進(jìn)行分布式計(jì)算,是因?yàn)镵-Means算法中求簇質(zhì)心的過程可以并行計(jì)算,即可以在各個(gè)節(jié)點(diǎn)計(jì)算每個(gè)簇中所有樣本的累加和以及對應(yīng)的樣本數(shù),然后再把各結(jié)點(diǎn)數(shù)據(jù)匯總到中心結(jié)點(diǎn)求平均值,就得到新的簇質(zhì)心。

1.設(shè)計(jì)思路

基于MapReduce的K-Means算法(簡稱為MRK-Means)需要設(shè)計(jì)三個(gè)階段的MapReduce任務(wù):

(1)Map階段輸入:初始的K個(gè)簇中心,從數(shù)據(jù)集中讀取所有樣本處理:將每個(gè)樣本分配到每個(gè)最近的簇中心輸出:<Key,Value>序列:<簇編號,樣本>8.5.1基于MapReduce的K-Means聚類算法

【例】MRK-Means算法各階段數(shù)據(jù)示例

假設(shè)K=2,d=3(屬性數(shù)),初始兩個(gè)簇中心為1:(0,0,0)和2:(2,2,2)。樣本x1的坐標(biāo)為(1.8,2.1,1.9),x2的坐標(biāo)為(0.1,0.3,0.9),x3的坐標(biāo)為(2.1,2.3,1.9)。

顯然x1和x3與第2個(gè)簇中心距離較近,x2與第1個(gè)簇中心距離較近,則Map階段輸出的<key,value>序列為:<2

1.8,2.1,1.9><1

0.1,0.3,0.9><2

2.1,2.3,1.9>8.5.1基于MapReduce的K-Means聚類算法

(2)Combine階段

每個(gè)Map任務(wù)完成之后,用Combine去合并同一個(gè)Map任務(wù)的中間結(jié)果,在Combine函數(shù)中,把屬于相同簇的values求和。

輸入:Map階段的輸出結(jié)果(<key,value>序列)

處理:將同屬于相同簇編號的values求和。

輸出:<Key,Value,num>形式的序列:<簇編號,values的累加和,樣本數(shù)>根據(jù)【例8.8】Map階段的輸出結(jié)果,Combine階段的輸出為:<2

3.9,4.4,3.8

2><1

0.1,0.3,0.9

1>8.5.1基于MapReduce的K-Means聚類算法

(3)Reduce階段

Reduce階段將每個(gè)結(jié)點(diǎn)的combine函數(shù)輸出的數(shù)據(jù)進(jìn)行匯總,對于各節(jié)點(diǎn)傳來的同一簇編號的<key,value,num>求values均值,得出新的簇的中心。輸入:Combine階段的輸出結(jié)果(<key,value,num>)處理:將同屬于相同簇的values求和。輸出:k個(gè)<Key,Value>:<簇編號,values的平均值>其中,8.5.1基于MapReduce的K-Means聚類算法

2.程序代碼

以下給出用Python語言實(shí)現(xiàn)的MRK-Menas算法的Mapper函數(shù)、Combiner函數(shù)和Reducer函數(shù)的參考代碼。

運(yùn)行代碼時(shí)可以根據(jù)不同數(shù)據(jù)集的特點(diǎn)設(shè)置K值和D值(屬性數(shù)),還可以改進(jìn)初始簇中心的選取方法。

數(shù)據(jù)集的文件格式是每行一個(gè)數(shù)據(jù)樣本,各個(gè)屬性之間用逗號分隔(例如csv格式的文件),示例數(shù)據(jù)如右:6.3,2.9,5.6,1.86.5,3,5.8,2.27.6,3,6.6,2.16.4,3.2,4.5,1.56.9,3.1,4.9,1.55.5,2.3,4,1.3…………8.5.1基于MapReduce的K-Means聚類算法

(1)Mapper函數(shù)

說明:程序中的第一條語句“#!/usr/bin/python3.6”的具體寫法,可查看Linux系統(tǒng)的/usr/bin目錄中關(guān)于Python的軟鏈接,它會依照Linux中安裝的Python版本相應(yīng)調(diào)整。#!/usr/bin/python3.6importsysimportnumpyasnp

defDistance(instance,center):#計(jì)算對象與簇中心距離的函數(shù)i=np.array(eval(instance)).astype(np.float)c=np.array(center).astype(np.float)ans=np.sqrt(np.sum(np.square(i-c)))returnans8.5.1基于MapReduce的K-Means聚類算法defMapper(d,k,separator='\n'):#d:屬性數(shù),k:類別數(shù),separator:行分隔符minDis=float('inf')centers=[]foriinrange(k):#隨機(jī)生成k個(gè)簇中心arr=np.random.randint(0,10,d)#生成界于0到10的d維隨機(jī)數(shù)組,應(yīng)根據(jù)數(shù)據(jù)集調(diào)整上下界centers.append(arr)#centers=[(4,5,2,3),(2,4,1,1),(5,4,4,3)]#人為設(shè)定K個(gè)初始簇中心

index=-1forlineinsys.stdin:instances=line.split(separator)#取一行數(shù)據(jù),刪除回車符instance=instances[0].strip()#刪除頭尾空格等字符

foriinrange(0,len(centers)):dis=Distance(instance,centers[i])#遍歷尋找距離最近的簇中心ifdis<minDis:minDis=disindex=iprint("%d%s%s"%(index,'\t',instance))#輸出<Key:value>(<簇中心編號:數(shù)據(jù)點(diǎn)>)

if__name__=="__main__":Mapper(d=4,k=3)#應(yīng)根據(jù)數(shù)據(jù)集調(diào)整d和k值8.5.1基于MapReduce的K-Means聚類算法(2)Combiner函數(shù)#!/usr/bin/python3.6importsysimportnumpyasnp

defCombiner(d,separator='\t'):#d為樣本屬性數(shù)values={}num={}keys=[]forlineinsys.stdin:line=line.strip()key,value=line.split(separator,1)#獲取mapper簇中心索引與對象value=np.array(eval(value)).astype(np.float)#將樣本字符串->數(shù)組->向量化

keys.append(key)p=np.zeros(d)#取字典中key的值(不存在key,則取p值(默認(rèn)值)),再相加values[key]=values.get(key,p.astype(np.float))+valuenum[key]=num.get(key,0)+1forkeyinset(keys):print("%s%s%s%s%s"%(key,separator,str(tuple(values[key])),separator,num[key]))#將向量->元組->字符串if__name__=='__main__':Combiner(d=4)8.5.1基于MapReduce的K-Means聚類算法

(3)Reducer函數(shù)#!/usr/bin/python3.6importsysimportnumpyasnp

defReducer(separator='\t'):Num={}keys=[]values={}forlineinsys.stdin:line=line.strip()key,value,num=line.split(separator,2)#分為3個(gè)字符串value=np.array(eval(value))#樣本字符串->向量化num=int(num)#計(jì)數(shù)->整數(shù)化keys.append(key)values[key]=values.get(key,0)+valueNum[key]=Num.get(key,0)+numforkeyinkeys:center=values[key]/Num[key]print('%s%s('%(key,separator),end='')foriinrange(d):print('%.2f'%(center[i]),end='')print(')')if__name__=='__main__':Reducer()測試Mapper函數(shù)測試Combiner函數(shù)測試Reducer函數(shù)假設(shè)數(shù)據(jù)集名稱為test.csv(用ANSI格式保存),輸出文件名為keyValue1.txt,則在本地(Linux和Windows中都可以)測試Mapper函數(shù)的命令為:python3mrkm_mapepr.py<test.csv>keyValue1.txt注:’<’和’>’符號分別用于重定向輸入和輸出。將Mapper函數(shù)的輸出keyValue1.txt作為Combiner函數(shù)的輸入,輸出文件名為keyValue2.txt,則測試Combiner函數(shù)的命令為:python3mrkm_combiner.py<keyValue1.txt>keyValue2.txt以Combiner函數(shù)的輸出keyValue.txt作為Reducer函數(shù)的輸入,輸出文件名為result.txt,則測試Reducer函數(shù)的命令為:python3mrkm-reducer.py<keyValue2.txt>result.txt

假設(shè)MRK-Means算法的三個(gè)程序文件分別命令為:mrkm_mapepr.py、mrkm_combiner.py和mrkm-reducer.py,我們先在本地測試程序是否能夠正常運(yùn)行。3.本地測試MRK-Means算法8.5.1

基于MapReduce的K-Means聚類算法

4.在Hadoop集群中運(yùn)行MRK-Means算法

(1)文件準(zhǔn)備

在Hadoop集群的HDFS中創(chuàng)建目錄“km_in”,將所有測試數(shù)據(jù)文件拷貝到“km_in”目錄中。

假設(shè)MRK-Means的Python程序文件存放在Linux系統(tǒng)的“/codes”目錄中,對集群中的各個(gè)節(jié)點(diǎn)都要設(shè)置Python程序文件的可執(zhí)行權(quán)限:chmod+x/codes/mrkm_mapper.pychmod+x/codes/mrkm_combiner.pychmod+x/codes/mrkm_reducer.py8.5.1

基于MapReduce的K-Means聚類算法(2)在Hadoop集群中執(zhí)行MRK-Means程序

Hadoop本身是用Java開發(fā)的,但是通過HadoopStreaming,我們可以使用任意語言來編寫程序,讓Hadoop運(yùn)行。在Hadoop集群中執(zhí)行用Python編寫的MRK-Means程序的命令如下:說明:上述命令中的’\’符號是為了在命令行輸入時(shí)換行,’\’前面應(yīng)加空格,各個(gè)參數(shù)之間也需要加空格。上述命令中的“mapredstreaming”可以用以下命令代替:hadoopjar$HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-3.3.0.jar8.5.1基于MapReduce的K-Means聚類算法mapredstreaming\-input/km_in\-output/km_out\-mapper/codes/mrkm_mapper.py\-reducer/codes/mrkm_reducer.py\-combiner/codes/mrkm_combiner.py8.5.1基于MapReduce的K-Means聚類算法

此外,為了更方便測試程序,還可以編寫一個(gè)Python程序來執(zhí)行上述的命令:importoscmd="mapredstreaming\-input/km_in\-output/km_out\-mapper/codes/mrkm_mapper.py\-reducer/codes/mrkm_reducer.py\-combiner/codes/mrkm_combiner.py"os.system(cmd)本章小結(jié)8.6

本章首先介紹了數(shù)據(jù)的描述性分析方法,包括數(shù)據(jù)集中趨勢度量、離散趨勢度量和數(shù)據(jù)的偏態(tài)特性度量等。接著介紹了一些經(jīng)典的分類和聚類算法,包括邏輯回歸、近鄰分類算法、決策樹算法和K-Means聚類算法等。本章最后討論K-Means算法的并行化問題,給出了基于MapReduce模型的MRK-Means的Python語言實(shí)現(xiàn)和相關(guān)的運(yùn)行與測試方法。PPT模板下載:/moban/行業(yè)PPT模板:/hangye/節(jié)日PPT模板:/jieri/PPT素材下載:/sucai/PPT背景圖片:/beijing/PPT圖表下載:/tubiao/優(yōu)秀PPT下載:/xiazai/PPT教程:/powerpoint/Word教程:/word/Excel教程:/excel/資料下載:/ziliao/PPT課件下載:/kejian/范文下載:/fanwen/試卷下載:/shiti/教案下載:/jiaoan/字體下載:/ziti/

謝謝!

第9章數(shù)據(jù)可視化目錄Contents9.1

引言9.2

數(shù)據(jù)可視化的常用方法9.3

數(shù)據(jù)可視化常用工具簡介9.4

基于ECharts的可視化示例9.5

本章小結(jié)

引言9.1數(shù)據(jù)可視化的早期案例大數(shù)據(jù)可視化案例大數(shù)據(jù)9.1引言

所謂“數(shù)據(jù)可視化“(DataVisualization),是運(yùn)用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換為圖形或圖像顯示,并進(jìn)行交互處理的理論、方法和技術(shù)。

數(shù)據(jù)可視化可以提供多種數(shù)據(jù)分析的圖形方法,直觀地傳達(dá)數(shù)據(jù)的關(guān)鍵特征,從而實(shí)現(xiàn)對于復(fù)雜數(shù)據(jù)的深入洞察。通過數(shù)據(jù)可視化方法,不但可以借助圖形化手段清晰有效地傳達(dá)與溝通信息,而且還是一種發(fā)現(xiàn)未知信息的處理過程,表現(xiàn)在:(1)可以反映信息模式、數(shù)據(jù)關(guān)聯(lián)或趨勢(2)發(fā)現(xiàn)隱含在數(shù)據(jù)中的規(guī)律(3)實(shí)現(xiàn)人與數(shù)據(jù)之間直接的信息傳遞(4)幫助決策者直觀地觀察和分析數(shù)據(jù)

9.1引言

在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的復(fù)雜性和體量大大增加,可視化和可視化分析可以有效地篩選與精練數(shù)據(jù)流,通過圖形手段清晰有效地傳達(dá)與溝通信息,幫助人們更好地探索和理解復(fù)雜的數(shù)據(jù),成為人們理解復(fù)雜數(shù)據(jù)、發(fā)現(xiàn)知識和規(guī)律不可或缺的手段。

下圖是大數(shù)據(jù)可視化示例,右圖中展示了某個(gè)大數(shù)據(jù)可視化平臺的“數(shù)據(jù)大屏”界面大數(shù)據(jù)可視化示例9.1.1數(shù)據(jù)可視化的早期案例

其實(shí)早在19世紀(jì),人們就開始通過圖形的可視化,來分析問題,以下是兩則在19世紀(jì)發(fā)生的與數(shù)據(jù)可視化的小故事。

1.斯諾的標(biāo)點(diǎn)地圖

1854年倫敦爆發(fā)霍亂,10天內(nèi)奪去了500多人的生命。

斯諾用標(biāo)點(diǎn)地圖的方法研究了當(dāng)?shù)厮植己突魜y患者分布之間的關(guān)系,發(fā)現(xiàn)在寬街(BroadStreet)的一口水井供水范圍內(nèi)霍亂出現(xiàn)率明顯較高,最終憑此線索找到該次霍亂爆發(fā)的原因:一個(gè)被污染的水泵。洞悉真相的斯諾醫(yī)生趕緊通知政府關(guān)掉了那個(gè)水泵,疫情立馬就停了。9.1.1數(shù)據(jù)可視化的早期案例

2.南丁格爾的玫瑰圖

兼為護(hù)士和統(tǒng)計(jì)學(xué)家的弗羅倫斯·南丁格爾,為了調(diào)查戰(zhàn)爭期間士兵死亡的真正原因。根據(jù)1854年4月~1856年3月期間士兵死亡的數(shù)據(jù),創(chuàng)建出美麗的統(tǒng)計(jì)玫瑰圖(如圖所示),形象的展示士兵死亡的真正原因和戰(zhàn)地醫(yī)療救護(hù)的作用。

南丁格爾的玫瑰圖9.1.1數(shù)據(jù)可視化的早期案例

這種圖表形式也被稱作“南丁格爾的玫瑰“,是一種圓形的直方圖,南丁格爾自己常昵稱這類圖為雞冠花圖(coxcomb),并且用以表達(dá)軍醫(yī)院季節(jié)性的死亡率,對象是那些不太能理解傳統(tǒng)統(tǒng)計(jì)報(bào)表的公務(wù)人員。她的方法打動了當(dāng)時(shí)的高層,包括軍方人士和維多利亞女王本人,于是醫(yī)事改良的提案才得到支持。

這張圖描述了1854年4月~1856年3月期間士兵死亡情況,右邊的子圖是1854年4月~1855年3月,左邊的子圖是1855年4月~1856年3月,

左右兩個(gè)玫瑰圖被時(shí)間點(diǎn)“1955年3月”所隔開,左右兩個(gè)玫瑰圖都包含了12個(gè)月的數(shù)據(jù)。其中,右側(cè)較大的玫瑰圖,展現(xiàn)的是1854年4月至1955年3月;而左側(cè)的玫瑰圖,展現(xiàn)的則是1855年4月至1856年3月。9.1.1

數(shù)據(jù)可視化的早期案例

用藍(lán)、紅、黑三種顏色表示三種不同的情況,藍(lán)色代表可預(yù)防和可緩解的疾病治療不及時(shí)造成的死亡、紅色代表戰(zhàn)場陣亡、黑色代表其他死亡原因。圖表各扇區(qū)角度相同,用半徑及扇區(qū)面積來表示死亡人數(shù),可以清晰的看出每個(gè)月因各種原因死亡的人數(shù)。顯然,1854~1855年,因醫(yī)療條件而造成的死亡人數(shù)遠(yuǎn)遠(yuǎn)大于戰(zhàn)死沙場的人數(shù),這種情況直到1856年初才得到緩解。南丁格爾的這張圖表以及其他圖表“生動有力的說明了在戰(zhàn)地開展醫(yī)療救護(hù)和促進(jìn)傷兵醫(yī)療工作的必要性,打動了當(dāng)局者,增加了戰(zhàn)地醫(yī)院,改善了軍隊(duì)醫(yī)院的條件,為挽救士兵生命做出了巨大貢獻(xiàn)”。9.1.2

大數(shù)據(jù)可視化案例

1.百度遷徙

百度遷徙(/)是百度公司在2014年春運(yùn)期間推出的一個(gè)品牌的項(xiàng)目,首次啟用百度地圖定位,大數(shù)據(jù)可視化的方式展示了國內(nèi)春節(jié)人口遷徙情況,引發(fā)了人們的巨大關(guān)注(如下左圖所示)。

百度遷徙利用百度后臺每天數(shù)十億次LBS定位數(shù)據(jù)進(jìn)行運(yùn)算分析,通過可視化大數(shù)據(jù)的方式展現(xiàn)全國春運(yùn)動態(tài),包括當(dāng)前全國春運(yùn)最熱的路線,最熱門的遷出城市、遷入城市等。

目前,百度遷徙平臺可查看全國除港澳臺所有城市的遷徙狀況;每個(gè)城市的從春運(yùn)首日至昨日的遷徙走勢;從宏觀查看全國熱門路線,熱門目的地、熱門出發(fā)地。9.1.2

大數(shù)據(jù)可視化案例百度遷徙示意圖航線星云示意圖9.1.2大數(shù)據(jù)可視化案例

2.航線星云

航線星云是一個(gè)全球頂級的大數(shù)據(jù)可視化案例,數(shù)據(jù)源包括約6萬條直飛航班信息,這些航班穿梭在3000多個(gè)機(jī)場間,覆蓋了500多條航線。通過可視化技術(shù),可以看到世界上各家不同的航空公司看起來就像是一個(gè)美麗的星云(如上右圖所示)。

這張基于數(shù)據(jù)可視化的Sigma圖表顯示了服務(wù)城市相似的不同航空公司。圖中的圓點(diǎn)或圓圈代表航空公司,連線的粗細(xì)和遠(yuǎn)近則反映兩個(gè)航空公司之間的相似性;連線越粗或越短則代表兩家航空公司服務(wù)的城市越相似。

總的來說,這張圖表揭示了各航空公司之間的相似性和競爭情況,有利于發(fā)掘潛在的合作關(guān)系、增加市場份額和市場覆蓋面。這項(xiàng)技術(shù)可以通過不同參與者之間的相同變量,用于分析任何生態(tài)系統(tǒng)

數(shù)據(jù)可視化的常用方法9.2趨勢型數(shù)據(jù)可視化方法對比型數(shù)據(jù)可視化方法比例型數(shù)據(jù)可視化方法分布型數(shù)據(jù)可視化文本數(shù)據(jù)可視化關(guān)系網(wǎng)絡(luò)數(shù)據(jù)可視化時(shí)空數(shù)據(jù)可視化層次結(jié)構(gòu)數(shù)據(jù)可視化高維數(shù)據(jù)可視化9.2.1趨勢型數(shù)據(jù)可視化方法

1.散點(diǎn)圖(Scatterplot)

趨勢型數(shù)據(jù)可視化包括散點(diǎn)圖、折線圖、階梯圖和時(shí)間序列圖等。

散點(diǎn)圖使用數(shù)據(jù)值作為x軸和y軸坐標(biāo)來繪制點(diǎn),即數(shù)據(jù)點(diǎn)(x,y)在直角坐標(biāo)系平面上的分布圖,在回歸分析中,可以選擇合適的函數(shù)對數(shù)據(jù)點(diǎn)進(jìn)行擬合,從而判斷兩變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標(biāo)點(diǎn)的分布模式。散點(diǎn)圖將序列顯示為一組點(diǎn),值由點(diǎn)在圖表中的位置表示,散點(diǎn)圖的樣式如圖所示。散點(diǎn)圖樣例9.2.1趨勢型數(shù)據(jù)可視化方法

2.折線圖(Linechart)

折線圖是用線段順序連接空間的各個(gè)數(shù)據(jù)點(diǎn),折線圖與散點(diǎn)圖對比,其更突出數(shù)據(jù)點(diǎn)表現(xiàn)變化,而散點(diǎn)圖突出表現(xiàn)數(shù)據(jù)點(diǎn)分布情況,前者不能做回歸分析,而后者可以。折線圖的樣式如圖所示。折線圖樣例9.2.1趨勢型數(shù)據(jù)可視化方法

3.階梯圖(Stepplot)

階梯圖又稱為瀑布圖,它是一種無規(guī)律、間歇型階躍的方式表達(dá)數(shù)值的變化,可以用于數(shù)據(jù)的變化和構(gòu)成情況的分析(如保險(xiǎn)產(chǎn)品、電價(jià)、水價(jià)等)。階梯圖的樣式如圖所示。階梯圖樣例9.2.1趨勢型數(shù)據(jù)可視化方法

4.時(shí)間序列圖(TimeSeriesPlot)

時(shí)間序列圖用于顯示給定度量隨時(shí)間變化的方式,它是以時(shí)間為橫軸,觀察變量為縱軸,用以反映時(shí)間與數(shù)量之間的關(guān)系,觀察變量變化發(fā)展的趨勢及偏差的統(tǒng)計(jì)圖。時(shí)間序列圖的樣式如圖所示。時(shí)間序列樣例圖9.2.2對比型數(shù)據(jù)可視化方法

1.柱狀圖

對比型數(shù)據(jù)可以使用柱狀圖、面積圖、雷達(dá)圖、氣泡圖等進(jìn)行可視化呈

柱狀圖是一種以長方形的長度為變量的統(tǒng)計(jì)圖表,它使用垂直或水平的柱子顯示類別之間的數(shù)值比較,用于描述分類數(shù)據(jù),并統(tǒng)計(jì)每一個(gè)分類中的數(shù)量,柱狀圖的樣式如圖所示。柱狀圖樣例9.2.2對比型數(shù)據(jù)可視化方法

3.雷達(dá)圖

雷達(dá)圖,又稱網(wǎng)狀圖或星狀圖,它形似雷達(dá)界面,雷達(dá)圖用于同時(shí)對多個(gè)數(shù)據(jù)的對比分析和同一數(shù)據(jù)在不同時(shí)期的變化進(jìn)行分析,可以有效地表示數(shù)據(jù)的聚合值,也就是數(shù)據(jù)在各個(gè)方向上達(dá)到的峰值,雷達(dá)圖的樣式如圖所示。雷達(dá)圖樣例9.2.2對比型數(shù)據(jù)可視化方法

4.氣泡圖

氣泡圖通常用于比較和展示不同類別之間的關(guān)系(例如分析數(shù)據(jù)之間的相關(guān)性),通過氣泡的位置以及面積大小進(jìn)行比較,氣泡圖的樣式如圖所示。氣泡圖樣例9.2.3比例型數(shù)據(jù)可視化方法

1.餅圖

餅圖用于表示不同分類的占比情況,通過弧度大小來對比各種分類。餅圖通過將一個(gè)圓餅按照分類的占比劃分成多個(gè)區(qū)塊,整個(gè)圓餅代表數(shù)據(jù)的總量,每個(gè)區(qū)塊表示該分類占總體的比例大小,所有區(qū)塊的和等于100%。餅圖的樣式如圖所示。餅圖樣例比例型數(shù)據(jù)可以使用餅圖、堆壘柱形圖和堆壘面積圖等進(jìn)行可視化呈現(xiàn)。9.2.3比例型數(shù)據(jù)可視化方法

2.堆壘柱形圖(StackColumn)

堆壘柱形圖顯示單個(gè)項(xiàng)目與整體之間的關(guān)系,它比較各個(gè)類別的每個(gè)數(shù)值所占總數(shù)值的大小。堆壘柱形圖以二維垂直堆積矩形顯示數(shù)值。當(dāng)有多個(gè)數(shù)據(jù)系列并且希望強(qiáng)調(diào)總數(shù)值時(shí),可以使用堆壘柱形圖。堆壘柱形圖的樣式如圖所示。堆壘柱形圖樣例9.2.3比例型數(shù)據(jù)可視化方法

3.堆壘面積圖(StackArea)

堆壘柱形圖是由一些大小相同的小正方體堆壘而成的,顯示每個(gè)數(shù)值所占的比例陽隨類別或時(shí)間變化的趨勢。堆壘面積圖的樣式如圖所示。堆壘面積圖樣例9.2.4分布型數(shù)據(jù)可視化

1.直方圖(Histogram)直方圖(Histogram),又稱質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段表示數(shù)據(jù)分布的情況,一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。直方圖是數(shù)值數(shù)據(jù)分布的精確圖形表示,為了構(gòu)建直方圖,需要將值的范圍均勻分段(分成多個(gè)bin),然后計(jì)算每個(gè)bin中有多少值,最后在坐標(biāo)軸上繪制每個(gè)bin上分布的值的數(shù)量。直方圖的樣式如圖所示。直方圖樣例分布型數(shù)據(jù)可以使用直方圖、箱型圖、概率密度圖等進(jìn)行可視化呈現(xiàn)。9.2.4分布型數(shù)據(jù)可視化

2.箱形圖(Boxdiagram)箱形圖(英文:Boxplot),又稱為盒狀圖或箱線圖,是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計(jì)圖。因形狀如箱子而得名。在各種領(lǐng)域也經(jīng)常被使用。

箱形圖于1977年由美國著名統(tǒng)計(jì)學(xué)家約翰·圖基(JohnTukey)發(fā)明,它能顯示出一組數(shù)據(jù)的最大值、最小值、中位數(shù)、及上下四分位數(shù)。箱形圖的樣式如圖所示箱型圖樣例9.2.4分布型數(shù)據(jù)可視化

3.概率密度圖(DensityPlot)

前面提到的直方圖、箱線圖都是離散型數(shù)據(jù)的分布圖,而概率密度圖則是連續(xù)型變量的數(shù)據(jù)分布圖,它是指隨機(jī)變量落在其區(qū)間內(nèi)的概率,用色塊填充成陰影部分面積。概率密度圖是用概率密度曲線畫的,橫軸是連

溫馨提示

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

評論

0/150

提交評論