我正在使用sklearn libary的RandomsearchCV在MultinomialNB中搜索最佳alpha。当我通过rand_search.best_params_['alpha']
寻找最佳Alpha值时,我将获得火车分数的最佳Alpha值。但是我想要的是cvscore最小且train和cv得分之间的差距最小的alpha。
下面是我引用的代码:
rand_search=RandomizedSearchCV(multi_nb,alpha_range,cv=50,scoring='roc_auc',return_train_score=True)
rand_search.fit(final_tf_idf_train,train_y_df)
results=pd.DataFrame(rand_search.cv_results_)
results=results.sort_values(['param_alpha'])
train_auc= results['mean_train_score']
train_auc_std= results['std_train_score']
cv_auc = results['mean_test_score']
cv_auc_std= results['std_test_score']
alpha = results['param_alpha']
plt.grid()
plt.plot(alpha,train_auc,label='Train AUC')
plt.plot(alpha,cv_auc,label='CV AUC')
plt.scatter(alpha,train_auc,label='Train AUC Point')
plt.scatter(alpha,cv_auc,label='CV AUC Points')
plt.legend()
plt.xlabel('Alpha')
plt.ylabel('AUC')
plt.title('Alpha Vs AUC Plot(tf-idf)')
plt.show()
有人可以在以下条件下帮助我找到Alpha:
感谢您的贡献