資料探勘之資料探索分析(EDA)

2021-10-04 08:59:18 字數 2945 閱讀 3674

資料探索在機器學習中我們一般稱為eda(exploratory data analysis):

是指對已有的資料(特別是調查或觀察得來的原始資料)在盡量少的先驗假定下進行探索,通過作圖、製表、方程擬合、計算特徵量等手段探索資料的結構和規律的一種資料分析方法。

使用pandas、matplotlib等對資料進行分析

1)載入資料,檢視資料基本資訊

包括資料的頭尾資料,資料集大小

# 1) 簡略觀察資料(head()+shape)

# 2) 觀察資料shape

train_data.shape

2)縱覽資料概況

1. pd.describe出每列的統計量,個數count、平均值mean、方差std、最小值min、中位數25% 50% 75% 、以及最大值,看這個資訊主要是瞬間掌握資料的大概的範圍以及每個值的異常值的判斷,比如有的時候會發現999 9999 ,-1 等值這些其實都是nan的另外一種表達方式,有的時候需要注意下

2. info 通過info來了解資料每列的type,有助於了解是否存在除了nan以外的特殊符號異常

3)判斷缺失值和異常值

## 1) 檢視每列的存在nan情況

train_data.isnull().sum()

### 使用missingno包視覺化預設值

msno.matrix(train_data.sample(250))

msno.bar(train_data.sample(1000))

## 2) 檢視異常值檢測

train_data.info()

### 快速檢視特徵中資料統計

train_data['notrepaireddamage'].value_counts()

# 0.0 111361

# - 24324

# 1.0 14315

# name: notrepaireddamage, dtype: int64

通過以上語句可以很直觀的了解哪些列存在 「nan」, 並可以把nan的個數列印,主要的目的在於 nan存在的個數是

否真的很大,如果很小一般選擇填充,如果使用lgb等樹模型可以直接空缺,讓樹自己去優化,但如果nan存在的

過多、可以考慮刪掉

通過.info()語句可以快速檢視每個特徵的資料型別,對於object型別的資料,一般會存在非數值型資料,應多加關注,可能會有非數字異常值的存在

4)了解**值的分布

對標籤資料進行總體的分布檢視,可以通過matplotlib、seaborn等工具包進行分布圖繪製

## 1) 總體分布概況(無界詹森分布等)

import scipy.stats as st

y = train_data['price']

plt.figure(1); plt.title('johnson su')

sns.distplot(y, kde=false, fit=st.johnsonsu)

plt.figure(2); plt.title('normal')

sns.distplot(y, kde=false, fit=st.norm)

plt.figure(3); plt.title('log normal')

sns.distplot(y, kde=false, fit=st.lognorm)

檢視資料的偏度和峰度資訊

## 2) 檢視skewness and kurtosis

sns.distplot(train_data['price']);

print("skewness: %f" % train_data['price'].skew())

print("kurtosis: %f" % train_data['price'].kurt())

檢視標籤資料的具體頻數

## 3) 檢視**值的具體頻數

plt.hist(train_data['price'], orientation = 'vertical',histtype = 'bar', color ='red')

plt.show()

檢視特徵所屬型別(類別特徵和數字特徵)並對類別特徵檢視unique分布

對於數字特徵可以檢視特徵之間的相關性、特徵的峰度和偏度、視覺化每個特徵觀察

對於類別特徵可以檢視 unique分布、類別特徵箱形圖視覺化、類別特徵的小提琴圖視覺化、類別特徵的柱形圖視覺化、類別特徵的每個類別頻數視覺化(count_plot)等

資料探索有利於我們發現資料的一些特性,資料之間的關聯性,對於後續的特徵構建是很有幫助的。

1. 對於資料的初步分析(直接檢視資料,或.sum(), .mean(),.descirbe()等統計函式)可以從:樣本數量,訓練集數量,是否有時間特徵,是否是時許問題,特徵所表示的含義(非匿名特徵),特徵型別(字元類似,int,float,time),特徵的缺失情況(注意缺失的在資料中的表現形式,有些是空的有些是」nan」符號等),特徵的均值方差情況。

2. 分析記錄某些特徵值缺失佔比30%以上樣本的缺失處理,有助於後續的模型驗證和調節,分析特徵應該是填充(填充方式是什麼,均值填充,0填充,眾數填充等),還是捨去,還是先做樣本分類用不同的特徵模型去**。

3. 對於異常值做專門的分析,分析特徵異常的label是否為異常值(或者偏離均值較遠或者事特殊符號),異常值是否應該剔除,還是用正常值填充,是記錄異常,還是機器本身異常等。

4. 對於label做專門的分析,分析標籤的分布情況等。

5. 進步分析可以通過對特徵作圖,特徵和label聯合做圖(統計圖,離散圖),直觀了解特徵的分布情況,通過這一步也可以發現資料之中的一些異常值等,通過箱型圖分析一些特徵值的偏離情況,對於特徵和特徵聯合作圖,對於特徵和label聯合作圖,分析其中的一些關聯性。

資料探勘 task2資料探索分析EDA

2.示例 載入各種資料科學以及視覺化庫 載入資料 資料總覽 判斷資料缺失和異常 了解 值的分布 特徵分為類別特徵和數字特徵,並對類別特徵檢視unique分布 數字特徵分析 型別特徵分析 用pandas profiling生成資料報告 import pandas as pd import numpy ...

資料探勘 探索性資料分析 EDA (補充)

去敏資料已經在之前有過介紹了,指為了保護資料,消除特徵的意義。而對這類資料就無法根據業務知識,進行特徵的建立。另外,我們得到的資料一般是原始資料通過變換得到的,變換的方式有很多種。本文主要針對通過乘除對資料進行縮放,然後通過加減對資料進行平移的這種資料還原。以下是從網上找到的乙個案例 首先介紹下,這...

資料分析 資料探索 EDA

eda的定義 對已有的資料 特別是調查或觀察得來的原始資料 在盡量少的先驗假定下進行探索,通過作圖 製表 方程擬合 計算特徵量等手段探索資料的結構和規律的一種資料分析方法,它集中於檢查模型擬合和假設檢驗所需的假設,以及處理缺少的值,並根據需要進行變數轉換。資料屬性分布分析 概率密度分析 資料分布 資...