機器學習之不良數據的處理

機器學習之不良數據的處理

大量數據的收集、儲存和處理可以說是對於機器學習,或者說人工智能的發展起著重要的作用。許多問題都需要大數據的支持來解決,幸運的是,現在收集、存儲和處理大數據的成本比以前要小得多,速度也要快得多。但是數據的質量問題仍然是一個不可忽視的大問題

"數據質量不佳是阻礙廣泛發展的主要原因"—數據質量管理的先驅者之一,數據博士 Thomas C. Redman 如是說,當然這樣想的不止他一個人。

眾所周知,訓練數據決定了機器學習系統的性能。高質量的數據可以得到更好的結果,不好的數據會流經整個系統產生沒用的信息。可以這樣說,數據的好壞直接決定著數據項目是否成功!

Redman 提醒我們"不良數據的引入可能會出現在兩個地方:第一個便是用於訓練模型的數據,第二個便是用於測試的新數據。雖說數據科學家和工程師正在努力的精煉他們的人工智能、機器學習和深度學習算法,但是"只有 %3 的公司"能夠提供符合基本質量標準的數據。

機器學習之不良數據的處理

我們不能將失敗歸結於機器,但是我們可以採取一些措施解決不良數據產生的影響。

常見的不良數據問題有以下幾個方面:

1,數據缺失或者不完整

很多時候,由於某些信息不能直接獲取到,數據會被組合或者某些字段進行留空。或者當數據被收集時執行的分析和當前的分析的目標不同,導致某些值被省略。數據缺失在數據挖掘中是最常遇到的問題,也是我們能花費很長時間做數據處理的原因,而且機器學習的訓練和預測很難通過不完整的信息來實現。

面對上述問題,對應的解決方案是:儘管消除問題數據的方法對結果會有很大提升,如果在問題數據所佔比例較小時候,這種方法的直接去除效果會比較好。另一種方案是使用合成數據:通過算法創建符合真實數據特徵的模擬數據。合成數據是一種新興技術,可以幫助消除訪問完整訓練數據的障礙。比如:可以根據前後的值填充平均值,也可以填充字段整體的平均值,或者眾數,又或者中位數,當然,具體怎麼填充要根據具體的業務來選擇

2,數據不準確、異常值

在做機器學習項目時是在訓練預測模型之前清洗數據。但清洗數據並不總能識別或糾正每一個錯誤,並且數據仍然可能會不準確。 數據科學家已經花費了大部分時間來對抗這一問題,然而,一個預測模型的輸出會作為後續模型的輸入,這意味著即使是一個小錯誤也會產生顯著的負面影響。

面對上述問題,對應的解決方案是:提供足夠的時間清洗數據,評估數據源並在每個階段對性能進行測試。數據有偏差在機器學習訓練過程中,如果數據存在偏差,數據的完整性會受損,這會直接影響到預測結果。

另外異常值其實經常有著特殊的含義。直接忽略異常值可能忽略掉潛在的數據價值,所以對待異常值不能單純的選擇去除,如果是對業務很重要的字段,要先研究以下異常值的意義,比如:在什麼情況下出現異常值,為什麼會出現異常值,出現的異常值有什麼特殊的含義等等

3,數據單位不統一

這個問題也經常會遇到,不過相對好辦,在建模的時候可以直接進行單位調整

4,數據方差過大

同一個字段,值相差過大,這對使用距離的模型會產生很大的偏差性,我們要儘可能的消除這種影響,標準化和歸一化都是不錯的選擇


分享到:


相關文章: