- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
感谢堆栈溢出的帮助,我成功地为我的决策树模型实现了带有交叉验证的网格搜索。
dtc = DecisionTreeClassifier()
parameter_grid = {'splitter': ['best', 'random'],
'min_samples_split': [15, 16, 17, 18, 19,20, 21, 22, 23, 24, 25,],
'min_samples_leaf': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,],
'criterion': ['gini', 'entropy'],
'random_state': [0]}
cross_validation = StratifiedKFold(n_splits=10)
grid_search = GridSearchCV(dtc, param_grid=parameter_grid, cv=cross_validation)
grid_search.fit(x, y)
我的问题涉及其背后的理论。
我知道 k 折交叉验证将我的整个数据集拆分为 k
个训练数据集和相应的验证数据集。
然后,我假设我的代码会执行类似的操作:
对 k 折叠的每个训练数据集应用网格搜索 k
次。
每个k
折叠的网格搜索的最佳参数应用于相应的验证数据集。
针对 k
折叠的每个验证数据集计算验证误差
到目前为止这是否正确?
使用 grid_search.best_score_ 和 grid_search.best_params_ 获得的值是什么?这些是步骤 3 中的最佳验证错误 (grid_search.best_score_) 以及网格搜索的相应最佳值 (grid_search.best_params_) 还是某个平均值?
非常欢迎任何帮助或澄清!
最佳答案
对于网格搜索的每种可能的组合(在您的情况下为 2*11*10*2*1=440),训练数据集被分割 k 次,并且 k 上的平均
误差正在计算每个超参数组合的验证集。平均误差最低的组合是 grid_search.best_params_
。
例如:
{'splitter': 'best',
'min_samples_split': 20,
'min_samples_leaf': 9,
'criterion': 'entropy',
'random_state': 0}
关于python - 交叉验证网格搜索背后的理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52995942/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!