針對二分類問題的線性判別分析模型

2021-08-07 05:40:56 字數 2019 閱讀 2564

針對二分類問題的線性判別分析模型

以下**片內容為周志華著《機器學習》習題3.5的程式(關於二分類問題的線性判別分析模型)。

# 周志華,機器學習,習題3.5,線性判別分類

# 導入庫

import numpy as np

import matplotlib.pyplot as plt

# 存入訓練集

attrset = np.matrix([[0.697,0.460],[0.774,0.376],[0.634,0.264],[0.608,0.318],

[0.556,0.215],[0.403,0.237],[0.481,0.149],[0.437,0.211],

[0.666,0.091],[0.243,0.267],[0.245,0.057],[0.343,0.099],

[0.639,0.161],[0.657,0.198],[0.360,0.370],[0.593,0.042],[0.719,0.103]]).t

flagset = np.matrix([np.concatenate((np.ones(8),np.zeros(9)))]).t

# 訓練集分類

numattr = attrset.shape[0]

numsam = attrset.shape[1]

attrsetgood,attrsetbad = np.matrix([ for m in range(numattr)]),np.matrix([ for m in range(numattr)])

for m in range(numsam):

if flagset[m,0]==1:

attrsetgood = np.c_[attrsetgood,attrset[:,m]]

else:

attrsetbad = np.c_[attrsetbad,attrset[:,m]]

# 求解線性判別分類的係數

ugood,ubad = np.mean(attrsetgood,1),np.mean(attrsetbad,1)

# np.cov(a)函式將a的每乙個列向量當做隨機變數列向量的樣本,計算其協方差矩陣,需要注意的是計算結果除了樣本的個數-1

sw = np.cov(attrsetgood)*(attrsetgood.shape[1]-1) + np.cov(attrsetbad)*(attrsetbad.shape[1]-1)

wbest = np.linalg.pinv(sw)*(ugood-ubad)

# 觀察習得模型的準確性

plt.close('all')

plt.figure(1)

plt.scatter(np.array(attrsetgood[0,:]).reshape(attrsetgood.shape[1],order='c'),np.array(attrsetgood[1,:]).reshape(attrsetgood.shape[1],order='c'),marker='o',color='k',label='esgood')

plt.scatter(np.array(attrsetbad[0,:]).reshape(attrsetbad.shape[1],order='c'),np.array(attrsetbad[1,:]).reshape(attrsetbad.shape[1],order='c'),marker='o',color='r',label='esbad')

plt.xlabel('density')

plt.ylabel('sugar')

plt.legend(loc='upper left')

plt.title('exercise set')

plt.figure(2)

indexgood,indexbad = ,

for m in range(numsam):

針對二分類問題的對數機率模型

針對二分類問題的對數機率模型 以下 片內容為周志華著 機器學習 習題3.3的程式 關於二分類問題的對數機率模型 周志華,機器學習,習題3.3,對數機率分類 導入庫和自編函式 from functionsmyself import newton import sympy as sp import nu...

二分類問題

模型 帶有relu啟用的dense層堆疊 對於二分類問題,網路的最後一層應該是只有乙個單元並使用sigmoid啟用的dense層,網路的輸出應該是0 1的標量,表示概率值 對於二分類問題的sigmoid標量輸出,應該使用binary crossentroy 二元交叉熵 損失函式 實驗 1 嘗試增加或...

二分類問題

深度學習中的基本問題就是這個,上午我還達到90 85 的acc,現在只有76 臥槽,我動 了啊?有鬼。明明沒怎麼改引數,卻再也回不到過去,這個trick不小啊。既然回不到過去,不妨重新開始吧。我套了一下vgg,發現網路太深了,根本跑不動,效果也不好,減少網路後,acc反而有提高,之前我還以為驗證集有...