Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 网格搜索后无明显改善_Python_Machine Learning_Grid Search - Fatal编程技术网

Python 网格搜索后无明显改善

Python 网格搜索后无明显改善,python,machine-learning,grid-search,Python,Machine Learning,Grid Search,我在一个关于公交时刻表的数据集上运行一些分类算法。具体来说,我运行了一些随机林,我的部分源代码如下: # Instantiate random forest from sklearn.ensemble import RandomForestClassifier random_forest = RandomForestClassifier() # K-Fold Cross Validation (for grid search) inner_cross_validator = Stratifie

我在一个关于公交时刻表的数据集上运行一些分类算法。具体来说,我运行了一些随机林,我的部分源代码如下:

# Instantiate random forest
from sklearn.ensemble import RandomForestClassifier
random_forest = RandomForestClassifier()

# K-Fold Cross Validation (for grid search)
inner_cross_validator = StratifiedKFold(n_splits=k_fold, shuffle=True)


from sklearn.model_selection import GridSearchCV

# Define parameters for grid search
number_of_trees = {'n_estimators': [100, 300, 500]}
max_features_per_tree = {'max_features': [0.2, 0.5, 0.8]}
min_samples_split_per_node = {'min_samples_split': [0.2, 0.5, 0.8]}
parameters = {**number_of_trees, **max_features_per_tree, **min_samples_split_per_node}

# Execute grid search and retrieve the best classifier
best_random_forest = GridSearchCV(estimator=random_forest, param_grid=parameters, scoring='average_precision', cv=inner_cross_validator, n_jobs=3)
best_random_forest.fit(X_train, y_train)
然而,在网格搜索之后,查全率和查全率几乎没有提高

总的来说,在我过去处理其他数据集的经验中,我没有注意到网格搜索后,与SkLearn这样的库的默认值相比,各种指标的得分提高了5%以上,甚至很少有10%


在特征工程阶段之后,我可以做些什么来显著提高我的分类模型的性能吗?

超参数调整带来的5%-10%的增长是一个显著的增长。您不应该期望GridSearch的增长会比GridSearch的增长更大

除了功能工程(它有很大的性能提升空间)之外,您可以尝试:

随机搜索:搜索定义范围内随机选择的超参数值。这应该

使用不同的算法:您当前正在使用RandomForest。这是一种非常有效的方法,可以减少预测的差异,并略微提高性能。但是,其他方法,如梯度增强,应该会提供更好的性能

不同算法的集成:这是一个非常广泛的主题,涵盖了许多不同的方法来组合模型以提高性能


谢谢你的回答。基本上,我希望有人能证实我最初的怀疑。从这个意义上说,我最终觉得,在特征工程阶段之后,除了简单地运行算法,或者通过网格搜索获得5%的改进外,你不能做更多的事情。如果您需要更大的改进,那么您应该收集更多的数据,更适当地清理它们,做更好的功能工程等。是的,但不要低估您可以从不同算法和集成中获得的好处。我同意特征工程非常重要,尤其是在基于树的算法中,即使不同的编码技术也会改变性能@amanbirs然而,其他方法,如梯度增强,应该会给你更好的性能。最后,助推器给了我更糟糕的表现。如果你想了解更多信息,请看这里。在那里回答。