久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    numpy中的方差、協方差、相關系數

     LibraryPKU 2020-05-28

    一、np.var

    數學上學過方差: D(X)=\sum_{i\in [0,n)} ({x-\bar{x}})^2
    np.var()實際上是均方差,均方差的意義就是將方差進行了平均化,從而使得此值不會隨著數據的增多而發生變化。
    np.std()是標準差,np.std()的平方等于np.var(),標準差在高斯分布中用\sigma表示。
    不論是方差還是標準差,它們衡量的都是二階中心矩。為什么是二階而不是一階?這是一個問題。

    函數原型:numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=<class numpy._globals._NoValue>)
    計算張量a在axis軸上的方差

    • a:一個ndarray,不一定是一維

    • axis:可取值為None,int,int元組。當取值為None時,會把張量a展平成一維數組;當指定一個或多個int時,沿著axis指定的軸計算方差,其它軸的形狀會保留。

    • dtype:在計算方差的時候使用的數據類型,如果a是int類型的張量,計算方差時也會使用float32類型

    • out:放置計算結果的數組,主要用于節省空間,out的維度必須保證正確

    • ddof:int,ddof是“Delta Degrees of Freedom”,表示自由度的個數,在計算方差時,分子是各個值和均值的差的平方之和,分母為(N-ddof)

    • keepdims:是否保留a的形狀

    返回值variance是一個ndarray

    import numpy as np
    
    a = np.random.randint(0, 10, (2, 3))
    print(a)
    print(np.var(a))
    print(np.var(a, axis=0))
    print(np.var(a, axis=1))
    print(np.var(a, keepdims=True))
    print(np.var(a, axis=0, keepdims=True))
    print(np.var(a, axis=(0, 1)))

    輸出為

    [[2 1 5]
     [7 3 0]]5.666666666666667[6.25 1.   6.25]
    [2.88888889 8.22222222]
    [[5.66666667]]
    [[6.25 1.   6.25]]5.666666666666667

    關于ddof

    import numpy as np
    
    a = np.random.randint(0, 10, 4)
    print(np.var(a), '=',np.sum((a - np.mean(a)) ** 2) / len(a))
    ddof = 1print(np.var(a, ddof=ddof), '=',np.sum((a - np.mean(a)) ** 2) / (len(a) - ddof))

    二、np.cov

    np.cov用來計算協方差
    函數原型:numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None)
    首先理清兩個概念:

    • variable:變量,也就是feature

    • observation:觀測,也就是樣本

    參數介紹:

    • m是一個一維向量或者二維矩陣,當m為一個向量時,它相當于一個1行n列的矩陣,最終輸出的協方差矩陣為1\times 1的矩陣(也就是一個標量)。當m是一個二維矩陣時,它的每一行表示一個feature(numpy官方文檔稱之為variable),每一列表示一個樣本(observation)。我們想要知道的是feature之間的相關性。假設m是n行k列的二維矩陣,那么輸出為n\times n的協方差矩陣。

    • y和m一樣,可以是一維向量,也可以是二維矩陣。y相當于給m添加了若干個新行,也就是m=np.hstack(m,y)。y的列數必須和m一致,否則沒法把m和y的行拼起來。實際上,這個參數是可有可無的,因為單單用m矩陣就足夠了。舉例來說,m是一個n行k列的矩陣,y是一個p行k列的矩陣,那么把m和y拼起來得到一個(n+p)行k列的矩陣。在這個矩陣上計算協方差,得到一個(n+p)階的方陣。

    • rowvar是一個布爾值,用來描述矩陣m和矩陣y的信息。默認情況下,m矩陣的一行對應一個feature,一列對應一個樣本,每個feature就被稱為variable,rowvar的意思是每行表示一個feature。此值默認為True。

    • bias,在計算協方差時,如果bias=True,分母為N(N表示樣本數,也就是觀測個數),表示有偏估計;默認情況下,此值為False,分母為N-1表示有偏估計。這個問題略微復雜。

    • ddof:表示自由度,當此值不為None,分母為N-ddof。當此值不為None時,bias參數失效。

    • fweights:一個一維整型數組,表示每個觀測出現的次數。提供此參數的目的是,防止m矩陣過大。

    • aweights:一個一維浮點數組,表示每個觀測的權重。權重大表明這個觀測準確,權重小表明這個權重不太重要。

    返回值:out一個方陣,它的維數等于feature的個數。

    數學上的協方差的定義:
     cov(X,Y)=   (X-\bar{X})\cdot (Y-\bar{Y})
    此式中,X和Y皆為向量。方差是特殊的協方差D(X)=cov(X,X)。協方差表示的是兩個向量的關聯程度,其實就相當于:把兩個向量中的變量進行中心化(減去均值),然后計算剩余向量的內積。
    np.cov和數學上的協方差并不一樣,在無偏估計情況下:np.cov=\frac{cov}{n-1};在有偏估計情況下,np.cov=\frac{COV}{n}。其中n表示X向量和Y向量的維度。
    例子:方差是特殊地協方差

    a = [1, 2, 3, 4, 6] 
    print(np.cov(a), np.var(a) * len(a) / (len(a) - 1))

    例子:兩個變量的協方差

    import numpy as np
    a, b = np.random.rand(2, 4)
    print(np.cov(a, b))
    print(np.cov([a, b]))
    print(np.dot(a - np.mean(a), b - np.mean(b)) / (len(a) - 1))

    例子:理解m和y的關系

    import numpy as np
    
    a = [[1, 2], [4, 7]]
    b = [[7, 16], [17, 8]]
    c = np.cov(a, b)
    print(c)
    print(np.vstack((a,b)))
    print(np.cov(np.vstack((a, b))))

    三、np.correlate

    數學上相關系數的定義: \ro(X,Y)=\frac{cov(X,Y)}{\sqrt{cov(X,X)\times cov(Y,Y)}}
    函數原型:numpy.corrcoef(x, y=None, rowvar=True, bias=<class 'numpy._globals._NoValue'>, ddof=<class 'numpy._globals._NoValue'>)

    理解了np.cov()函數之后,很容易理解np.correlate(),二者參數幾乎一模一樣。
    np.cov()描述的是兩個向量協同變化的程度,它的取值可能非常大,也可能非常小,這就導致沒法直觀地衡量二者協同變化的程度。相關系數實際上是正則化的協方差,n個變量的相關系數形成一個n維方陣。

    參數介紹:

    • x:一個一維向量或者二維矩陣,每行表示一個feature,每列表示一個樣本

    • y:列數和x一致,用來和x進行拼接,相當于添加了|y|個feature。

    • rowvar:布爾值,默認為True,表示每行表示一個feature,也就是每行表示一個variable。

    • bias:已廢棄,不要使用它。

    • ddof:已廢棄,不要使用它。

    返回值:R一個n維方陣,n的個數和變量的個數相同。 

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 美女内射视频WWW网站午夜| 极品粉嫩国产18尤物在线观看| 色噜噜亚洲男人的天堂| 99国精品午夜福利视频不卡99| 夜夜高潮夜夜爽高清完整版1| 在线涩涩免费观看国产精品| 好男人社区影视在线WWW| AAA级久久久精品无码片| 亚洲精品一区二区动漫| 无码人妻一区二区三区免费N鬼沢| 扒开双腿猛进入喷水高潮叫声| 一本一本久久A久久精品综合不卡| 无码AV免费永久免费永久专区| 久久午夜色播影院| 欧美亚洲一区二区三区| 日韩在线成年视频人网站观看| 99久久99精品久久久久久| 国内精品视频一区二区三区八戒 | 亚洲AV无码乱码在线观看牲色| 精品一卡2卡三卡4卡乱码精品视频 | 国产在线午夜不卡精品影院| 久久精品国产亚洲AV无码偷窥| 一区二区三区鲁丝不卡| 中出人妻中文字幕无码| 又粗又紧又湿又爽的视频| 在线中文字幕国产精品| 精品久久香蕉国产线看观看亚洲| 华人在线亚洲欧美精品| 色窝窝免费播放视频在线| 精品无码久久久久国产| 天天做天天爱夜夜爽导航| 国产亚洲色视频在线| 国产色视频一区二区三区| 国产中文成人精品久久久| 日韩有码精品中文字幕| 激情综合婷婷色五月蜜桃| 日本一高清二区视频久二区| 日韩在线观看精品亚洲| 少妇人妻无码专区视频| 国产在线无码视频一区二区三区 | 亚洲日本VA中文字幕在线|