天天看點

python資料分析與挖掘實戰學習筆記(二)

python資料分析與挖掘實戰學習筆記(二)

根據觀測,調查收集到初步的樣本資料後,接下來要考慮的問題是:樣本資料集的數量和品質是否滿足模型建構的要求?

資料品質分析

缺失值分析

缺失值的影響

1)資料挖掘模組化将丢失大量的有用資訊

2)資料挖掘模型所表現出的不确定性更加顯著

3)包含空值的資料會使模組化過程陷入混亂,導緻不可靠的輸出

缺失值的分析

缺失值的分析氛圍删除存在缺失值的記錄,對可能隻進行插值和不處理三種方式,後續詳細介紹

異常值分析

異常值是指樣本中的個别值,其數值明顯偏離其餘的觀測值。異常值也稱為離群點。

1)簡單統計分析

簡單判斷那些資料是合理的,哪些資料是不合理的。例如客戶的年齡的最大值是199歲,這顯然是不合理的

2)3σ 原則

如果資料服從正态分布,在3σ 原則下,異常值被定義為一組測定值中與平均值的偏差超過3倍标準差的值。

3)箱型圖分析

python資料分析與挖掘實戰學習筆記(二)

箱型圖依據實際資料繪制,沒有對資料做任何限制性要求,它隻是真實直覺地表現資料分布的本來面貌;另一方面,箱型圖判斷異常值的标準以四分位數和四分位距為基礎。箱型圖識别異常值的結果比較客觀,在識别異常值方面有一定的優越性。

看圖說話,注意以下幾個點:

一.箱子的中間一條線,是資料的中位數,代表了樣本資料的平均水準。

二.箱子的上下限,分别是資料的上四分位數和下四分位數。這意味着箱子包含了50%的資料。是以,箱子的寬度在一定程度上反映了資料的波動程度。

三.在箱子的上方和下方,又各有一條線。有時候代表着最大最小值,有時候會有一些點“冒出去”。請千萬不要糾結,不要糾結,不要糾結(重要的事情說三遍),如果有點冒出去,了解成“異常值”就好。

四.箱線圖是針對連續型變量的,解讀時候重點關注平均水準、波動程度和異常值。

五.當箱子被壓得很扁,或者有很多異常的時候,試着做對數變換。

六.當隻有一個連續型變量時,并不适合畫箱線圖,直方圖是更常見的選擇。

七.箱線圖最有效的使用途徑是作比較,配合一個或者多個定性資料,畫分組箱線圖。

轉載于箱線圖應該怎麼用,裡面是更詳細的介紹

下面是一個執行個體

import pandas as pd

catering_sale = 'D:\《Python資料分析與挖掘實戰》源資料和代碼\chapter3\demo\data/catering_sale.xls' #餐飲資料
data = pd.read_excel(catering_sale, index_col = u'日期') #讀取資料,指定“日期”列為索引列

import matplotlib.pyplot as plt #導入圖像庫
plt.rcParams['font.sans-serif'] = ['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus'] = False #用來正常顯示負号

plt.figure() #建立圖像
p = data.boxplot(return_type='dict') #畫箱線圖,直接使用DataFrame的方法
x = p['fliers'][0].get_xdata() # 'flies'即為異常值的标簽
y = p['fliers'][0].get_ydata()
y.sort() #從小到大排序,該方法直接改變原對象
for i in range(len(x)): 
  if i>0:
    plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
  else:
    plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))

plt.show()
           

關于如何使用異常值進行異常分析以及處理異常值這裡有一個執行個體python用箱型圖進行異常值檢測

一緻性分析

資料不一緻性是指資料的沖突性、不相容性。例如有兩個表中都存了客戶的資訊,但是隻有一個表的資料發生了改變,那麼這兩個表就有了不一緻性。