x и y должны иметь одинаковое первое измерение, но иметь формы (1,) и (6,) - PullRequest
1 голос
/ 10 июня 2019
train_auc = []
cv_auc = []
alpha_values = [1,2,3,4,5,10]
for alpha in alpha_values: 
    model = MultinomialNB(alpha = alpha)
    model.fit(X_tr_bow,Y_train) 
    y_tr_prob = batch_predict(model,X_tr_bow)    
    y_cr_prob =batch_predict(model, X_cr_bow)    
    train_auc.append(roc_auc_score(Y_train,y_tr_prob))
    cv_auc.append(roc_auc_score(Y_cv,y_cr_prob))
plt.plot(alpha, train_auc, label='Train AUC')
plt.plot(alpha, cv_auc, label='CV AUC')
plt.scatter(alpha, train_auc, label='Train AUC points')
plt.scatter(alpha, cv_auc, label='CV AUC points')
plt.legend()
plt.xlabel("alpha: hyperparameter")
plt.ylabel("roc_AUC_score")
plt.title("Roc_Auc score PLOTS")
plt.grid()
plt.show()

этот код показывает ошибку x и y должны иметь одинаковое первое измерение, но иметь формы (1,) и (6,)

1 Ответ

1 голос
/ 10 июня 2019

Проблема в том, что вы строите одно значение alpha со своими значениями y, которые являются списками. Вам нужно использовать полные значения х. Замените alpha на alpha_values во всех ваших командах печати, как показано ниже

plt.plot(alpha_values, train_auc, label='Train AUC')
plt.plot(alpha_values, cv_auc, label='CV AUC')
plt.scatter(alpha_values, train_auc, label='Train AUC points')
plt.scatter(alpha_values, cv_auc, label='CV AUC points')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...