一. 任務(wù)內(nèi)容
- 載入各種數(shù)據(jù)科學(xué)以及可視化庫(kù):
- 數(shù)據(jù)科學(xué)庫(kù) pandas祖灰、numpy诀豁、scipy矾柜;
- 可視化庫(kù) matplotlib阱驾、seabon;
- 其他怪蔑;
- 載入數(shù)據(jù):
- 載入訓(xùn)練集和測(cè)試集里覆;
- 簡(jiǎn)略觀察數(shù)據(jù)(head()+shape);
- 數(shù)據(jù)總覽:
- 通過(guò)describe()來(lái)熟悉數(shù)據(jù)的相關(guān)統(tǒng)計(jì)量
- 通過(guò)info()來(lái)熟悉數(shù)據(jù)類型
- 判斷數(shù)據(jù)缺失和異常
- 查看每列的存在nan情況
- 異常值檢測(cè)
- 了解預(yù)測(cè)值的分布
- 總體分布概況(無(wú)界約翰遜分布等)
- 查看skewness and kurtosis
- 查看預(yù)測(cè)值的具體頻數(shù)
- 特征分為類別特征和數(shù)字特征缆瓣,并對(duì)類別特征查7. 看unique分布
- 數(shù)字特征分析
- 相關(guān)性分析
- 查看幾個(gè)特征得 偏度和峰值
- 每個(gè)數(shù)字特征得分布可視化
- 數(shù)字特征相互之間的關(guān)系可視化
- 多變量互相回歸關(guān)系可視化
- 類型特征分析
- unique分布
- 類別特征箱形圖可視化
- 類別特征的小提琴圖可視化
- 類別特征的柱形圖可視化類別
- 特征的每個(gè)類別頻數(shù)可視化(count_plot)
- 用pandas_profiling生成數(shù)據(jù)報(bào)告
以上內(nèi)容可參考天池文章
二. 一些知識(shí)點(diǎn)
偏度(Skewness)
偏度是用來(lái)度量隨機(jī)變量概率分布的不對(duì)稱性喧枷。
偏度<0時(shí),概率分布圖左偏。
偏度=0時(shí)隧甚,表示數(shù)據(jù)均勻分布在平均值兩側(cè)车荔,但不一定是對(duì)稱分布。
偏度>0時(shí)戚扳,概率分布圖右偏忧便。峰度(Kurtosis)
峰度可以用來(lái)度量隨機(jī)變量概率分布的陡峭程度。
峰度的取值范圍為[1, +∞)帽借,完全服從正態(tài)分布的數(shù)據(jù)的峰度值為3珠增,峰度值越大,概率分布圖越高砍艾、越尖蒂教,峰度值越小,越矮胖脆荷。
通常將峰度值減去3凝垛,也被稱為超值峰度(Excess Kurtosis),這樣正態(tài)分布的峰度值等于0简烘,當(dāng)峰度值>0苔严,則表示該數(shù)據(jù)分布與正態(tài)分布相比較為高尖,當(dāng)峰度值<0孤澎,則表示該數(shù)據(jù)分布與正態(tài)分布相比較為矮胖届氢。
三、Tips
- 查看數(shù)據(jù)缺少值
train_data.isnull().sum()
- NaN可視化
msno.matrix(Train_data.sample(250))
- 數(shù)據(jù)分布情況
包括:無(wú)界約翰遜分布覆旭、正態(tài)分布退子、對(duì)數(shù)分布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)
image.png
- 相關(guān)性可視化分析
相關(guān)性可以用sns包中heatmap、barplot實(shí)現(xiàn)數(shù)據(jù)之間的相關(guān)性型将;可以使用 sns.pairplot觀察成對(duì)變量之間的分布情況寂祥。
heatmap:f , ax = plt.subplots(figsize = (7, 7)) plt.title('Correlation of Numeric Features with Price',y=1,size=16) sns.heatmap(correlation,square = True, vmax=0.8)
image.png
pairplot:
sns.set()
columns = ['price', 'v_12', 'v_8' , 'v_0', 'power', 'v_5', 'v_2', 'v_6', 'v_1', 'v_14']
sns.pairplot(Train_data[columns],size = 2 ,kind ='scatter',diag_kind='kde')
plt.show()
image.png