30 天學習歷程-day03

August 19, 2020

Data Visualization

透過直方圖或分位數圖等能有效的對一個特徵進行觀察,而兩個特徵可使用散佈圖,本篇文章將介紹一些用 python 工具進行視覺化的方法。

Quantile Plot

對於給定的特徵,會顯示所有資料,並透過此呈現觀察數據的不尋常處或行為。最後在標示分位數已進行分布的觀察。

Quantile-Quantile Plot

能夠檢視從一個變數分布到另一個變數分布時是否有偏移現象。

Histogram

直方圖是對某一個特徵摘要其資料分布,然而該長條的高度代表該特徵出現的頻率。

price_count = {40: 275, 43: 300, 47:250, 74: 360, 75: 515, 78: 540, 115:320, 117:270, 120:350}
sum_60 = 0
sum_80 = 0
sum_100 = 0
sum_120 = 0
for key, values in  price_count.items(): # key 為價格,values 產品銷售數量
    if key > 40 and key < 60:
        sum_60 += price_count.get(key)
    if key >= 60 and key < 80:
        sum_80 += price_count.get(key)
    if key >= 80 and key < 100:
        sum_100 += price_count.get(key)
    if key >= 100 and key <= 120:
        sum_120 += price_count.get(key)

import matplotlib.pyplot as plt
label = ['40-59', '60-79', '80-99', '100-120']
value = [sum_60, sum_80, sum_100, sum_120]
plt.bar(label ,value)
plt.show()

Scatter Plot

決定兩個特徵之間是否存在關係、行為或趨勢等。

price_count = {40: 275, 43: 300, 47:250, 74: 360, 75: 515, 78: 540, 115:320, 117:270, 120:350}
price = []
count = []
for key, values in price_count.items():
    price.append(key)
    count.append(values)

import matplotlib.pyplot as plt
plt.scatter(price, count, color='r')
plt.xlabel('count')
plt.ylabel('price')
plt.title('產品銷售')
plt.legend(loc='upper left')

其中當趨勢為隨著 x 軸增加,y 也增加這可以稱做正向關係;反之為負向關係。

結論

透過以上圖形化統計方式我們可以找出資料的總體行為和價值,同時有助於辨識出資料的雜訊或離群值,因此這些方式適用於資料清理部分。然而資料視覺化也有幫助於資料更有效率地去顯示,同時間也能挖掘資料之間相互的關係。資料視覺化的相關技術這邊不多做說明,網路很多視覺化方式可做參考。

上面的 python 程式碼可以在本機嘗試執行。

參考資料