學習筆記 資料預處理(資料探勘)

2021-09-18 07:42:53 字數 4006 閱讀 3887

提取碼:m69u

主要內容:

資料清洗

資料整合

資料變換

資料規約

## 資料清洗 物件:無關資料,重複資料,平滑雜訊資料,篩選掉與挖掘主題無關的資料,處理缺失值,異常值等。 方法:刪除記錄,資料插補和不處理。

常見的插補法:

拉格朗日插值法:

牛頓插值法:

用拉格朗日插值法對缺失值進行插補的python程式。

(資料詳見:demo/data/catering_sale.xls)

emm以下**本人執行總是會出錯,上網也找不到原因,如果你們執行出錯的話,請跳過本段**。

#拉格朗日插值**

import pandas as pd #匯入資料分析庫pandas

from scipy.interpolate import lagrange #匯入拉格朗日插值函式

inputfile =

'catering_sale.xls'

#銷量資料路徑

outputfile =

'sals.xls'

#輸出資料路徑

data = pd.read_excel(inputfile)

#讀入資料

data[u'銷量'][

(data[u'銷量'

]<

400)

|(data[u'銷量'

]>

5000)]

=none

#過濾異常值,將其變為空值

#自定義列向量插值函式

#s為列向量,n為被插值的位置,k為取前後的資料個數,預設為5

defployinterp_column

(s, n, k=5)

: y = s[

list

(range

(n-k, n))+

list

(range

(n+1

, n+

1+k))]

#取數 y = y[y.notnull()]

#剔除空值

return lagrange(y.index,

list

(y))

(n)#插值並返回插值結果

#逐個元素判斷是否需要插值

for i in data.columns:

for j in

range

(len

(data)):

if(data[i]

.isnull())

[j]:

#如果為空即插值。

data[i]

[j]= ployinterp_column(data[i]

, j)

data.to_excel(outputfile)

#輸出結果,寫入檔案

執行結果應如下:

資料大於5000還有空值,將其插補,插值結果更符合實際情況。

常用方法:

在很多情況下,要先分析異常值出現的可能原因,再判斷異常值是否應該捨棄,如果是正確的資料,可以直接在具有異常值的資料集上進行挖掘建模。

資料整合就是將多個資料來源合併存放在乙個一致的資料儲存(如資料倉儲)中的過程。

任務:統一不同的源資料的矛盾之處。

(1)同名異義

(2)異名同義

(3)單位不統一

資料整合往往導致資料冗餘,如:

(1)同屬性多次出現

(2)同屬性命名不一致導致重複

簡單資料變換

x』=x2

x』=x

\sqrt

x​x』=log(x)

▽f(x

kx_k

xk​)=f(xk+

1x_k+1

xk​+

1)-f(x

kx_k

xk​)

簡單的函式變換常用來將不具有正態分佈的資料變換成具有正態分佈的資料。

規範化

為了消除指標之間的量綱和取值範圍差異的影響,進行標準化處理,將資料按照比例進行縮放,使之落入乙個特定的區域,便於進行綜合分析。

(1)最小-最大規範化(離差標準化)

對原始資料的線性變換,將數值對映到[0,1]之間。

轉換公式:

(2)零-均值規範化(標準差標準化)

經過處理的資料的均值為0,標準差為1.

轉換公式:

x*=x−x

‾σ\frac}

σx−x​x

‾\overline

x為原始資料的均值,σ

\sigma

σ為原始資料的標準差,是當前用得最多的資料標準化方法。

(3)小數定標準規劃範

通過移動屬性值的小數字數,將屬性值對映到[-1,1]之間,移動的小數字取決於屬性值的絕對值最大。

轉換公式:

x*=x10

k\frac

10kx

​以下通過對乙個矩陣使用上面3種規範化的方法處理。

#-*- coding: utf-8 -*-

#資料規範化

import pandas as pd

import numpy as np

datafile =

'normalization_data.xls'

#引數初始化

data = pd.read_excel(datafile, header =

none

)#讀取資料

(data - data.

min())

/(data.

max(

)- data.

min())

#最小-最大規範化

(data - data.mean())

/data.std(

)#零-均值規範化

data/

10**np.ceil(np.log10(data.

abs().

max())

)#小數定標規範化

print

(data)

結果如下:

data #資料來源

(data - data.min())/(data.max() - data.min()) #最小-最大規範化

(data - data.mean())/data.std() #零-均值規範化

data/10**np.ceil(np.log10(data.abs().max())) #小數定標規範化

資料探勘學習筆記 資料預處理

目錄 資料預處理的任務 一 資料規範化 最小 最 min max normalization 零均值規範化 z score 二 資料離散化 無監督離散化方法 有監督離散化方法 三 資料清洗 處理資料的缺失 噪音資料的處理 四 特徵提取和特徵選擇 特徵提取 特徵選擇 q 為什麼要進行資料預處理?a 原...

資料探勘學習筆記2 資料預處理

現實資料是 骯髒的 沒有高質量資料,就沒有高質量的挖掘結果 資料清理 填寫空缺的值,平滑雜訊資料,識別,刪除孤立點,解決不一致性 資料整合 整合多個資料庫,資料立方體或檔案 資料變換 規範化和聚集 資料規約 得到資料集的壓縮表示,它小得多,但可以相同或相近的結果 資料離散化 資料規約的一部分,通過概...

記》資料預處理

處理資料中的髒資料,處理無關資料等。缺失值處理 相關方法 刪除記錄 將缺失值的那條記錄刪除。資料插補 將缺失值進行補全,方法包括 均值 中位數 眾數插補,使用固定值,最近臨插補,回歸方法,插值法。相關利弊在原文中有介紹。不處理 就是字面意思。插值法的介紹 拉格朗日插值法和牛頓插值法在原文重點介紹了推...