第6章 數(shù)據(jù)處理與數(shù)據(jù)分析_第1頁
第6章 數(shù)據(jù)處理與數(shù)據(jù)分析_第2頁
第6章 數(shù)據(jù)處理與數(shù)據(jù)分析_第3頁
第6章 數(shù)據(jù)處理與數(shù)據(jù)分析_第4頁
第6章 數(shù)據(jù)處理與數(shù)據(jù)分析_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第6章數(shù)據(jù)處理與數(shù)據(jù)分析

本章內(nèi)容6.1數(shù)據(jù)處理概念6.2Pandas數(shù)據(jù)清理6.3Pandas數(shù)據(jù)集成6.4Pandas數(shù)據(jù)變換與離散化6.5Pandas數(shù)據(jù)分析6.1數(shù)據(jù)處理概念現(xiàn)實世界的數(shù)據(jù)庫極易受噪聲、缺失值和不一致數(shù)據(jù)的侵擾。為了滿足應(yīng)用要求,得到高質(zhì)量的數(shù)據(jù),提高數(shù)據(jù)的準確性、完整性、一致性、時效性和可信性,需要對數(shù)據(jù)進行相應(yīng)的處理,包括數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)變換與數(shù)據(jù)離散化等步驟。數(shù)據(jù)清理主要清除數(shù)據(jù)中的噪聲,糾正不一致。數(shù)據(jù)集成將數(shù)據(jù)由多個數(shù)據(jù)源進行合并。數(shù)據(jù)變換(例如規(guī)范化)可以用來把數(shù)據(jù)壓縮到較小的區(qū)間,如0到1之間。6.1數(shù)據(jù)處理概念6.1.1數(shù)據(jù)清理現(xiàn)實世界的數(shù)據(jù)一般是不完整的、有噪聲的和不一致的。數(shù)據(jù)清理試圖填充缺失的值,光滑噪聲和識別或刪除離群點,并糾正數(shù)據(jù)中的不一致來“清理”數(shù)據(jù)。1.缺失值處理缺失值的可用處理方法有以下幾種:(1)刪除記錄。(2)人工填寫缺失值。(3)使用一個全局常量填充缺失值。(4)使用屬性的中心度量(如均值或中位數(shù))填充缺失值。(5)使用與屬性缺失的記錄屬同一類的所有樣本的屬性均值或中位數(shù)。(6)使用最可能的值填充缺失值。6.1.1數(shù)據(jù)清理2.噪聲數(shù)據(jù)與離群點噪聲是被測量變量的隨機誤差(一般指錯誤的數(shù)據(jù))。離群點是數(shù)據(jù)集中包含一些數(shù)據(jù)對象,他們與數(shù)據(jù)的一般行為或模型不一致(正常值,但偏離大多數(shù)數(shù)據(jù))。圖6-1系統(tǒng)用戶年齡的分析6.1.1數(shù)據(jù)清理2.噪聲數(shù)據(jù)與離群點給定一個數(shù)值屬性,可以采用下面的數(shù)據(jù)光滑技術(shù)“光滑”數(shù)據(jù),去掉噪聲。(1)分箱分箱方法通過考察數(shù)據(jù)的“近鄰”(即周圍的值)來光滑有序數(shù)據(jù)值。用箱均值光滑:箱中每一個值被箱中的平均值替換。用箱邊界光滑:箱中的最大值和最小值同樣被視為邊界。箱中的每一個值被最近的邊界值替換。用箱中位數(shù)光滑:箱中的每一個值被箱中的中位數(shù)替換。

箱均值光滑

箱邊界光滑

箱中位數(shù)光滑6.1.1數(shù)據(jù)清理2.噪聲數(shù)據(jù)與離群點(2)回歸回歸(regression)用一個函數(shù)擬合數(shù)據(jù)來光滑數(shù)據(jù)。線性回歸涉及找出擬合兩個屬性(或變量)的“最佳”直線,使得一個屬性能夠預(yù)測另一個。離群點分析可以通過如聚類來檢測離群點。聚類將類似的值組織成群或“簇”。直觀地,落在簇集合之外的值被視為離群點。圖6-3線性回歸擬合圖6-4聚類出3個數(shù)據(jù)簇6.1.1數(shù)據(jù)清理3.不一致數(shù)據(jù)對于有些事務(wù),所記錄的數(shù)據(jù)可能存在不一致。有些數(shù)據(jù)不一致可以根據(jù)其他材料上信息人工地加以更正,也可以用糾正不一致數(shù)據(jù)的程序工具來檢測違反限制的數(shù)據(jù)。例如,知道屬性間的函數(shù)依賴,可以查找違反函數(shù)依賴的值。6.1.2數(shù)據(jù)集成在實際應(yīng)用中,經(jīng)常會遇到來自不同數(shù)據(jù)源的同類數(shù)據(jù),且在用于分析之前需要進行合并操作。實施這種合并操作的步驟稱數(shù)據(jù)集成。有效的數(shù)據(jù)集成過程有助于減少合并后的數(shù)據(jù)沖突,降低數(shù)據(jù)冗余程度等。數(shù)據(jù)集成需要解決的問題有:(1)屬性匹配確定不同數(shù)據(jù)源中數(shù)據(jù)屬性間的對應(yīng)關(guān)系。例如,對用戶id的表達形式,銷售商A使用字符串類型“customer_id”;銷售商B使用整數(shù)類型“customer_id_number”,在進行集成之前,需要先對不同的表達方式進行識別和對應(yīng)。(2)冗余去除數(shù)據(jù)集成后產(chǎn)生的冗余包括兩方面:數(shù)據(jù)記錄的冗余,因數(shù)據(jù)屬性間的推導(dǎo)關(guān)系而造成數(shù)據(jù)屬性冗余。(3)數(shù)據(jù)沖突檢測與處理來自不同數(shù)據(jù)源的數(shù)據(jù)記錄在集成時因某種屬性或約束上的沖突,導(dǎo)致集成過程無法進行。6.1.3數(shù)據(jù)變換與數(shù)據(jù)離散化1.?dāng)?shù)據(jù)變換策略概述(1)光滑:去掉數(shù)據(jù)中的噪音。這種技術(shù)包括分箱、聚類和回歸。(2)屬性構(gòu)造(或特征構(gòu)造):可以由給定的屬性構(gòu)造新的屬性并添加到屬性集中,以幫助挖掘過程。(3)聚集:對數(shù)據(jù)進行匯總和聚集。例如,可以聚集日銷售數(shù)據(jù),計算月和年銷售量。通常這一步用來為多個抽象層的數(shù)據(jù)分析構(gòu)造數(shù)據(jù)立方體。(4)規(guī)范化:把屬性數(shù)據(jù)按比例縮放,使之落入一個特定的小區(qū)間,如-1.0到1.0或0.0到1.0。(5)離散化:數(shù)值屬性(例如,年齡)的原始值用區(qū)間標簽(例如0到10,11到20等)或概念標簽(例如,youth,adult,senior)替換。這些標簽可以遞歸地組織成更高層概念,導(dǎo)致數(shù)值屬性的概念分層。(6)由標稱數(shù)據(jù)產(chǎn)生概念分層:屬性如street,可以泛化到較高的概念層,如city或country。6.1.3數(shù)據(jù)變換與數(shù)據(jù)離散化2.通過規(guī)范化變換數(shù)據(jù)令A(yù)是數(shù)值屬性,具有n個值v1,v2,…,vn。(1)最小-最大規(guī)范化是對原始數(shù)據(jù)進行線性變換。假定maxA和minA分別為屬性A的最大和最小值,把A的值vi映射到區(qū)間[new_minA,new_maxA]中的vi'。最小-最大規(guī)范化通過計算公式:(2)z-score規(guī)范化(或零-均值規(guī)范化),基于A的平均值和標準差規(guī)范化。A的值vi被規(guī)范化為vi',由下式計算,其中avgA和δA分別為屬性A的平均值和標準差。6.1.3數(shù)據(jù)變換與數(shù)據(jù)離散化3.通過分箱離散化分箱是一種基于指定的箱個數(shù)的自頂向下的分裂技術(shù)。分箱并不使用分類信息,是一種非監(jiān)督的離散化技術(shù)。它對用戶指定的箱個數(shù)很敏感,也容易受離群點的影響。4.通過直方圖分析離散化直方圖分析也是一種非監(jiān)督離散化技術(shù),它也不使用分類信息。直方圖把屬性A的值劃分成不相交的區(qū)間,稱作桶或箱。桶安放在水平軸上,而桶的高度(和面積)是該桶所代表值的出現(xiàn)頻率。5.通過聚類、決策樹離散化聚類通過將屬性A的值劃分成簇或組,主要考慮A的分布以及數(shù)據(jù)點的鄰近性。為分類生成決策樹的技術(shù)可以用來離散化。主要思想是選擇劃分點使得一個給定的結(jié)果分區(qū)包含盡可能多的同類記錄。6.2Pandas數(shù)據(jù)清理Pandas數(shù)據(jù)清理包括處理缺失數(shù)據(jù)以及清除無意義的數(shù)據(jù),如刪除原始數(shù)據(jù)集中的無關(guān)數(shù)據(jù)、重復(fù)數(shù)據(jù),平滑噪聲數(shù)據(jù),處理異常值。6.2.1處理缺失值1.查找數(shù)據(jù)中的缺失值表6-1成績單score.xlsx學(xué)號姓名班級出生日期年齡高數(shù)英語計算機總分等級50101田晴計算機0512001-08-19

867187

50102楊慶紅計算機0512002-10-08

617570

50201王海茹計算機0522004-12-16

作弊8881

50202陳曉英計算機0522003-06-25

65缺考66

50103李秋蘭計算機0512001-07-06

907893

50104周磊計算機0512002-05-10

566886

50203吳濤計算機0522001-08-18

878182

50204趙文敏計算機0522002-09-17

809391

6.2.1處理缺失值1.查找數(shù)據(jù)中的缺失值缺失值True:缺失數(shù)據(jù)False:有數(shù)據(jù)默認查看5行isna()方法查找DataFrame對象或Series對象中的缺失值6.2.1處理缺失值2.刪除數(shù)據(jù)中的缺失值DataFrame.dropna(axis=0,how='any',subset=None,inplace=False)參數(shù)說明:axis:默認為0,表示逢空值刪除整行,axis=1表示逢空值去掉整列。how:默認為'any',如果一行(或一列)里任何一個數(shù)據(jù)出現(xiàn)NaN就去掉整行(整列);如果設(shè)置how='all',一行(或一列)都是NaN才刪掉整行(整列)。subset:設(shè)置要檢查缺失值的列。如果是多個列,可以使用列名的列表list作為參數(shù)。inplace:默認False,dropna()方法返回一個新的DataFrame,不會修改源數(shù)據(jù)。如果參數(shù)為True,修改源數(shù)據(jù)DataFrame。例如:df.dropna(subset=['總分','等級'])#刪除df中'總分'和'等級'2列數(shù)據(jù)有缺失的行6.2.1處理缺失值3.填充數(shù)據(jù)中的缺失值(1)固定值填充df.fillna(value=None,method=None,axis=None,inplace=False,**kwargs)主要參數(shù)說明:value:填充的值,可以是一個常量或者字典等。如果是字典則可以指定某些列填充的具體值。method:填充的方法,backfill和bfill代表用缺失值后一個數(shù)據(jù)值替代NaN,ffill和pad代表用缺失值前一個數(shù)據(jù)值替代NaN。例如:df.fillna(value='?')#或者df.fillna('?')6.2.1處理缺失值3.填充數(shù)據(jù)中的缺失值(1)固定值填充(2)臨近值填充6.2.1處理缺失值3.填充數(shù)據(jù)中的缺失值(3)描述性統(tǒng)計量填充6.2.2處理重復(fù)值1.查找重復(fù)值使用df.duplicated()方法會返回一個Series對象,找出所有重復(fù)值。重復(fù)為True,不重復(fù)為False。6.2.2處理重復(fù)值2.刪除重復(fù)值使用df.drop_duplicates()方法直接刪除DataFrame對象中重復(fù)出現(xiàn)的整行數(shù)據(jù)。6.2.3處理格式錯誤以下實例格式化日期數(shù)據(jù)。to_datetime函數(shù)將多種日期形式轉(zhuǎn)換為標準日期格式6.2.4處理錯誤數(shù)據(jù)

以下實例會替換錯誤年齡的數(shù)據(jù)。

設(shè)置條件語句,將age大于120的設(shè)置為120。

將錯誤數(shù)據(jù)的行刪除。將age大于120的行刪除。6.2.5處理異常值異常值是指數(shù)據(jù)中個別數(shù)值明顯偏離其余數(shù)值的數(shù)據(jù),也稱為離群點。檢測異常值就是監(jiān)測數(shù)據(jù)中是否有錄入錯誤以及是否有不合理的數(shù)據(jù)。3σ原則[拉依達準則]該法則是假設(shè)一組檢驗數(shù)據(jù)只有隨機誤差,對原始數(shù)據(jù)進行計算處理得到標準差,按照一定的概率確定一個區(qū)間,認為誤差超過這個區(qū)間就屬于異常值。3σ原則僅適用于服從正態(tài)分布或者近似正態(tài)分布的數(shù)據(jù)。μ-3σ<x<μ+3σ,為正常區(qū)間的數(shù)據(jù),此區(qū)間的概率值為0.9973。以下例子使用Z-score標準化法后得到的數(shù)據(jù)值超過閾值標為異常。6.3Pandas數(shù)據(jù)集成6.3.1SQL合并/連接Pandas提供了一個merge()函數(shù),實現(xiàn)DataFrame對象之間所有標準數(shù)據(jù)庫連接操作。merge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True)主要參數(shù)含義如下:left——左DataFrame對象。right——右DataFrame對象。on——列(名稱)連接,必須在左和右DataFrame對象中存在。how——它是left,right,outer以及inner之中的一個,默認為inner。6.3.1SQL合并/連接(1)'id'列用作鍵合并兩個數(shù)據(jù)框。(2)多列用作鍵合并兩個數(shù)據(jù)框。6.3.1SQL合并/連接(3)使用“how”參數(shù)合并兩個數(shù)據(jù)框。left連接:rs=pd.merge(left,right,on='subject_id',how='left')left連接right連接outer連接inner連接默認inner連接6.3.2字段合并字段合并是指將同一個數(shù)據(jù)框中的不同列進行合并,形成新的列。X=x1+x2+…x1:數(shù)據(jù)列1,x2:數(shù)據(jù)列2。返回值:數(shù)據(jù)框。注意:如果某一列是非str類型的數(shù)據(jù),需要用map(str)或者astype(str)將那一列數(shù)據(jù)類型做轉(zhuǎn)換。6.3.3記錄合并記錄合并是指兩個數(shù)據(jù)框合并成一個數(shù)據(jù)框,也就是在一個數(shù)據(jù)框中追加另一個數(shù)據(jù)框的數(shù)據(jù)記錄。1.concatpd.concat(objs,axis=0,join='outer',ignore_index=False,keys=None,...])objs:需要連接的對象,[dataFrame1,dataFrame2,...],需要將合并的數(shù)據(jù)框用列表表示。axis:axis=0表示拼接方式是上下堆疊,當(dāng)axis=1表示左右拼接。join:控制外連接還是內(nèi)連接,join='outer'表示外連接,保留兩個數(shù)據(jù)框表中的所有信息;join="inner"表示內(nèi)連接,拼接結(jié)果只保留兩個數(shù)據(jù)框表共有的信息。keys:可以給每個需要合并的dataFrame數(shù)據(jù)框一個標簽。6.3.3記錄合并1.concat(1)相同字段的數(shù)據(jù)框表首尾相接(即上下方向)默認axis=0,上下拼接6.3.3記錄合并1.concat(2)橫向拼接(即左右方向)axis=1,左右拼接默認join='outer'外連接axis=1,左右拼接join='inner'內(nèi)連接6.3.3記錄合并2.a(chǎn)ppendappend主要用于追加數(shù)據(jù),格式如下:df.append(other,ignore_index:'bool'=False,verify_integrity:'bool'=False,sort:'bool'=False)主要參數(shù)含義如下:other:用于追加的數(shù)據(jù),可以是DataFrame或Series或列表。ignore_index:是否保留原有的索引。6.3.3記錄合并2.a(chǎn)ppend(1)append追加數(shù)據(jù)框(2)將Series和字典數(shù)據(jù)作為DataFrame的新一行插入6.4Pandas數(shù)據(jù)變換與離散化6.4.1簡單函數(shù)變換對數(shù)據(jù)開方、平方、取對數(shù)、倒數(shù)、差分、指數(shù)等,為后續(xù)分析提供想要的數(shù)據(jù)和方便分析。由于“累計評價”的值太大,新增一列對“累計評價”取對數(shù)處理;同時插入一列,計算“優(yōu)惠力度”。6.4.2數(shù)據(jù)標準化數(shù)據(jù)標準化實際是將數(shù)據(jù)按比例縮放,使之落入到特定區(qū)間,一般我們使用0-1標準化。數(shù)據(jù)標準化是為了消除數(shù)據(jù)的量綱影響,為后續(xù)許多算法分析提供必要條件。1.Min-Max標準化Min-Max標準化就是最小-最大規(guī)范化,又稱離差標準化,對原始數(shù)據(jù)的線性變換,使結(jié)果映射到區(qū)間[0,1]且無量綱。計算公式:X*=(x-min)/(max-min)6.4.2數(shù)據(jù)標準化2.Z-score標準化法Z-score標準化根據(jù)原始數(shù)據(jù)的均值(Mean)和標準差(StandardDeviation),進行數(shù)據(jù)的標準。經(jīng)過處理的數(shù)據(jù)符合標準正態(tài)分布,即均值為0,標準差為1。Z-score標準化公式為:X*=(x-u)/σ

其中u表示所有樣本數(shù)據(jù)的均值,σ表示所有樣本數(shù)據(jù)的標準差。6.4.3數(shù)據(jù)離散化處理連續(xù)值經(jīng)常需要離散化或者分箱,方便數(shù)據(jù)的展示和理解,以及結(jié)果的可視化。等距分箱等頻分箱(分位數(shù)分箱)6.5Pandas數(shù)據(jù)分析6.5.1描述性分析1.集中趨勢表示數(shù)據(jù)集中趨勢的指標有:平均值、中位數(shù)、眾數(shù)、第一四分位數(shù)和第三四分位數(shù)。6.5.1描述性分析2.離散程度表示數(shù)據(jù)離散程度的有:方差,標準差,極差,四分位間距。6.5.1描述性分析3.分布形態(tài)峰度:是描述某變量所有取值分布形態(tài)陡緩程度的統(tǒng)計量,簡單來說就是數(shù)據(jù)分布頂?shù)募怃J程度。峰度>0峰度=0峰度<0偏度:統(tǒng)計數(shù)據(jù)分布偏斜方向和程度的度量,通過對偏度系數(shù)的測量,判定數(shù)據(jù)分布的不對稱程度以及方向。skew():數(shù)據(jù)分布的偏度kurt():數(shù)據(jù)分布的峰度6.5.2分布分析分布分析法又稱直方圖法。將搜集到的數(shù)據(jù)進行分組整理,繪制成頻數(shù)分布直方圖,用以描述分布狀態(tài)的一種分析方法。例如日常成績分析中,統(tǒng)計各分數(shù)段人數(shù)(不及格人數(shù),60~80,80~90,90分以上人數(shù))了解學(xué)生學(xué)習(xí)情況,就是分布分析。分布分析應(yīng)用場景:發(fā)現(xiàn)用戶分布規(guī)律,優(yōu)化產(chǎn)品和運營策略。鎖定核心用戶群,實施精細化運營。去除極值影響,數(shù)據(jù)更接近整體真實表現(xiàn)。分布分析一般按照以下步驟執(zhí)行:(1)找到數(shù)據(jù)中的最大值和最小值。(2)決定組距與組數(shù)。(3)決定分點

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論