我創建了一個多類分類模型,其中輸出變量有 6 個類。當我嘗試獲取準確度分數時出現錯誤。我嘗試過其他答案,但答案沒有幫助。代碼#Converting Target Variable to Numericlang = {'US':1, 'UK':2, 'GE':3, 'IT':4, 'FR':5, 'ES':6} df.language = [lang[item] for item in df.language] #Creating Input Features and Target VariablesX= df.iloc[:,1:13]y= df.iloc[:,0]#Standardizing the Input Featuresfrom sklearn.preprocessing import StandardScalerscaler = StandardScaler()X = scaler.fit_transform(X)#Train Test SplitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)#Modelmodel = Sequential()model.add(Dense(12, activation='relu', kernel_initializer='random_normal', input_dim=12))model.add(Dense(10, activation='relu', kernel_initializer='random_normal'))model.add(Dense(8, activation='relu', kernel_initializer='random_normal'))#Output Layermodel.add(Dense(7, activation = 'softmax', kernel_initializer='random_normal'))#Compiling the neural networkmodel.compile(optimizer ='adam',loss='sparse_categorical_crossentropy', metrics =['accuracy'])#Fitting the data to the training datasetmodel.fit(X_train,y_train, batch_size=5, epochs=100)#Make predictionspred_train = model.predict(X_train)pred_test = model.predict(X_test) print('Train Accuracy = ',accuracy_score(y_train,pred_train.round()))print('Test Accuracy = ',accuracy_score(y_test,pred_test.round()))錯誤ValueError: Classification metrics can't handle a mix of multiclass and multilabel-indicator targets變量保存的值 我正在添加所需變量保存的值。我相信我收到的輸出變量的數量不正確,因為 1 個值有多個輸出。
1 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
predict
返回樣本屬于每個類的概率,但accuracy_score
需要類標簽。您必須從預測中獲取類別標簽。使用
accuracy_score(y, np.argmax(pred_train, axis=1))
np.argmax
返回概率最高的類的標簽,因為您對一批數據而不是單個樣本進行了預測,所以您必須使用axis=1
。
添加回答
舉報
0/150
提交
取消