1 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
假設(shè)D和classifier都已定義,則您的代碼中存在一些錯(cuò)誤,這些錯(cuò)誤都應(yīng)該給出合理的錯(cuò)誤消息(除了浮點(diǎn)轉(zhuǎn)換,python 可能會很棘手)。
你們都缺少一個(gè):作為你試圖訪問數(shù)組中,如果查詢,以及D像D[i, 13]這是不允許的。二維數(shù)組是用另一組 訪問的[],比如D[i][13]。但是,由于您已經(jīng)在枚舉 2D 數(shù)組,您不妨使用item[13]來獲取值。
最后,如果你想要一個(gè)十進(jìn)制值,你還需要將至少一個(gè)值轉(zhuǎn)換為浮點(diǎn)數(shù),如float(x)/D.length,否則它只會將其四舍五入為 0 或 1。
固定代碼:
for i, item in enumerate(D):
if classifier(item) == D[i][13]:
# if classifier(item) == item[13]: # This should also work, you can use either.
x += 1 #Increase x on a hit
acc = (float(x)/D.length)
# Divide x by length of D to calculate hitrate eg. "0.5"; 100% would be "1"
return acc
添加回答
舉報(bào)