iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
1
AI & Data

實實在在地學習人工智慧-基礎理論探討與經典案例實作系列 第 23

【Day 23】開始寫程式拉!房價預測實戰演練 -80行的資料怎麼變成37行?誰消失了?

昨天分享了製作相關係數的辦法,不知道有沒有人有發現一些問題,原本的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()

輸出:
https://ithelp.ithome.com.tw/upload/images/20191008/20121049VFUzlLlafk.jpg
把昨天的小小練習增加一個新的l陣列,裡面包含string的型態(在dataframe會被叫object),可以發現在做相關係數時,l並沒有被考慮進去,這是因為在Pearson的公式是以下:
https://ithelp.ithome.com.tw/upload/images/20191008/20121049O2CEwk0c89.jpg
圖片來源
可以發現是在計算數字間關係,那今天如果是物件(object)的話,df =dataframe.corr()會無法計算,所以才只出現型態是float的行!

今天John告白被打槍,原本難過到要棄鐵人賽的(因為我是每天都打一篇文),但又想到有在關注我的夥伴們,才堅持打了上述的內容,並繼續鐵人賽的路途,不能放棄阿!
明天會分享今天來不及打完的對object資料處理相關,並對資料繼續做處理!請大家繼續關注!


上一篇
【Day 22】開始寫程式拉!房價預測實戰演練 -Pearson相關係數介紹及程式碼實現
下一篇
【Day 24】開始寫程式拉!房價預測實戰演練 -兩種Encoding介紹和抓出消失的object並處置
系列文
實實在在地學習人工智慧-基礎理論探討與經典案例實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Nonsense
iT邦見習生 ‧ 2019-10-10 00:53:42

很實用!!

我要留言

立即登入留言