相关疑难解决方法(0)

网格搜索scikit-learn中聚类的超参数评估

我正在聚集大约100条记录的样本(未标记)并尝试使用grid_search来评估具有各种超参数的聚类算法.我正在使用得分silhouette_score很好.

在这里,我的问题是,我并不需要使用的交叉验证方面GridSearchCV/ RandomizedSearchCV,但我不能找到一个简单GridSearch/ RandomizedSearch.我可以写我自己,但ParameterSamplerParameterGrid对象是非常有用的.

我的下一步将是子类化BaseSearchCV并实现我自己的_fit()方法,但认为值得问一下,有更简单的方法来做到这一点,例如通过传递一些东西到cv参数?

def silhouette_score(estimator, X):
    clusters = estimator.fit_predict(X)
    score = metrics.silhouette_score(distance_matrix, clusters, metric='precomputed')
    return score

ca = KMeans()
param_grid = {"n_clusters": range(2, 11)}

# run randomized search
search = GridSearchCV(
    ca,
    param_distributions=param_dist,
    n_iter=n_iter_search,
    scoring=silhouette_score,
    cv= # can I pass something here to only use a single fold?
    )
search.fit(distance_matrix)
Run Code Online (Sandbox Code Playgroud)

python scoring cluster-analysis scikit-learn

24
推荐指数
3
解决办法
7448
查看次数

在python中没有交叉验证的网格搜索有简单的方法吗?

在scikit中有一个绝对有用的类GridSearchCV - 学习网格搜索和交叉验证,但我不想做交叉验证.我想在没有交叉验证的情况下进行网格搜索,并使用整个数据进行训练.更具体地说,我需要在网格搜索期间使用"oob得分"评估RandomForestClassifier制作的模型.有简单的方法吗?或者我应该自己上课?

要点是

  • 我想用简单的方法进行网格搜索.
  • 我不想做交叉验证.
  • 我需要使用整个数据来训练.(不想分开训练数据和测试数据)
  • 我需要在网格搜索期间使用oob分数进行评估.

python random-forest scikit-learn grid-search

20
推荐指数
2
解决办法
9883
查看次数

如何在scikit-learn中生成自定义交叉验证生成器?

我有一个不平衡的数据集,所以我有一个过采样策略,我只在训练数据时应用.我想使用scikit-learn类GridSearchCV或者cross_val_score在我的估算器(例如SVC)上探索或交叉验证一些参数.但是我看到你要么传递cv折叠的数量,要么传递标准的交叉验证生成器.

我想创建一个自定义cv生成器,所以我得到并分层5折并仅过滤我的训练数据(4倍)并让scikit-learn通过我的估计器的参数网格查看并使用剩余的折叠进行验证.

提前致谢.

python validation svm scikit-learn

12
推荐指数
3
解决办法
9659
查看次数

如何在没有交叉验证的情况下运行GridSearchCV?

我想运行常规的“不带CV的网格搜索”,即我不想交叉验证,但是cv=1不允许设置。

我之所以这样做,是因为我使用分类器来绘制决策边界并可视化/理解我的数据,而不是预测标签,并且不关心泛化错误。我想尽量减少训练错误。

编辑:我想我真的在问两个问题

  1. 如何破解cv=1GridSearchCV?由以下ogrisel回答
  2. 进行网格搜索以最大程度地减少训练错误而不是泛化错误是否有意义?如果是,我该怎么做?我怀疑这涉及为?中的scoring参数插入我自己的评分函数GridSearchCV

scikit-learn

7
推荐指数
1
解决办法
3242
查看次数