您好,登錄后才能下訂單哦!
本篇內容介紹了“數據清洗和轉換的方法步驟”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
數據準備的關鍵和重復階段是數據探索。一組因為太大而無法由人工手動讀取、檢查和編輯每個值的數據,仍需要驗證其質量和適用性,然后才可以將其委托給一個值得花費時間和計算的模型。
與將大型數據集的樣本轉儲到電子表格程序中的方法一樣簡單,只需查看每列中出現的值的類型或范圍,即可識別諸如不負責任的默認值之類的錯誤(例如,在沒有測量值的情況下,使用零而不是NULL)或不可能的范圍或不兼容的合并(數據似乎來自多個來源,每個來源中使用了不同的單位。例如,華氏度與攝氏度)。
數據分析工具非常豐富。當數據集太大而無法在電子表格程序中打開時,Python腳本或像RStudio這樣的應用程序具有可視化、匯總或報告數據的強大功能。使用你熟悉的任何方法,至少要確定不同屬性值的格式和一般分布。
在能夠使用數據集之前,有許多工具可以用于清洗、處理和了解數據集。Python是這方面的事實標準,它有很多工具來理解和處理數據。
Matplotlib之類的包,通常可以非常容易地生成用于可視化檢查的數據圖表。
Pillow提供各種處理、轉換和操作圖像的功能。
Python有一個用于執行統計的內置程序包,如果需要更多功能的話,NumPy也有。
Python還具有廣泛的內置和第三方支持內容,可處理你將要遇到的幾乎所有文件格式,包括CSV、JSON、YAML、XML和HTML,以及更深奧的格式(如TOML或INI文件)。
如果這些都不起作用,則有一個值得搜索的軟件包索引器,可以查看是否有解決你的問題的方法。或者,只需搜索“我想用Python做事情”,大多數情況下,你會發現某人遇到了相同的問題,并為此提供了解決方案,或者至少提供了一些可以查看的指引。
如果你不喜歡Python,那么幾乎所有選擇的編程語言都具有類似的工具和功能。我們之所以喜歡Python,是因為這些工作已經為你完成了,而且有很多例子可以作為起點。Python在這方面沒有什么神奇之處,但它是最受歡迎的選擇,所以我們提倡堅持使用主流工具。
另一個不錯的選擇是電子表格程序,例如Excel、Numbers或Google Sheets。它們經常受到指責,因為在這些程序中進行數據準備可能很麻煩,但在需要使用Python(或你選擇的其他工具)之前,你可以使用它們非常快速地獲得大量有用的洞見和準備。作為系統附贈的工具,你基本上肯定已經安裝了其中一個,并且可以在你的機器上運行。
最后,不要害怕跳出框架思考——一些像壓縮數據集這樣簡單的東西,甚至不需要看數據集內部就能大致了解數據集的熵大小。如果一個數據集壓縮得非常好,而來自相同來源的另一個數據集壓縮得不那么好,那么第二個數據集的數據的熵可能比第一個數據集的大。
圖像數據集不是那么容易觀察到的,但絕對值得花時間瀏覽一下圖像的總體質量,以及圖像使用了哪些裁剪方法。像Turi Create這樣的可視化功能對于了解數據非常有用。圖3-1顯示了一個例子。
▲圖3-1 通過Turi Create了解你的數據
在了解數據集的過程中,你可能會遇到一些錯誤。記錄數據可能會產生錯誤。需要檢查的錯誤有以下幾類:
一致值錯誤
單值錯誤
缺失值
一致值錯誤包括可能導致整列或一組值不準確的情況,例如,使用儀器記錄某個被統一量校準錯誤的數據,從產生額外熱量的物體旁邊測量溫度,使用未提前歸零的天平稱重,等等。這還包括來自不同來源的數據未經轉換就被不當合并的情況:簡單壓縮一組來自美國和一組來自英國的數據,現在系統認為100攝氏度完全合理。
單值錯誤用于描述離群值或不一致的錯誤校準,僅在少數情況下導致不準確或完全不合邏輯的值。可能出現的情況,如傳感器超載一天,產生的值比理論可能的高1000%(應該是相當明顯的)。
當用于記錄數據的方法出現問題,或者數據集在其生命周期的某個時刻經歷了某種畸形的轉換時,可能會出現缺失值。這些可能是簡單的nil或NULL值,或者一些不太有用的值,例如字符串"NONE"或默認值0。有些甚至可能只是無意義的字符,什么都有可能出現。
如果可以識別出一致誤差,那么這通常可以通過按一致誤差值縮放或轉換整個值集來糾正。單值錯誤和缺失值要求你要么猜測需要使用某種可行方法替換的值,要么完全刪除行或者觀察值以防止出現誤差。
你可以通過以下方法來猜測該值:獲取該列中所有其他值的平均值;使用該列中與缺失值最接近的觀察值;使用一些使用其他屬性知識的特定于應用程序的方法。
在使用數據之前進行轉換有兩個主要原因:為了滿足要使用的算法的格式要求;使用新的推斷屬性改進或擴展當前數據。對于這兩種目的,通常有三種數據轉換:
一種用于數值數據的方法,它將上界和下界綁定到一個數值范圍上,使它們更容易處理。
這方面的一個例子是對數值數據的觀察值需要與不同的度量進行比較。如果你試圖根據魚的長度、體重、年齡和失去眼睛的數量來評估不同魚的健康狀況,大概每個人都會同意用不同的標準來比較兩條魚(例如,一只眼睛與一年的魚,或者一厘米長度的相比較)。如果用同樣的標準來比較,則會得出不同的結果。
歸一為正數值很簡單:
一種將特定值替換為更高級別的概念,以更好地進行群體觀察的方法。
當記錄某些屬性的方法比需要的更精確時,通常會發生這種情況。例如,如果你具有某人運動的GPS統計信息,則可以將緯度和經度歸納為一個地址,從而防止系統將每一個小運動都視為位置變化。或者,將數值測量值轉換為人類群體,這意味著相關因素可能不是將個人的身高測量值以毫米為單位,而是將其分為低于、接近或高于平均的身高。
對某些復雜屬性進行總結以使分析更有效的一種方法。
例如,可以從文本中提取關鍵字(甚至是單詞頻率),而不是分析文本的段落(Attribute: Text,Classification: Class),只顯示與所給出的分類最相關或最獨特的方面。
在這些步驟之前、之間或之后,可能會出現不同類型的數據轉換,數據可能被更改、擴展或縮減:
特征構建(feature construction)
一種創建新屬性的方法,通常通過推理或組合已有的其他值來實現。
這方面的一個例子是泛化或聚合,其中原始值也被保留,或者更常見的是,當存在兩個或多個值時(或允許發現第三個值)。例如,如果你有一家公司的名稱和經營所在國,可以查一下它的商業登記號;如果你有某人的身高和體重,可以構建他們的BMI。
數據規約(data reduction)
一種刪除某些屬性的方法,這些屬性可能與另一個屬性相關,也可能與你試圖解決的問題無關。
例如,如果你有某人的地址、郵編和區號,這些信息中至少有一條是多余的。也許—就像在特征構建的例子中那樣—你由于一些算法的原因想要同時分析兩者,但這是不可能的。兩個或多個屬性之間的高度相關性表明,它們可能在分析中導致錯誤,并可能被刪除。
到了這一步,你應該花更多的時間仔細地看看你試圖解決的問題和打算用于任務的數據集。在AI應用程序之前的數據分析世界中,可能沒有你想要的那么嚴格的規則,但你通常會知道一個解決方案是否可行,一個數據集是否能講述你想要的故事。
相信這個小小的聲音,因為如果你回頭看,會發現浪費的工作是有價值的。
再次探索你的數據。瀏覽并可視化它,用少量的數據子集測試你的解決方案—做你需要做的任何事情。如果感覺還是正確的,那就繼續前進。
“數據清洗和轉換的方法步驟”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。