昨天分享了製作相關係數的辦法,不知道有沒有人有發現一些問題,原本的columns(行)不是高達八十種嗎?忘記怎麼看形狀的可以回頭找【Day 21】可以發現train是(1460,81),就算去掉Id也不會只剩下37種?!
可能有人會問怎麼知道剩下37?在相關係數矩陣圖上數它的種類嗎?其實就只是用.shape印出來而已,可以在昨天的視覺化相關系數那加上**print(trian_corr.shape)**這樣就會多印出37*37囉,意思是有36種不同的種類會去影響SalePrice,那到其他種類去哪了呢?
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
x = np.random.randint(0, 100, 10) #0~100隨機找10筆數據
y = 5 * x
z = np.random.randint(0,100,10)
l = ['a','b','c','d','e','f','g','h','i','j'] #新增的
dataframe = pd.DataFrame({'x':x,'y':y,'z':z,'l':l})
df =dataframe.corr() #計算相關係數
plt.subplots(figsize=(10, 10)) # 設置長寬尺寸大小
sns.heatmap(df, annot=True, vmax=1, square=True, cmap="Blues")
#1.丟入的資料 2.是否輸出熱力圖數值大小 3.最大值顯示4.變成正方形5.要什麼顏色
plt.show()
輸出:
把昨天的小小練習增加一個新的l陣列,裡面包含string的型態(在dataframe會被叫object),可以發現在做相關係數時,l並沒有被考慮進去,這是因為在Pearson的公式是以下:
圖片來源
可以發現是在計算數字間關係,那今天如果是物件(object)的話,df =dataframe.corr()會無法計算,所以才只出現型態是float的行!
今天John告白被打槍,原本難過到要棄鐵人賽的(因為我是每天都打一篇文),但又想到有在關注我的夥伴們,才堅持打了上述的內容,並繼續鐵人賽的路途,不能放棄阿!
明天會分享今天來不及打完的對object資料處理相關,並對資料繼續做處理!請大家繼續關注!