資料探勘 Task2 資料的探索性分析(EDA)

2021-10-04 08:52:38 字數 3334 閱讀 1433

資料探勘 task2:資料的探索性分析(eda)

其他都是我平時常用的庫,missingno第一次用,主要是用於直觀顯示資料集中缺失值的分布以及相關性的。

import pandas as pd

import matplotlib

import matplotlib.pyplot as plt

import numpy as np

import missingno as msno

讀取訓練集資料,初步觀察資料集規模,數值特性,資料型別等

filepath=r'c:\users\資訊\desktop\datawhale 14 天訓練營\used_car\used_car_train_20200313.csv'

#開啟訓練集,檢視資料規模,觀察特徵

train=pd.read_csv(filepath,sep=

' ')

print

(train.head())

))print

(train.shape)

#總覽資料概況

print

(train.info())

#資料型別

print

(train.describe())

#資料數值特性

統計資料有缺失的列,統計缺失個數,利用missingno庫直觀檢視

小tip:使用pycharm時沒找到missingno的庫,進入cmd,使用pip install missingno安裝完成

#檢視缺失值

print

(train.isnull().

sum())

missing=train.isnull().

sum(

)missing=missing[missing>0]

plt.bar(missing.index,missing.values)

plt.show(

)msno.matrix(train,labels=

true

)#無效矩陣的資料密集顯示

msno.bar(train)

#列的無效的簡單顯示

msno.heatmap(train)

#熱圖相關性,乙個變數的存在或不存在如何強烈影響的另乙個的存在

plt.show(

)

異常值不太容易能直接看出來,資料量大,按照一般思路找到唯一乙個資料屬性是object的觀察了一下,發現有『-』,用nan值代替,其他的資料等待進行視覺化的時候發現異常。

#檢視異常值

print

(train.info())

print

(train[

'notrepaireddamage'

].value_counts())

train[

'notrepaireddamage'

].replace(

'-',np.nan,inplace=

true

)print

(train[

'notrepaireddamage'

].value_counts(

))

需要**的值是**,用核密度函式觀察實際**分布符合哪種分布,用johnsonsu,norm,lognorm三種分布進行嘗試,繪製,觀察哪個分布更符合**值的實際分布,需要用到scipy庫和seaborn繪相簿。

#總體分布情況

import seaborn as sns

import scipy.stats as st

result=train[

'price'

]plt.figure(figsize=(10

,8))

ax1=plt.subplot(

131)

ax1.title.set_text(

'johnsonsu'

)sns.distplot(result, fit=st.johnsonsu)

ax2=plt.subplot(

132)

ax2.title.set_text(

'norm'

)sns.distplot(result, fit=st.norm)

ax3=plt.subplot(

133)

ax3.title.set_text(

'lognorm'

)sns.distplot(result, fit=st.lognorm)

plt.show(

)

下面是繪製出的分布圖

可以直觀地看出更符合johnsonsu分布,不符合正態分佈。

偏度:能夠反應分布的對稱情況,右偏(也叫正偏),在影象上表現為資料右邊脫了乙個長長的尾巴,這時大多數值分布在左側,有一小部分值分布在右側。

峰度:反應的是影象的尖銳程度,峰度越大,表現在影象上面是中心點越尖銳。在相同方差的情況下,中間一大部分的值方差都很小,為了達到和正太分布方差相同的目的,必須有一些值離中心點越遠,所以這就是所說的「厚尾」,反應的是異常點增多這一現象。

sns.distplot(result)

print

(result.skew())

#**偏度

print

(result.kurt())

#**峰度

超過20000的很少,可以著重分析20000以內的,其他值我認為可以當作異常值處理。

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

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

Task02 資料的探索性分析

賽題概況 比賽要求參賽選手根據給定的資料集,建立模型,二手汽車的交易 來自 ebay kleinanzeigen 報廢的二手車,數量超過 370,000,包含 20 列變數資訊,為了保證 比賽的公平性,將 會從中抽取 10 萬條作為訓練集,5 萬條作為測試集 a,5 萬條作為測試集 b。同時會對名稱...

資料探勘總結 探索性分析總結

核心 1 質量分析 2 特徵分析 分布 對比 週期性 相關性 常見統計量 資料清洗 1 缺失值處理 通過describe與len直接發現,通過0資料發現 2 異常值處理 通過散點圖發現 一般遇到缺失值,處理方式為 刪除 插補 不處理 插補的主要方式有 均值插補 中位數 眾數 固定值 最近資料 回歸插...