Matplotlib&seaborn筆記1--資料skewness與displot相關預處理
阿新 • • 發佈:2018-12-26
最近在學習kaggle預測房價的大神程式碼。其中有很多地方涉及到了我的知識盲區。。。慢慢來吧,先做好知識儲備,再去系統再現程式碼。本文主要講的是待預測值的分佈。而且我覺得對於迴歸問題,研究預測值的分佈是很有必要的,因此做一個記錄。
先看程式碼:
# !/usr/bin/python3
# -*-coding:UTF-8-*-
# By WILL
import pandas as pd
import numpy as np
import seaborn as sns
import pylab as plt #或者import matplotlib.pyplot as plt一樣的
#假設data是我們要預測的值
plt.style.use( "ggplot") #影象美化
data = np.random.randn(1000)#生成1000個標準正態分佈的點
data = pd.DataFrame(data)
sns.distplot(data)#看下方紅字描述
plt.show()
print (data.describe())#該列的描述:列的均值 方差 標準差 四分位數 最值等資訊
print("data的skewness:",data.skew())
print("data的peakedness:",data.kurt())
輸出:
0#因為是DataFrame,所以肯定有一個column。
count 1000.000000
mean 0.050196#1000樣本點比較少,理論上為0
std 0.963622#理論值為1
min -2.765893
25% -0.581325#1/4分位點
50% 0.041425#1/2分位點
75% 0.733161#3/4分位點
max 3.162707
data的skewness: 0 -0.00365
dtype: float64
data的peakedness: 0 -0.149678
dtype: float64
分析
1. seaborn是對matplolib的一個補充,而不是取代,要二者相結合。使用方式:
import seaborn as sns
安裝方式:pip install seaborn
2. displot()集合了matplotlib的hist()與核函式估計kdeplot的功能,增加了rugplot分佈觀測條顯示與利用scipy庫fit擬合引數分佈的新穎用途。
上面意思就是:displot不僅有直方圖的功能,還有kdeplot(seaborn的一個核函式估計畫圖函式)的功能。
3.關於plt.style.use(“ggplot”)
若不加這一句,圖片是這樣的。所以這句話的意思就是美觀。
4.關於斜度與峰度
詳細請見:
偏度(skewness)和峰度(kurtosis)
我這裡簡單總結一下:
skewness就是三階中心距,kurotosis就是4階的。
sk表示的是左偏還是右偏(>0,右偏)(<0左偏)。=0就是正態分佈
ku是尾巴的胖瘦或者高低。峰度包括正態分佈(峰度值=3),厚尾(峰度值>3),瘦尾(峰度值<3)