logo
Loading...

相關係術問題請教 - Cupoy

我想詢問,在執行pandas相關係數的計算時,jupyter notebook顯示"MemoryEr...

ml100-2,df.info(),ml100-2-d09

相關係術問題請教

2019/04/29 下午 04:54
機器學習共學討論版
Expedition
觀看數:8
回答數:6
收藏數:0
ml100-2
df.info()
ml100-2-d09

我想詢問,在執行pandas相關係數的計算時,jupyter notebook顯示"MemoryError",表示電腦記憶體不足,所以無法執行出結果?

回答列表

  • 2019/04/29 下午 07:11
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    嗨,一般來說出現 MemoryError 是指記憶體錯誤,通常是容量不夠。你可以先檢查看看城市當中是否有記憶體用量很大的可能性,例如資料量很大、變數很多、或是函式執行很多次之類的?

  • 2019/04/29 下午 07:51
    Seanyu.TW
    贊同數:1
    不贊同數:0
    留言數:0

    Hi, MemoryError 代表你的電腦記憶體沒辦法負荷這麼多的資料唷! 以下提供兩個方法給你嘗試看看

  • 2019/04/29 下午 07:53
    Seanyu.TW
    贊同數:1
    不贊同數:0
    留言數:0

    第一個方法:假如你一次計算多個欄位彼此間的相關,那你就用迴圈把欄位與欄位間兩兩分別計算,並且僅留下每次計算完成的結果,把不需要的東西使用 del 將變數移除

  • 2019/04/29 下午 07:55
    Seanyu.TW
    贊同數:1
    不贊同數:0
    留言數:0

    第二種方法,是假設你會出現這種狀況是資料點太多了,那我們會考慮採用 sample 的方法來計算相關。比如假如兩個欄位各有十萬筆資料,這時你可以 sample index (比方說從 0 ~ 10萬,隨機取樣 1000 點),並用這些 index 將所對應欄位的數值取出,再做相關的計算,這樣就會讓整個需要用到的記憶體資源小非常多。

  • 2019/04/29 下午 07:57
    Seanyu.TW
    贊同數:1
    不贊同數:0
    留言數:1

    在第二個方法中,如果你感興趣的話,你可以做一個簡單的小實驗:在同樣兩個欄位的資料中,隨機取樣 100 點, 1000點,10000 點去計算相關,看看所得到的相關值是否會差異很大