光滑雜訊資料常用的方法 幾種常見的資料變換方法

2021-10-18 18:03:16 字數 2500 閱讀 5646

在開始之前,先舉乙個小例子。假設小明考了80分,小華也考了80分。但前者是百分制,後者150是滿分。如果我們把從這兩個渠道收集上來的資料進行整合、挖掘。無論使用什麼演算法,結果也不是正確的。因為這兩個分數,代表的含義完全不同。所以說,有時候資料變換比演算法選擇更重要。資料錯了,演算法再正確也是錯的。那麼,如何將不同渠道的資料進行統一呢?這就用到了資料變化。

眾所周知,在資料變換前,我們需要先對字段進行篩選,然後對資料進行探索和相關性分析,接著是選擇演算法模型,然後針對演算法模型對資料的需求進行資料變換,從而完成資料探勘前的準備工作。

從這個流程可以看出,資料變換是資料準備的重要環節。它可以通過 資料平滑、資料聚集、資料概化和規範化等方式,將資料轉換成適用於資料探勘的形式。

一、常見的變換方法

資料平滑:去除資料中的雜訊,將連續資料離散化。可採用分箱、聚類和回歸的方式進行資料平滑。

資料聚集:對資料進行彙總。比如sql 中的 max() 、sum() 等函式。

資料概化:將資料由較低的概念抽象成較高的概念,減少資料複雜度。即用更高的概念替代更低的概念。比如:上海、杭州、深圳可以概化為中國。

資料規範化:使屬性資料按比例縮放,這樣就將原來的數值對映到乙個新的特定區域中,常用的方法有:min-max規範化、z-score規範化、按小數定標規範化等。

屬性構造:構造出新的屬性並新增到屬性集中。會用到特徵工程的知識,因為通過屬性與屬性的連線構造新的屬性,其實就是特徵工作。比如:資料表中統計每個人的英語、語文和數學成績,可以構造乙個「總和」這個屬性,來作為新屬性。這樣「總和」這個屬性就可以用到後續的資料探勘計算中。

以上這些變換方法中,最簡單易用的就是對資料進行規範化處理。下面,就詳細說說如何對資料進行規範化處理。

二、資料規範化的幾種方法

在講具體的方法前,插一句,下面的方法,都會用 python 的 scikit-learn 庫來實現。

那麼,什麼是 scikit-learn 呢?它是 python 的重要機器學習庫,它幫我們封裝了大量的機器學習演算法,比如分類、聚類、回歸、降維等。此外,它也包括了資料變換模組。

1、min-max 規範化

min-max 規範化方法:將原始資料變換到[0,1]的空間中。讓原始資料投射到指定的空間[min, max]。用公式表示就是:新數值 =(原數值 - 極小值)/(極大值 - 極小值)。

在 scikit-learn 裡有個函式 minmaxscaler 是專門做這個的,它允許我們給定乙個最大值與最小值,然後將原資料投射到[min, max]中。預設情況下[min,max]是[0,1],也就是把原始資料投放到[0,1]範圍內。

# coding:utf-8

from sklearn import preprocessing

import numpy as np

# 初始化資料,每一行表示乙個樣本,每一列表示乙個特徵

x = np.array([

[0.,-3.,1.],

[3.,1.,2.],

[0.,1.,-1.]

# 將資料進行 [0, 1] 規範化

min_max_scaler = preprocessing.minmaxscaler()

min_max_x = min_max_scaler.fit_transform(x)

print(min_max_x)輸出結果

2、z-score 規範化

開篇中講到的例子,雖然小明、小華都是80分,但是兩者的80分代表完全不同的含義。那麼,如何用相同的標準來比較 小明 和 小華的成績呢?z-score就可以來解決這個問題。

z-score 的方法:新數值 = (原數值 - 均值)/ 標準差。

假設 小明 所在的班級平均分為 80,標準差為 10。小華 所在的班級平均分為 120,標準差為 100。那麼 小明 的新數值 =(80-80)/10=0,小華 的新數值 =(80-120)/100=-0.4。那麼在 z-score 標準下,小明 的成績會比 小華 的成績好。

在 scikit-learn 庫中使用 preprocessing.scale() 函式,可以直接將給定資料進行 z-score 規範化。

這個結果實際上就是將每行每列的值減去了平均值,再除以方差的結果。我們看到 z-score 規範化將資料集進行了規範化,數值都符合均值為 0,方差為 1 的正態分佈。

因此,我們能看到 z-score 的優點是演算法簡單,不受資料量級影響,結果易於比較。不足在於,它需要資料整體的平均值和方差,而且結果沒有實際意義,僅是用於比較!!!。

3、小數定標規範化

小數定標規範化,就是通過移動小數點的位置類進行規範化。小數點移動多少位取決於屬性a的取值中的最大絕對值。

比如,新數值a的取值範圍是 -999 到 88,那麼最大絕對值是 999。小數點就會移動3位,即新數值=原數值/100,那麼a的取值範圍,就被規範化到[-0.999,0.088]。使用 numpy 實現

最後,再強調一次,資料探勘中資料變換比演算法選擇更重要。在上面考試成績的例子中,假如我們要讓資料滿足一定的規律,達到規範性的要求,便於挖掘。這就是資料變換的作用。如果不做變換的話,要不就是維數過多,增加了計算的成本,要不就是資料過於集中,很難找到資料之間的特徵。

光滑雜訊資料常用的方法 SEM資料分析常用方法

一般sem的資料量是很大的。乙個賬戶的量就已經很多了,而成熟團隊往往乙個操作員需要同時操作多個sem賬戶。這個時間,對這些賬戶資料採用什麼方法進行分析,是提高資料分析和決策的關鍵。一般情況下,sem的資料分析有以下四種常用方法。一 趨勢分析法 趨勢分析法又叫比較分析方法,水平分析方法,主要通過資料連...

光滑雜訊資料常用的方法 資料探勘部分課後習題

資料清理 資料整合 資料變換 資料規約各自的目的是什 麼?有哪些常用方法?資料清理的目的 去掉雜訊和無關資料 用其例程通過填寫空缺的值,平滑 雜訊資料,識別,刪除孤立點,並解決不一致來清理資料。常用的方法 處理空缺值 可用以下方法 忽略該記錄 去掉屬性 手工填寫空缺值 使 用預設值 使用屬性平均值 ...

幾種常見的排序方法。

氣泡排序 氣泡排序是每次都從第乙個元素開始,到最後的k 每迴圈完一次,最後乙個元素位置固定。include include int main void for i 0 i n 1 i k for i 0 i n i return 0 選擇排序 選擇排序每一次迴圈玩從正數的第i個元素位置確定。incl...