iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
AI & Data

索引結構與機器學習的相遇系列 第 20

Day 20 - 下載相關套件&CDF

  • 分享至 

  • xImage
  •  

延續昨天的使用的套件管理平台Anaconda,今天我們要來下載會使用到的套件至我們的虛擬環境嚕 !

我們使用Anaconda提供的介面話設定下載 :

https://ithelp.ithome.com.tw/upload/images/20201005/20129198MAGY4SfDzp.png

有時安裝時會遇到一些問題 :

https://ithelp.ithome.com.tw/upload/images/20201005/20129198QTcqqVeh2m.png

上圖為版本問題,由於我建置的環境為python 3.8,keras目前此版本的套件~
解決方法 => 重建一個小於 python 3.8 版本的虛擬環境 !

所需套件

這些都是所需要的軟體套件(搞不好也不會全部用到,反正先載再說 XD)

  • Keras
    • 開源神經網路套件,使用者可輕易建置模型、執行。
  • Numpy
    • 支援多維矩陣運算的函示庫。
  • Scipy
    • 支援許多數學模型、演算法的套件。
  • matplotlib
    • 視覺化工具,方便呈現數據圖表。

下載完後,可以選取 Installed ,查看下載的軟件包有甚麼 :

https://ithelp.ithome.com.tw/upload/images/20201005/20129198GkyxkPmNNi.png

如何產生CDF ?

回顧一下,Learned Index 的精隨就在於 : 已排序好的 Key 值,經由 CDF產生的值乘上所有的Key值數量,會近似於 Key所在的位置 (Array中的位置)

N為Key總數量,Pos為預測的位置。
https://chart.googleapis.com/chart?cht=tx&chl=Pos%20%3D%20CDF(Key)*N

那我們該如何產生 CDF 呢 ?

感謝 Python 各種強大的軟件,我們可以使用 Scipy 內建的 CDF 函式。

x為輸入的Key值,loc 表示平均值,scale 表示標準差。

from scipy.stats import norm
cdf = norm.cdf(x, loc, scale)

我們可以把它包裝成一個 Function,只要給定一個 Key Array, 就可以產生出另一個 CDF Array。

from scipy.stats import norm
import numpy as np

def crtCDF(x):
    if(type(x) == np.ndarray):
        loc = x.mean()
        scale = x.std()
        N = x.size
        pos = norm.cdf(x, loc, scale)*N
        return pos
    else:
        print("Wrong Type! x must be np.ndarray ~")    
        return 

今天先到這邊,明天再繼續 ~~ 掰噗 !

https://ithelp.ithome.com.tw/upload/images/20201005/201291985UqQhhVVTZ.png


上一篇
Day 19 - 環境設定
下一篇
Day 21 - Simple Linear Regression 介紹
系列文
索引結構與機器學習的相遇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言