題目要求:

數據集:

w1=numpy.array([[0.42,-0.087,0.58],[-0.2,-3.3,-3.4],[1.3,-0.32,1.7],
[0.39,0.71,0.23],[-1.6,-5.3,-0.15],[-0.029,0.89,-4.7],[-0.23,1.9,2.2],
[0.27,-0.3,-0.87],[-1.9,0.76,-2.1],[0.87,-1,-2.6]])
w2=numpy.array([[-0.4,0.58,0.089],[-0.31,0.27,-0.04],[0.38,0.055,-0.035],
[-0.15,0.53,0.011],[-0.35,0.47,0.034],[0.17,0.69,0.1],[-0.011,0.55,-0.18],
[-0.27,0.61,0.12],[-0.065,0.49,0.0012],[-0.12,0.054,-0.063]])
w3=numpy.array([[0.83,1.6,-0.014],[1.1,1.6,0.48],[-0.44,-0.41,0.32],
[0.047,-0.45,1.4],[0.28,0.35,3.1],[-0.39,-0.48,0.11],[0.34,-0.079,0.14],
[-0.3,-0.22,2.2],[1.1,1.2,-0.46],[0.18,-0.11,-0.49]])

考慮不同維數下的高斯概率密度模型。

  1. 編寫程序,對表格中的類w1中的3個特徵,分別求解最大似然估計。

解答:

根據高斯分布的均值和方差極大似然估計結果:

我們編寫出計算均值極大似然估計的函數avg:

#均值
def avg(w):
row=w.shape[0]
col=w.shape[1]
ls=[]
for i in range(col):
sum=0
for j in range(row):
sum+=w[j][i]
ls.append(sum/row)
return ls

函數先獲取輸入數據的行數和列數,然後通過兩層for循環計算出每一列的均值,最後返回一個列表。

計算方差極大似然估計的函數variance:

#方差
def variance(w,u):
row=w.shape[0]
col=w.shape[1]
ls=[]
for i in range(col):
sum=0
for j in range(row):
sum+=math.pow(w[j][i]-u[i],2)
ls.append(sum/row)
return ls

計算方法與均值類似,也是遍歷計算每一列的方差,然後返回一個方差的列表。

輸出結果:

  1. 修改程序,處理二維數據的情形。然後處理對表格中的類w1中的任意兩個特徵的組合(3種可能)。

解答:

第二問與第一問的區別就是從一維數據擴展到了二維數據,均值的極大似然估計我們仍然可以用之前的函數,只是按照要求輸出不同的列,要做修改的是求方差的函數,這裡因為是二維數據,所以要求的是協方差的極大似然估計:

#協方差
def covariance(w,u):
row=w.shape[0]
tp=w-u
sum=numpy.zeros((len(u),len(u)))
for i in range(row):
ls=[]
ls.append(tp[i])
tp_t=numpy.array(ls)
sum=sum+dot(tp_t.T,tp_t)
avg=sum/row
return avg

協方差函數的輸入w是測試數據,u是均值。因為後面兩問的代碼與該函數息息相關,所以這裡w和u的維度不影響輸出結果,也就是說該函數同樣可以解答第三,四問。函數首先獲取測試數據的行數,然後計算出w-u,之後便可以遍歷行數來分別求tp_t(w-u的numpy數組形式)與tp_t的逆的乘積,最後處以行數n。

輸出結果:

我們可以看到,每個協方差對角線均為一維數據的方差。

  1. 修改程序,處理三維數據的情形。然後處理表格中類w1中3個特徵的組合。

解答:

該題可以延用第二問的代碼。

輸出結果:

對角線正好為三個一維數據的方差。

(d)假設這個三維高斯模型是可分離的,寫一個程序估計類別w2中均值和協方差矩陣的三個參數。

解答:

因為該模型是可分離的,所以各個特徵之間相互獨立,所以協方差是一個對角矩陣,對角線即為一維數據的方差。

輸出結果:

(e)比較前4種方式計算出來的每一個特徵的均值的異同。

解答:

均值的計算與向量維度無關,都是每一維數據求和再除以n。

(f)比較前4種方式計算出來的每一個特徵的方差的異同:

解答:

多維數據協方差對角線元素是一維數據的方差,若模型是可分離的,則協方差是對角矩陣,對角線元素為一維數據的方差。


推薦閱讀:
相关文章