python - 请帮我在这段代码中找到一个 ValueError
问题描述
# https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RandomizedSearchCV.html # 在这个cv中找到最大的alphas来最小化错误
from sklearn.model_selection import RandomizedSearchCV
#use multinomialnb as a model
model = MultinomialNB(class_prior = [0.5, 0.5])
parameters = {'alphas' :[0.00001,0.0005, 0.0001,0.005,0.001,0.05,0.01,0.1,0.5,1,5,10,50,100]}
#use randomizedsearch as a cv
clf = RandomizedSearchCV(model, parameters, cv= 5,
scoring='roc_auc',verbose=1,return_train_score=True)
#to fit the model
clf.fit(X_tr, y_train)#in this line to genrate the error
#to genrate a dataframe & sort the value
results = pd.DataFrame.from_dict(clf.cv_results_)
results = results.sort_values(['param_alphas'])
#to find a auc result to genrate a auc curve
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']
alphas = results['param_alphas']```
ValueError Traceback (most recent call last)
<ipython-input-65-23b8907f0343> in <module>
7
8 clf = RandomizedSearchCV(model, parameters, cv= 5, scoring='roc_auc',verbose=1,return_train_score=True)
----> 9 clf.fit(X_tr, y_train)
10
11 results = pd.DataFrame.from_dict(clf.cv_results_)
ValueError: Invalid parameter alphas for estimator MultinomialNB(alpha=1.0, class_prior=[0.5, 0.5], fit_prior=True). Check the list of available parameters with `estimator.get_params().keys()`.
解决方案
字典的键parameters
应该是“alpha”而不是“alphas”。
所以只需将该行更改为:
parameters = {'alpha' :[0.00001,0.0005, 0.0001,0.005,0.001,0.05,0.01,0.1,0.5,1,5,10,50,100]}
推荐阅读
- javascript - 将用户重定向到 App/Play 商店或 App 本身
- javascript - 打印每个值的短路
- python - 如何使用 BeautifulSoup 从网页中抓取结构化表格?
- python - 如何合并保存元数据的不同matlab mat文件以在python中使用?
- powershell - 向变量分配 get msol 请求时脚本挂起
- java - Java Cookie setMaxAge(int):如何跟踪确切的到期日期
- quotation-marks - 将字符串拆分为字符串数组
- c++ - 没有像我预期的那样在 Visual Studio 中使用 nvcc 定义 uint="unsigned int"
- javascript - Css 文件未检测到 html 中数据主题的更新
- python - 重新分配时python中的变量会发生什么?