python-3.x - 无法查看 RandomizedSearchCV 的结果
问题描述
我正在为分类问题制作一个使用管道的示例。我的问题是我无法RandomizedSearchCV
从scikit-learn
in 中看到结果python
。
我以前使用GridSearchCV
过这些参数(estimator、param_grid、scoring、cv),并且能够看到最佳的超参数组合。我的scikit-learn
版本是 0.20.0
import sklearn
print('The scikit-learn version is {}.'.format(sklearn.__version__))
X, y = make_classification(n_classes=2, class_sep=0, weights=[0.05,0.95],n_clusters_per_class=2,
n_features=2, n_samples=10000, n_informative=2, n_redundant=0, n_repeated=0)
#Repeated ENN
renn = RepeatedEditedNearestNeighbours( n_neighbors = 5, n_jobs= 2, max_iter = 100)
#Oversampling after have undersampled
smote_enn = SMOTEENN()
#Classifier
classifier = LogisticRegression(random_state = 0)
# Make the splits
n = 2
kf = StratifiedKFold(n_splits = n, random_state = 0)
# Create regularization penalty space
penalty = ['l1', 'l2']
# Create regularization hyperparameter space
C = np.logspace(0, 4, 10)
# Create hyperparameter options
parameters = dict(C=C, penalty=penalty)
random_search = RandomizedSearchCV(pipeline, param_distributions=parameters, n_iter=1000, cv = kf, return_train_score = True)
gg = random_search.fit(X, y)
gg .best_estimator_
random_search.cv_results_
我收到此错误
ValueError:估计器管道的无效参数惩罚(memory=None,steps=[('logisticregression',LogisticRegression(C=1.0,class_weight=None,>dual=False,fit_intercept=True,intercept_scaling=1,max_iter=100,multi_class= 'warn',n_jobs=None,惩罚='l2',random_state=0,solver='warn',tol=0.0001,verbose=0,warm_start=False))])。使用 `estimator.get_params().keys() 检查 > 可用参数列表
我必须如何编写参数?如何从网格搜索中查看最佳参数的结果?
解决方案
推荐阅读
- react-native - 当应用程序打开时,React Native Firebase 推送通知不起作用
- java - 如何对 CompletableFuture 任务执行转换
- bash - 是 for 循环还是 printf 序列更适合创建 n 个字符的字符串?
- postgresql - Postgresql - 查询 json 对象内的数组
- postgresql - 无法将 struct 元素分配为 Google/uuid 数据类型
- javascript - Kubernetes Nginx Ingress 处理 JavaScript 重定向
- sql - 从 JSON 数组字段中查找和/或删除某些元素的 PostgreSQL 查询
- c - 函数参数是相对于 rbp 的负偏移量(据我所知,它们应该是正偏移量)
- java - 使用 Eclipse Java Neon 重新加载工作区失败
- php - 透视 mysql 结果集并创建 html 表/矩阵