第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何使用交叉驗(yàn)證輸出中的最佳模型來使用 keras model.predict()?

如何使用交叉驗(yàn)證輸出中的最佳模型來使用 keras model.predict()?

回首憶惘然 2022-11-18 18:06:04
我有一個(gè)這樣的 DNA 序列數(shù)據(jù)框:Feature         LabelGCTAGATGACAGT   0TTTTAAAACAG     1TAGCTATACT      2    TGGGGCAAAAAAAA  0AATGTCG         3AATGTCG         0AATGTCG         1其中有一列帶有 DNA 序列,標(biāo)簽可以是 0、1、2、3(即該 DNA 序列的類別)。我想開發(fā)一個(gè)神經(jīng)網(wǎng)絡(luò)來預(yù)測每個(gè)序列分類為 1,2 或 3 類別的概率(不是 0,我不關(guān)心 0)。每個(gè)序列可以在數(shù)據(jù)框中出現(xiàn)多次,并且每個(gè)序列有可能出現(xiàn)在多個(gè)(或所有)類別中。所以輸出應(yīng)該是這樣的:GCTAGATGACAGT   (0.9,0.1,0.2)TTTTAAAACAG     (0.7,0.6,0.3)TAGCTATACT      (0.3,0.3,0.2)    TGGGGCAAAAAAAA  (0.1,0.5,0.6)其中元組中的數(shù)字是序列在類別 1,2 和 3 中找到的概率。它運(yùn)行,并按預(yù)期打印精度(精度不是很好,62%,但我可以解決這個(gè)問題,這是我的第一個(gè) NN,只想運(yùn)行一個(gè)示例)。我的問題專門針對預(yù)測。有人可以向我展示一個(gè)從擬合模型(我在上面有)到實(shí)際預(yù)測的跳躍示例。我認(rèn)為該算法涉及:從交叉驗(yàn)證中找到最佳模型(我試圖將其與監(jiān)視器 val 準(zhǔn)確性部分結(jié)合起來)預(yù)測類別的序列列表在 pred_list 中擬合從訓(xùn)練到 pred_list 的最佳模型如問題頂部所述的返回概率。我從其他問題中知道這存在(例如這里):prediction = model.predict(np.array(tk.texts_to_sequences(text))) print(prediction)....但我不知道如何將它與交叉驗(yàn)證結(jié)合起來,也不知道如何以一種方式獲得我想要的輸出(即在訓(xùn)練中每個(gè)序列被分配到 1,2 或 3 類的三類概率數(shù)據(jù)集,其中每個(gè)序列可以出現(xiàn)在多個(gè)類中)。
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

你在一個(gè)問題中問了太多而且很不相關(guān)的東西,而且里面有好幾個(gè)問題。我將嘗試解決我認(rèn)為最嚴(yán)重的問題。


首先,如果您有以下形式的案例


Feature         Label

AATGTCG         3

AATGTCG         0

AATGTCG         1

即,完全相同的單個(gè)特征可以屬于 0、1 或 3 類,沒有任何其他特征存在,那么這里的信息是監(jiān)督分類可能不適合您手頭的問題;為此,您應(yīng)該使用附加功能。


如果,如您所說,您只對第 1、2 和 3 類感興趣,并且


不是 0,我不關(guān)心 0


那么在數(shù)據(jù)準(zhǔn)備階段你應(yīng)該做的第一件事就是從你的數(shù)據(jù)集中刪除類 0 的所有實(shí)例;不清楚你是否在這里這樣做,即使你這樣做了,也不清楚為什么你仍然將 0 類留在討論中。


其次(假設(shè)您的分類問題中確實(shí)只剩下 3 個(gè)類),您顯示的是模型的預(yù)期輸出:


GCTAGATGACAGT   (0.9,0.1,0.2)

TTTTAAAACAG     (0.7,0.6,0.3)

TAGCTATACT      (0.3,0.3,0.2)    

TGGGGCAAAAAAAA  (0.1,0.5,0.6)

不正確;在多類分類中,返回的概率(即此處括號中的數(shù)字)加起來必須正好為1,而這里不是這種情況。


第三,由于您有一個(gè)多類分類問題,您的損失應(yīng)該是categorical_crossentropy,而不是binary_crossentropy,它僅用于二元分類問題。


第四,再次假設(shè)你只剩下 3 個(gè)類,模型的最后一層應(yīng)該是


model.add(Dense(3, activation='softmax') # no. of units here should be equal to the no. of classes)

而你的標(biāo)簽y應(yīng)該是一次性編碼的(你可以使用 Keras 函數(shù)輕松做到這一點(diǎn)to_categorical)。


第五,仔細(xì)查看循環(huán)開頭的數(shù)據(jù)定義:


X_train, X_test = data_encoded[train], data_encoded[test]

y_train, y_test = data_encoded[train], data_encoded[test]

您可以很容易地看到您將特征作為特征和標(biāo)簽傳遞。我只能猜測這一定是你方的錯(cuò)字;標(biāo)簽應(yīng)該是:


y_train, y_test = y[train], y[test]

關(guān)于您的預(yù)測時(shí)間錯(cuò)誤


Error when checking input: expected embedding_3_input to have shape (5,) but got array with shape (1,)

這是由于input_length=5嵌入層中的參數(shù)。我在這里承認(rèn),我一點(diǎn)也不熟悉 Keras 嵌入層;您可能需要查看文檔以確保此參數(shù)和分配的值確實(shí)符合您的想法/打算做的事情。


除此之外,關(guān)于您的具體問題:


我的問題專門針對預(yù)測。有人可以向我展示一個(gè)從擬合模型(我在上面有)到實(shí)際預(yù)測的跳躍示例。


您應(yīng)該在 CV 循環(huán)之外再次重新編譯和重新擬合模型(可能使用 CV 期間發(fā)現(xiàn)的“最佳”時(shí)期數(shù))和整個(gè)數(shù)據(jù),然后將其用于預(yù)測。


我想現(xiàn)在應(yīng)該很清楚了,鑒于上述問題,你報(bào)告的 62% 的準(zhǔn)確率實(shí)際上沒有任何意義;無論好壞,如果你試圖做從建模角度來看沒有意義的事情(就像我上面提到的大多數(shù)事情),Keras 不會“保護(hù)”你,比如在多類問題中使用二元交叉熵,或在回歸設(shè)置中使用準(zhǔn)確性......



查看完整回答
反對 回復(fù) 2022-11-18
  • 1 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號