您好,登錄后才能下訂單哦!
R語(yǔ)言數(shù)據(jù)挖掘?qū)崙?zhàn)系列(4)——數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理一方面是要提高數(shù)據(jù)的質(zhì)量,另一方面是要讓數(shù)據(jù)更好地適應(yīng)特定的挖掘技術(shù)或工具。數(shù)據(jù)預(yù)處理的主要內(nèi)容包括數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)規(guī)約。
一、數(shù)據(jù)清洗
1.缺失值處理
一般來(lái)說(shuō),缺失值的處理包括兩個(gè)步驟,即缺失數(shù)據(jù)的識(shí)別和缺失值處理。在R語(yǔ)言中缺失值通常以NA表示,可以使用函數(shù)is.na()判斷缺失值是否存在,另外函數(shù)complete.cases()可識(shí)別樣本數(shù)據(jù)是否完整從而判斷缺失情況。在對(duì)是否存在缺失值進(jìn)行判斷之后需要進(jìn)行缺失值處理,常用的方法有刪除法、替換法、插補(bǔ)法等。
(1)刪除法
根據(jù)數(shù)據(jù)處理的不同角度可分為刪除觀測(cè)樣本、刪除變量?jī)煞N。刪除觀測(cè)樣本又稱(chēng)為行刪除法,在R中可通過(guò)na.omit()函數(shù)移除所有含有缺失數(shù)據(jù)的行,這屬于以減少樣本量來(lái)?yè)Q取信息完整性的方法,適用于缺失值所占比例較小的情況;刪除變量適用于變量有較大缺失且對(duì)研究目標(biāo)影響不大的情況,意味著要?jiǎng)h除整個(gè)變量,在R中可通過(guò)data[,-p]來(lái)實(shí)現(xiàn),其中data表示目標(biāo)數(shù)據(jù)集,p表示缺失變量所在的列。
(2)替換法
變量按屬性可分為數(shù)值型和非數(shù)值型,二者的處理辦法不同:如果缺失值所在變量為數(shù)值型,一般用該變量在其他所有對(duì)象的取值的均值來(lái)替換變量的缺失值;如果為非數(shù)值型變量,則使用該變量其他全部有效觀測(cè)值的中位數(shù)或者眾數(shù)進(jìn)行替換。
(3)插補(bǔ)法
在面對(duì)缺失值問(wèn)題,常用的插補(bǔ)法有回歸插補(bǔ)、多重插補(bǔ)等?;貧w插補(bǔ)法利用回歸模型,將需要插值補(bǔ)缺的變量作為因變量,其他相關(guān)變量作為自變量,通過(guò)回歸函數(shù)lm()預(yù)測(cè)出因變量的值來(lái)對(duì)缺失變量進(jìn)行補(bǔ)缺;多重插補(bǔ)法的原理是從一個(gè)包含缺失值的數(shù)據(jù)集中生成一組完整的數(shù)據(jù),如此進(jìn)行多次,從而產(chǎn)生缺失值的一個(gè)隨機(jī)樣本,R中的mice函數(shù)包可以用來(lái)進(jìn)行多重插補(bǔ)。
2.異常值處理
在異常值處理之前需要對(duì)異常值進(jìn)行識(shí)別,一般多采用單變量散點(diǎn)圖或是箱型圖來(lái)達(dá)到目的。在R中,使用函數(shù)dotchart()、boxplot()實(shí)現(xiàn)繪制單變量散點(diǎn)圖與箱型圖。
表4-1 異常值處理常用方法
異常值處理方法 | 方法描述 |
刪除含有異常值的記錄 | 直接將含有異常值的記錄刪除 |
視為缺失值 | 將異常值視為缺失值,利用缺失值處理的方法進(jìn)行處理 |
平均值修正 | 可用前后兩個(gè)觀測(cè)值的平均值修正該異常值 |
不處理 | 直接在具有異常值的數(shù)據(jù)集上進(jìn)行挖掘建模 |
很多情況下,要先分析異常值出現(xiàn)的可能原因,再判斷異常值是否應(yīng)該舍棄,如果是正確的數(shù)據(jù),可以直接在具有異常值的數(shù)據(jù)集上進(jìn)行挖掘建模。
二、數(shù)據(jù)集成
數(shù)據(jù)集成就是將多個(gè)數(shù)據(jù)源合并存放在一個(gè)一致的數(shù)據(jù)存儲(chǔ)中的過(guò)程。
在R中,數(shù)據(jù)集成是指將存儲(chǔ)在兩個(gè)數(shù)據(jù)框中的數(shù)據(jù)以關(guān)鍵字為依據(jù),以行為單位做列向合并,可通過(guò)函數(shù)merge()實(shí)現(xiàn),基本形式為merge(數(shù)據(jù)框1,數(shù)據(jù)框2,by='關(guān)鍵字'),合并后的新數(shù)據(jù)自動(dòng)按關(guān)鍵字取值的大小升序排列。
實(shí)體識(shí)別
實(shí)體識(shí)別是從不同數(shù)據(jù)源識(shí)別出現(xiàn)實(shí)世界的實(shí)體,任務(wù)是統(tǒng)一不同數(shù)據(jù)源的矛盾之處,如同名異義、異名同義、單位不統(tǒng)一
冗余屬性識(shí)別
數(shù)據(jù)集成往往造成數(shù)據(jù)冗余,如同一屬性多次出現(xiàn)、同一屬性命名不一致,導(dǎo)致重復(fù)。
有些冗余屬性可以用相關(guān)分析檢測(cè)。給定兩個(gè)數(shù)值型的屬性A和B,根據(jù)其屬性值,用相關(guān)系數(shù)度量一個(gè)屬性在多大程度上蘊(yùn)含另一個(gè)屬性。
三、數(shù)據(jù)變換
數(shù)據(jù)變換主要是對(duì)數(shù)據(jù)進(jìn)行規(guī)范化處理,連續(xù)變量的離散化以及變量屬性的構(gòu)造,將數(shù)據(jù)轉(zhuǎn)換成“適當(dāng)?shù)摹毙问剑詽M足挖掘任務(wù)及算法的需要。
簡(jiǎn)單函數(shù)變換
簡(jiǎn)單函數(shù)變換就是對(duì)原始數(shù)據(jù)進(jìn)行某些數(shù)學(xué)函數(shù)變換,如平方、開(kāi)方、取對(duì)數(shù)、差分運(yùn)算等。簡(jiǎn)單的函數(shù)變換常用來(lái)將不具有正態(tài)分布的數(shù)據(jù)變換成具有正態(tài)分布的數(shù)據(jù)。
規(guī)范化
為了消除指標(biāo)之間的量綱和取值范圍差異的影響,需要進(jìn)行標(biāo)準(zhǔn)化處理,將數(shù)據(jù)按照比例進(jìn)行縮放,使之落入一個(gè)特定的區(qū)域,便于進(jìn)行綜合分析。
數(shù)據(jù)規(guī)范化對(duì)于基于距離的挖掘算法尤為重要。
(1)最小-最大規(guī)范化:也稱(chēng)為離差標(biāo)準(zhǔn)化,是對(duì)原始數(shù)據(jù)的線性變換,將數(shù)值映射到[0,1]。這種方法的缺點(diǎn)是若數(shù)據(jù)集中且某個(gè)數(shù)值很大,則規(guī)范化后各值會(huì)接近于0,并且將會(huì)相差不大。若將來(lái)遇到超過(guò)目前屬性[min,max]取值范圍時(shí),會(huì)引起系統(tǒng)出錯(cuò),需要重新確定min和max。
(2)零-均值規(guī)范化:也叫標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化,經(jīng)過(guò)處理的數(shù)據(jù)的均值為0,標(biāo)準(zhǔn)差為1。這種方法是當(dāng)前用得最多的數(shù)據(jù)的標(biāo)準(zhǔn)化方法,但是均值和標(biāo)準(zhǔn)差受離群點(diǎn)的影響較大,因此通常需要進(jìn)行修改。首先用中位數(shù)M取代均值,其次用絕對(duì)標(biāo)準(zhǔn)差取代標(biāo)準(zhǔn)差。
(3)小數(shù)定標(biāo)規(guī)范化:通過(guò)移動(dòng)屬性值的小數(shù)位數(shù),將屬性值映射到[-1,1],移動(dòng)的小數(shù)位數(shù)取決于屬性值絕對(duì)值的最大值。
連續(xù)屬性離散化
(1)離散化的過(guò)程
連續(xù)屬性的離散化就是在數(shù)據(jù)的取值范圍內(nèi)設(shè)定若干個(gè)離散的劃分點(diǎn),將取值范圍劃分為一些離散化的區(qū)間,最后用不同的符號(hào)或整數(shù)值代表落在每個(gè)子區(qū)間中的數(shù)據(jù)值。所以,離散化涉及兩個(gè)子任務(wù):確定分類(lèi)數(shù)以及如何將連續(xù)屬性值映射到這些分類(lèi)值。
(2)常用的離散化方法
常用的離散化方法有等寬法、等頻法和(一維)聚類(lèi)。
等寬法:將屬性的值域分成具有相同寬度的區(qū)間、區(qū)間的個(gè)數(shù)由數(shù)據(jù)本身的特點(diǎn)決定,或者由用戶指定,類(lèi)似于制作頻率分布表。
等頻法:將相同數(shù)量的記錄放進(jìn)每個(gè)區(qū)間。缺點(diǎn)是對(duì)離群點(diǎn)比較敏感,傾向于不均勻地把屬性值分布到各個(gè)區(qū)間。
(一維)聚類(lèi):包括兩個(gè)步驟,首先將連續(xù)屬性的值用聚類(lèi)算法進(jìn)行聚類(lèi),然后再將聚類(lèi)得到的簇進(jìn)行處理,合并到一個(gè)簇的連續(xù)屬性值并做同一標(biāo)記。聚類(lèi)分析的離散化方法也需要用戶指定簇的個(gè)數(shù),從而決定產(chǎn)生的區(qū)間數(shù)。
屬性構(gòu)造
為了便于提取更有用的信息,挖掘更深層次的模式,提高挖掘結(jié)果的精度,需要利用已有的屬性集構(gòu)造出新的屬性,并加入到現(xiàn)有的屬性集合中。
小波變換
小波變換是一種新型的數(shù)據(jù)分析工具,具有多分辨率的特點(diǎn),在時(shí)域和頻域都具有表征信號(hào)局部特征的能力,通過(guò)伸縮和平移等運(yùn)算過(guò)程對(duì)信號(hào)進(jìn)行多尺度聚焦分析,提供了一種非平穩(wěn)信號(hào)的時(shí)頻分析手段,可以由粗到細(xì)地逐步觀察信號(hào),從中提取有用信息。
能夠刻畫(huà)某個(gè)問(wèn)題的特征量往往是隱含在一個(gè)信號(hào)中的某個(gè)或者某些分量中,小波變換可以把非平穩(wěn)信號(hào)分解為表達(dá)不同層次、不同頻帶信息的數(shù)據(jù)序列,即小波系數(shù)。選取適當(dāng)?shù)男〔ㄏ禂?shù),即完成了信號(hào)的特征提取。
(1)基于小波變換的特征提取方法
基于小波變換的特征提取方法有:基于小波變換的多尺度空間能量分布特征提取、基于小波變換的多尺度空間的模極大值特征提取、基于小波包變換的特征提取、基于適應(yīng)性小波神經(jīng)網(wǎng)絡(luò)的特征提取。
表4-2 基于小波變換的特征提取方法
基于小波變換的特征提取方法 | 方法描述 |
基于小波變換的多尺度空間能量分布特征提取方法 | 各尺度空間內(nèi)的平滑信號(hào)和細(xì)節(jié)信號(hào)能提供原始信號(hào)的時(shí)頻局域信息,特別是能提供不同頻段上信號(hào)的構(gòu)成信息。把不同分解尺度上信號(hào)的能量求解出來(lái),就可以將這些能量尺度順序排列,形成特征向量供識(shí)別用 |
基于小波變換的多尺度空間的模極大值特征提取方法 | 利用小波變換的信號(hào)局域化分析能力,求解小波變換的模極大值特征來(lái)檢測(cè)信號(hào)的局域奇異性,將小波變換模極大值的尺度參數(shù)s、平移參數(shù)t及其幅值作為目標(biāo)的特征量 |
基于小波包變換的特征提取方法 | 利用小波分解,可將時(shí)域隨機(jī)信號(hào)序列映射為尺度域各子空間內(nèi)的隨機(jī)系統(tǒng)序列,按小波包分解得到的最佳子空間內(nèi)隨機(jī)系數(shù)序列的不確定性程度最低,將最佳子空間的熵值及最佳子空間在完整二叉樹(shù)中的位置參數(shù)作為特征量,可以用于目標(biāo)識(shí)別 |
基于適應(yīng)性小波神經(jīng)網(wǎng)絡(luò)的特征提取方法 | 基于適應(yīng)性小波神經(jīng)網(wǎng)絡(luò)的特征提取方法可以把信號(hào)通過(guò)分析小波擬合表示,進(jìn)行特征提取 |
(2)小波基函數(shù)
小波基函數(shù)是一種具有局部支集的函數(shù),并且平均值為0,小波奇函數(shù)滿足Ψ(0)=∫ψ(t)dt=0。常用的小波基有Haar小波基、db系列小波基等。
(3)小波變換
(4)基于小波變換的多尺度空間能量分布特征提取方法
應(yīng)用小波分析技術(shù)可以把信號(hào)在個(gè)頻率波段中的特征提取出來(lái),基于小波變換的多尺度空間能量分布特征提取方法是對(duì)信號(hào)進(jìn)行頻帶分析,再分別以計(jì)算所得的各個(gè)頻帶的能量作為特征向量。
四、數(shù)據(jù)規(guī)約
數(shù)據(jù)規(guī)約可以產(chǎn)生更小的但保持原數(shù)據(jù)完整性的新數(shù)據(jù)集。數(shù)據(jù)規(guī)約的意義在于:降低無(wú)效、錯(cuò)誤數(shù)據(jù)對(duì)建模的影響,提高建模的準(zhǔn)確性;少量且具有代表性的數(shù)據(jù)將大幅縮減數(shù)據(jù)挖掘所需的時(shí)間;降低儲(chǔ)存數(shù)據(jù)的成本。
屬性規(guī)約
屬性規(guī)約通過(guò)屬性合并來(lái)創(chuàng)建新屬性維數(shù),或者直接通過(guò)刪除不相關(guān)的屬性(維)來(lái)減少數(shù)據(jù)維數(shù),從而提高數(shù)據(jù)挖掘的效率、降低計(jì)算成本。屬性規(guī)約的目標(biāo)是尋找出最小的屬性子集并確保新數(shù)據(jù)子集的概率分布盡可能地接近原來(lái)數(shù)據(jù)集的概率分布。屬性規(guī)約的常用方法有:
合并屬性:將一些舊屬性合為新屬性;
逐步向前選擇:從一個(gè)空屬性集開(kāi)始,每次從原來(lái)屬性集合中選擇一個(gè)當(dāng)前最優(yōu)的屬性添加到當(dāng)前屬性子集中。直到無(wú)法選擇出最優(yōu)屬性或滿足一定閾值約束為止;
逐步向后刪除:從一個(gè)全屬性集開(kāi)始,每次從當(dāng)前屬性子集中選擇一個(gè)當(dāng)前最差的屬性并將其從當(dāng)前屬性子集中消去。直到無(wú)法選擇出最差屬性為止或滿足一定閾值約束為止;
決策樹(shù)歸納:利用決策樹(shù)的歸納方法對(duì)初始數(shù)據(jù)進(jìn)行分類(lèi)歸納學(xué)習(xí),獲得一個(gè)初始決策樹(shù),所有沒(méi)有出現(xiàn)在這個(gè)決策樹(shù)上的屬性均可認(rèn)為是無(wú)關(guān)屬性,因此將這些屬性從初始集合中刪除,就可以獲得一個(gè)較優(yōu)的屬性子集;
主成分分析:用較少的變量去解釋原始數(shù)據(jù)中的大部分變量,即將許多相關(guān)性很高的變量轉(zhuǎn)化成彼此相互獨(dú)立或不相關(guān)的變量。
數(shù)值規(guī)約
數(shù)值規(guī)約通過(guò)選擇替代的、較小的數(shù)據(jù)來(lái)減少數(shù)據(jù)量,包括有參數(shù)方法和無(wú)參數(shù)方法兩類(lèi)。有參數(shù)方法是使用一個(gè)模型來(lái)評(píng)估數(shù)據(jù),只需存放參數(shù),而不需要存放實(shí)際數(shù)據(jù),如回歸(線性回歸和多元回歸)和對(duì)數(shù)線性模型(近似離散屬性集中的多維概率分布)。無(wú)參數(shù)方法需要存放實(shí)際數(shù)據(jù),如直方圖、聚類(lèi)、抽樣。
(1)直方圖
屬性A的直方圖將A的數(shù)據(jù)分布劃分為不相交的子集或桶。如果每個(gè)桶只代表單個(gè)屬性值/頻率對(duì),則該桶成為單桶。通常,桶表示給定屬性的一個(gè)連續(xù)區(qū)間。R中用函數(shù)hist()繪制直方圖,用以說(shuō)明變量取值的分布情況。
(2)聚類(lèi)
聚類(lèi)技術(shù)將數(shù)據(jù)元祖(即記錄,數(shù)據(jù)表中的一行)視為對(duì)象。它將對(duì)象劃分為簇,使一個(gè)簇中的對(duì)象相互“相似”,而與其他簇中的對(duì)象“相異”。在數(shù)據(jù)規(guī)約中,用數(shù)據(jù)的簇替換實(shí)際數(shù)據(jù)。該技術(shù)的有效性依賴于簇的定義是否符合數(shù)據(jù)的分布性質(zhì)。R中常用的聚類(lèi)函數(shù)有hclust()、kmeans(),前者在使用系統(tǒng)聚類(lèi)法時(shí)使用,后者為快速聚類(lèi)的函數(shù)。
(3)抽樣
抽樣也是一種數(shù)據(jù)規(guī)約技術(shù),它用比原始數(shù)據(jù)小得多的隨機(jī)樣本(子集)表示原始數(shù)據(jù)集。抽樣類(lèi)型有:有放回簡(jiǎn)單隨機(jī)抽樣、無(wú)放回簡(jiǎn)單隨機(jī)抽樣、聚類(lèi)抽樣、分層抽樣等。用于數(shù)據(jù)規(guī)約時(shí),抽樣最常用來(lái)估計(jì)聚集查詢的結(jié)果。在指定的誤差范圍內(nèi),可以確定(使用中心極限定理)估計(jì)一個(gè)給定的函數(shù)所需的樣本大小。通常樣本的大小s相對(duì)于N非常小。
(4)參數(shù)回歸
簡(jiǎn)單線性模型和對(duì)數(shù)線性模型可以用來(lái)近似給定的數(shù)據(jù)。(簡(jiǎn)單)線性模型對(duì)數(shù)據(jù)建模,使之?dāng)M合一條直線,在R中使用函數(shù)lm()即可實(shí)現(xiàn)。
對(duì)數(shù)線性模型:用來(lái)描述期望頻數(shù)與協(xié)變量(指與因變量有線性相關(guān)并且探討自變量與因變量關(guān)系時(shí)通過(guò)統(tǒng)計(jì)技術(shù)加以控制的變量)之間的關(guān)系。對(duì)數(shù)線性模型一般用來(lái)近似離散的多維概率分布。
五、R語(yǔ)言主要數(shù)據(jù)預(yù)處理函數(shù)
表4-3 R主要數(shù)據(jù)預(yù)處理函數(shù)
函數(shù)名 | 函數(shù)功能 | 所屬函數(shù)包 |
lm() | 利用因變量與自變量建立線性回歸模型 | 通用函數(shù)包 |
predict() | 依據(jù)已有模型對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè) | 通用函數(shù)包 |
mice() | 對(duì)缺失數(shù)據(jù)進(jìn)行多重插補(bǔ) | mice函數(shù)包 |
which() | 返回服從條件的觀測(cè)所在位置 | 通用函數(shù)包 |
scale() | 對(duì)數(shù)據(jù)進(jìn)行零-均值規(guī)范化 | 通用函數(shù)包 |
rnorm() | 隨機(jī)產(chǎn)生服從正態(tài)分布的一列數(shù) | 通用函數(shù)包 |
ceiling() | 向上舍入接近的整數(shù) | 通用函數(shù)包 |
kmeans() | 對(duì)數(shù)據(jù)進(jìn)行快速聚類(lèi)分析 | 通用函數(shù)包 |
dwt() | 對(duì)數(shù)據(jù)進(jìn)行小波分解 | waveslim函數(shù)包 |
princomp() | 對(duì)指標(biāo)變量矩陣進(jìn)行主成分分析 | 通用函數(shù)包 |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。