做資料預先處理很重要,但是如何做好資料預先處理似乎是件更困難的事。。。。。
-----------------------------------------------------------------------------------------------------------------------
當今現實世界的資料庫極易受雜訊、遺失資料和不一致資料的侵擾,因為資料庫太大(常常多達數千MB,甚至更多),並且多半來自多個異構資料來源。低品質的資料將導致低品質的挖掘結果。“如何預先處理資料提高資料品質,從而提高挖掘結果的品質?如何預先處理資料,使得挖掘過程更加有效、更加容易?”
有大量資料預先處理技術。資料清理可以用來去掉資料中的雜訊,糾正不一致。Data Integration將資料由多個源合并成一致的資料存放區,如資料倉儲。也可以使用資料變換,如正常化。例如,正常化可以提高涉及距離度量的挖掘演算法的準確率和有效性。資料歸約可以通過聚集、刪除冗餘特徵或聚類等方法來減小資料規模。這些技術不是互斥的,可以一起使用。例如,資料清理可能涉及糾正錯誤資料的變換,如將日期欄位變換成共同的格式。這些資料處理技術在挖掘之前使用,可以顯著地提高挖掘模式的總體品質和/或減少實際挖掘所需要的時間。
介紹資料預先處理的基本概念,介紹作為資料預先處理基礎的描述性資料匯總。描述性資料匯總協助我們研究資料的一般特徵、識別雜訊或離群點,對成功的資料清理和Data Integration很有用。資料預先處理的方法組織如下:資料清理、Data Integration與變換和資料歸約。概念分層可以用作資料歸約的一種替換形式,其中低層資料(如年齡的原始值)用高層概念(如青年、中年或老年)替換。這種形式的資料歸約,在那裡我們討論使用資料離散化技術,由數值資料自動地產生概念分層。
為什麼要預先處理資料
想像你是AllElectronics的經理,負責分析涉及你部門的公司銷售資料。你立即著手進行這項工作,仔細地審查公司的資料庫和資料倉儲,識別並選擇應當包含在分析中的屬性或維,如item, price和units_sold。啊!你注意到許多元組在一些屬性上沒有值。為了進行分析,希望知道每種購進的商品是否作了銷售廣告,但是發現這些資訊沒有記錄下來。此外,你的資料庫系統使用者已經報告某些事務記錄中的一些錯誤、不尋常的值和不一致性。換言之,你希望
使用資料採礦技術分析的資料是不完整的(缺少屬性值或某些感興趣的屬性,或僅包含聚集資料),含雜訊的(包含錯誤或存在偏離期望的離群值),並且是不一致的(例如,用於商品分類的部門編碼存在差異)。歡迎來到現實世界!
存在不完整的、含雜訊的和不一致的資料是現實世界大型的資料庫或資料倉儲的共同特點。不完整資料的出現可能有多種原因。有些感興趣的屬性,如銷售交易資料中顧客的資訊,並非總是可用的。其他資料沒有包含在內只是因為輸入時認為是不重要的。相關資料沒有記錄可能是由於理解錯誤,或者因為裝置故障。與其他記錄不一致的資料可能已經刪除。此外,記錄曆史或修改的資料可能被忽略。缺失的資料,特別是某些屬性上缺少值的元組可能需要推匯出來。
資料含雜訊(具有不正確的屬性值)可能有多種原因。收集資料的裝置可能出故障;人或電腦的錯誤可能在資料輸入時出現;資料轉送中的錯誤也可能出現。這些可能是由於技術的限制,如用於資料轉送同步的緩衝區大小的限制。不正確的資料也可能是由命名規範或所用的資料代碼不一致,或輸入欄位(如日期)的格式不一致而導致的。重複元組也需要資料清理。
資料清理常式通過填寫缺失的值、光滑雜訊資料、識別或刪除離群點並解決不一致性來“清理”資料。如果使用者認為資料是髒的,則他們不會相信這些資料的挖掘結果。此外,髒資料造成挖掘過程陷入混亂,導致不可靠的輸出。儘管大部分挖掘常式都有一些過程處理不完整或雜訊資料,但它們並非總是魯棒的。相反,它們著重於避免建模函數過分擬合資料。因此,一個有用的預先處理步驟是使用一些清理常式處理資料。2.3節討論清理資料的方法。回到你在AllElectronics的任務,假定在分析中包含來自多個資料來源的資料。這涉及整合48 多個資料庫、資料立方體或檔案,即Data Integration。代表同一概念的屬性在不同的資料庫中可能有不同的名字,這將導致不一致性和冗餘。例如,顧客識別屬性在一個資料庫中可能是customer_id,而在另一個中為cust_id。命名的不一致還可能出現在屬性值中。例如,同一個人的名字可能在一個資料庫中登記為“Bill”,在第二個資料庫中登記為“William”,而在第三個資料庫中登記為“B”。此外,你可能會覺察到,有些屬性可能是由其他屬性(例如年度營收)匯出的。含大量冗餘資料可能降低知識發現過程的效能或使之陷入混亂。顯然,除資料清理之外,在Data Integration時必須採取步驟,避免資料冗餘。通常,在為資料倉儲準備資料時,資料清理和整合將作為預先處理步驟進行。還可以再次進行資料清理,檢測和刪去可能由整合導致的冗餘。
回到你的資料,假設你決定要使用諸如神經網路、最近鄰分類法或聚類這樣的基於距離的挖掘演算法進行分析。如果待分析的資料已經正常化,即按比例映射到一個特定的區間[0.0,1.0],這些方法能得到更好的結果。例如,你的顧客資料包含年齡和年薪屬性。年薪屬性的取值範圍可能比年齡大得多。這樣,如果屬性未正常化,距離度量對年薪所取的權重一般要超過距離度量對年齡所取的權重。此外,分析得到每個用戶端區域的銷售額這樣的聚集資訊可能是有用的。這種資訊不在你的資料倉儲的任何預計算的資料立方體中。你很快意識到,資料變換操作,如正常化和聚集,是導向挖掘過程成功的預先處理過程。
隨著你進一步考慮資料,你想知道“我選擇用於分析的資料集太大了,肯定降低挖掘過程的速度。有沒有辦法壓縮我的資料集而又不損害資料採礦的結果?”資料歸約得到資料集的簡化表示,它小得多,但能夠產生同樣的(或幾乎同樣的)分析結果。有許多資料歸約策略,包括資料聚集(例如建立資料立方體)、屬性子集選擇(例如通過相關分析去掉不相關的屬性)、維度歸約(例如使用諸如最小長度編碼或小波等編碼方案)和數值歸約(例如使用聚類或參數模型等較小的表示“替換”資料)。使用概念分層泛化也可以“歸約”資料。泛化用較高層的概念替換較低層的概念,例如,對於顧客位置,用region或49 province_or_state替換city。概念分層將概念組織在不同的抽象層。資料離散化是一種資料歸約形式,對於從數值資料自動地產生概念分層是非常有用的。
總結了這裡討論的資料預先處理步驟。注意,上面的分類不是互斥的。例如,冗餘資料的刪除既是一種資料清理形式,也是一種資料歸約。
概言之,現實世界的資料一般是髒的、不完整的和不一致的。資料預先處理技術可以改進神經網路和最近鄰分類法在第6章介紹,聚類在第7章討論。
資料的品質,從而有助於提高其後的挖掘過程的精度和效能。由於高品質的決策必然依賴於高品質的資料,因此資料預先處理是知識發現過程的重要步驟。檢測資料異常、儘早地調整資料並歸約待分析的資料,將在決策過程得到高回報。(責任編輯:王瑞)