資料預處理 總述

2021-09-02 12:53:52 字數 1461 閱讀 4934

圍繞著要餵給神經網路的資料:收集資料、清洗資料、運算元據、給資料加標籤、分析資料、做資料視覺化等等。

基於對業務的理解,這種相對比較少一點,更多的還是基於資料本身。你可以用一些資料探勘中常用的資料清理的方法,過濾異常值,過濾缺失嚴重的特徵等等。

有時候做預處理,最終還是需要一些反饋。比如從資料上看,可能需要扔掉某些東西。我們需要去試一試,扔掉這些東西之後,在最終的比賽中,提交的**結果會不會變好。或者採用以結果導向的反饋,這樣迭代去往下走。

另外,每個比賽其實都有一些自己獨特的資料,即使是同樣領域的問題,資料的分布也可能差別很大。這時候之前的經驗可能就不適用當前的問題,我們必須接受這樣乙個事實,需要針對資料重新去建立問題的解決方案。其實這還是乙個偏實踐的問題,實踐推動著你往前走。

你要真想玩,那你就得堅持,不斷地去看論壇上的帖子,想想人家是怎麼做的,再去改進自己的方案,那樣總會迎來收穫。

資料本身決定了模型表現的上限,而模型和演算法只是逼近這個上限,這和大部分資料探勘教材中的 riro 原則是對應的,因此,對資料的預處理(和特徵工程),要幹的就是提高模型可逼近的上限,以及提高模型魯棒性。

1)怎麼提高模型可逼近上限?

提特徵;特定領域還需要濾波和去噪;把干擾模型擬合的離群點扔掉。

2)怎麼提高模型的魯棒性?

數值型資料中的缺失值可以花式處理,預設值,平均值,中位值,線性插值;

文字資料可以在字,詞,句等粒度不同進行處理;

影象資料進模型之前把影象進行 90,180,270 等不同角度翻轉也是常見的處理方式了。

1)連續型特徵離散化

將連續型特徵離散化的乙個好處是可以有效地克服資料中隱藏的缺陷:使模型結果更加穩定。例如,資料中的極端值是影響模型效果的乙個重要因素。極端值導致模型引數過高或過低,或導致模型被虛假現象"「迷惑」",把原來不存在的關係作為重要模式來學習。而離散化,尤其是等距離散,可以有效地減弱極端值和異常值的影響。

例子:通過觀察2.2節的原始資料集的統計資訊,可以看出變數duration的最大值為4918,而75%分位數為319,遠小於最大值,而且該變數的標準差為259,相對也比較大。因此對變數duration進行離散化。具體地,使用pandas.qcut()函式來離散化連續資料,它使用分位數對資料進行劃分(分箱: bining),可以得到大小基本相等的箱子(bin),以區間形式表示。然後使用pandas.factorize()函式將區間轉為數值。

2)規範化

由於不同變數常常使用不同的度量單位,從數值上看它們相差很大,容易使基於距離度量的學習模型更容易受數值較大的變數影響。資料規範化就是將資料壓縮到乙個範圍內,從而使得所有變數的單位影響一致。

for i in numeric_attrs:

scaler = preprocessing.standardscaler()

data[i] = scaler.fit_transform(data[i])

3)更細緻的特徵選擇,如派生屬性;

4)解決資料不平衡問題,如代價敏感學習方法;

負載均衡總述

internet 的規模每一百天就會增長一倍,客戶希望獲得 7 天 24 小時的不間斷可用性及較快的系統反應時間,而不願屢次看到某個站點 server too busy 及頻繁的系統故障。網路的各個核心部分隨著業務量的提高 訪問量和資料流量的快速增長,其處理能力和計算強度也相應增大,使得單一裝置 根...

設計原則總述

moon1128 設計原則 1.開 閉 原則 open closed principle,ocp 2.黎克特制代換原則 liskov substitution principle,lsp 3 依賴倒轉原則 dependency inversion principle,dip 4 介面隔離原則 int...

MySQL複製總述

mysql的複製功能是大規模 高效能應用的基礎,是 水平擴充套件 的架構。mysql複製解決的基本問題是讓一台伺服器的資料與其他伺服器保持同步。備庫本身也可以配置為其他伺服器的主庫。從技術角度看,mysql支援2中複製方式 基於行的複製和基於語句的複製。基於行的複製在5.1之後才開始出現。這兩種方式...