目錄javascript
當咱們獲得數據後,接下來就是要考慮樣本數據集的數據和質量是否知足建模的要求?是否出現不想要的數據?能不能直接看出一些規律或趨勢?每一個因素之間的關係是什麼?
經過檢驗數據集的數據質量,繪製圖表,計算某些特徵值等手段,對樣本數據集的結構和規律進行分析的過程就是數據探索。數據質量檢測對後面的數據預處理有很大參考做用,並有助於選擇合適的建模方法。
數據探索大體分爲 質量探索 和 特徵探索 兩方面。
java
定義:數據質量分析是數據預處理的前提,也是對數據挖掘的結果有效性和準確性的保證,只有擁有可信的數據,纔可以構建準確的模型。
主要任務: 檢測是否存在髒數據(不符合要求與不能方便地進行分析的數據)。包括缺失的數據,異常的數據,不一致的數據,以及含有其餘不標準符號以及重複的數據。測試
數據的缺失主要包括 記錄的缺失 和 記錄中某個字段的缺失 。他們都會形成分析結果的不許確。
產生緣由是一些信息沒法獲取或者在收集獲取的時候出現了遺漏或者設計的時候的一些值在獲取的時候並無。
數據缺失會丟失大量有用信息,或者形成建模混亂,獲得的模型不許確,規律難以獲得。
使用簡單的統計分析,能夠獲得含有缺失值的屬性的個數,以及缺失數,缺失率等。this
異常值分析是檢驗數據是否有錄入錯誤以及含有不合常理的數據。經過檢測數據是否有異常,發現問題並而找到改進的策略。
異常值是指樣本中的個別值,數值明顯偏離其他的觀測值,故又叫離羣值。
分析步驟:
(1)簡單統計量分析
首先能夠經過一些常見的檢測值對變量作一個探索,查看哪些數據是不合情理的。好比用最大值和最小值,和實際的的現實意義聯繫判斷變量取值是否合理。
(2)正態分佈原則
正態分佈原則就是異常值被定義爲一組測試值中與平均值的誤差超過三倍標準差的值。
(3)箱型圖分析
箱型圖提供的一個識別異常值的一個標準,異常值一般被定義爲小於Ql - 1.5IQR或大於Qu + 1.5IQR的值。Ql稱爲下四分位數,表示樣本值中有四分之一
比它小;Qu成爲上四分位數,表示樣本值中有四分之一比它大;IQR是四分位數間距,是QI和Qu的差,包括所有樣本的一半。
實例:
這裏咱們首先先爬取華爲手機日銷量數據,以下:
設計
咱們規定商品的價格的平均值先後必定範圍價格爲正常值,來分析全部商品的價格狀況。
可是有些數據是缺失的,並且數據多的時候人工識別不出,能夠用程序
檢測含有缺失值的記錄和屬性以及個數,來求缺失率。
數據的基本狀況:
code
這裏能夠看到數據一共有147939條,還能夠獲得平均值(mean),標準差(std),最小值(min),最大值(max)以及四分位數等。
下面能夠用箱型圖檢測異常值。blog
import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文標籤 plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負號 data = '淘寶天貓.csv' this_price = pd.read_csv(data,usecols = ['價格'],encoding = 'utf-8') plt.figure() # 創建圖像 p = this_price.boxplot(return_type='dict') x = p['fliers'][0].get_xdata() y = p['fliers'][0].get_ydata() y.sort() # 用annotate添加註釋 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()
以前未處理的圖片
圖片
處理後的圖片
ip
能夠根據不一樣的需求進行調節,而後按照不一樣規則進行選取和分析數據。utf-8
數據不一致是指數據的矛盾性,不相容性,可能有不一樣表之間的聯繫,而後改變了其餘表但並未改變與之相連的表。