我用Keras訓(xùn)練了一個模型,每個行都是一個帶有特征的樣本。然后,我使用預(yù)訓(xùn)練模型進(jìn)行預(yù)測。CNNdf921 rows x 10165 columns10160我確保訓(xùn)練數(shù)據(jù)是平衡的,大約50%的樣本帶有標(biāo)簽,其余50%的樣本帶有標(biāo)簽。模型準(zhǔn)確性看起來不錯,但在預(yù)測過程中存在問題。01因此,輸入數(shù)據(jù)如下所示:X = df.iloc[:,0:10160] X = X.to_numpy() X = X.reshape([X.shape[0], X.shape[1],1]) X_train_1 = X[:,0:10080,:]X_train_2 = X[:,10080:10160,:].reshape(921,80) Y = df.iloc[:,10163:10165]Y = Y.to_numpy()我用代碼預(yù)測了帶有預(yù)測標(biāo)簽“1”(for)的樣本數(shù)量:label_1prediction = pd.DataFrame(model.predict([X_train_1,X_train_2])) prediction['label_1'] = ['0' if x < 0.5 else '1' for x in prediction['prob']]prediction[prediction['label_1'] == '1'].shape[0]/921第二行代碼計算所有樣本中樣本的比例。問題是,鑒于輸入數(shù)據(jù)具有平衡的數(shù)量和,我期望分?jǐn)?shù)約為50%左右,但計算出的分?jǐn)?shù)介于范圍?(如果不是更極端)之間,差異巨大。可能出了什么問題?label_1 ==1100.080.98
1 回答

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個贊
請改用。否則,您將獲得概率。model.predict_classes()
prediction = pd.DataFrame(model.predict_classes([X_train_1,X_train_2]))
prediction[prediction['label_1'] == '1'].shape[0]/921
如果您使用的是功能性 API,請使用:np.argmax()
np.argmax(model.predict([X_train_1,X_train_2]), axis=1)
然后,您將需要預(yù)測所需的預(yù)測,如0和1而不是概率。
添加回答
舉報
0/150
提交
取消