1. 程式人生 > >機器學習之統計和概率論

機器學習之統計和概率論

一、基本數學概念

其中四分位數通常用以判斷資料集中的異常值。

偏態和峰態可用於判斷該分佈是不是正態分佈。

二、概率分佈

概率分佈分為離散概率分佈和連續概率分佈,在python中通過scipy.stats庫實現。

  離散概率分佈:PMF概率質量函式

  連續概率分佈:PDF概率密度函式

1. 離散概率分佈

通過python實現各分佈的繪製:

實現程式碼如下:

import scipy.stats as ss
import numpy as np
import matplotlib.pyplot as plt
from pylab import *


if __name__ == '__main__':
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    #p表示事件發生的概率
    #n表示做某件事情的次數
    n=5
    p = 0.4
    X = np.arange(0, n + 1, 1)
    fig,axes = plt.subplots(2, 2)

    #1.繪製伯努利分佈
    #k=1,事件發生;k=0,事件不發生;
    k=np.arange(0,2,1)
    ber=ss.bernoulli.pmf(k,p)
    axes[0,0].plot(k,ber,'bo',ms=8,label='伯努利分佈')
    #繪製直線
    axes[0,0].vlines(x=    k, ymin = 0, ymax = ber, colors = 'b')
    axes[0, 0].legend(loc='upper right')
    axes[0, 0].set_xticks(k)

    #2.繪製二項分佈
    binom=ss.binom.pmf(X,n,p)
    axes[0,1].plot(X,binom,'bo',ms=8,label='二項分佈')
    axes[0,1].vlines(x=X,ymin=0,ymax=binom,colors='b')
    axes[0,1].legend(loc='upper right')
    axes[0,1].set_xticks(X)
    axes[0,1].set_xlabel('事件發生的次數')
    axes[0,1].set_ylabel('成功X次的概率')

    #3.繪製幾何分佈
    geom=ss.geom.pmf(X,p)
    axes[1,0].plot(X, geom, 'bo', ms=8, label='幾何分佈')
    axes[1,0].vlines(x=X, ymin=0, ymax=geom, colors='b')
    axes[1,0].legend(loc='upper right')
    axes[1,0].set_xticks(X)
    axes[1,0].set_xlabel('事件發生的次數')
    axes[1,0].set_ylabel('第一次成功的概率')

    #4繪製泊松分佈
    mu=2
    pois=ss.poisson.pmf(X,mu)
    axes[1, 1].plot(X, pois, 'bo', ms=8, label='泊松分佈')
    axes[1, 1].vlines(x=X, ymin=0, ymax=pois, colors='b')
    axes[1, 1].legend(loc='upper right')
    axes[1, 1].set_xticks(X)
    axes[1, 1].set_xlabel('事件發生的次數')
    axes[1, 1].set_ylabel('發生X次的概率')

    plt.subplots_adjust(left=None, bottom=None, right=None, top=None,
                    wspace=0.3, hspace=0.3)
    plt.show()

二、連續概率分佈

下一篇文件更新。