Python 类权重=平衡不适用于SVM

Python 类权重=平衡不适用于SVM,python,svm,grid-search,Python,Svm,Grid Search,我有一个关于我的SVM算法的问题。我正在用一个因变量执行分类任务,其中60%被分类为1,40%被分类为0。不是严重的不平衡!我最初的分析(LR、DT、RF、SVM)是在没有参数类权重=平衡的情况下进行的。使用网格搜索优化参数。在评估算法的性能时,它们似乎都预测了正类,而不是负类。所有算法的准确度大致相同:约为0.61。基于这些发现,我假设x并不能预测y 为了找到额外的支持,我决定对每个算法重新运行网格搜索,但将class_weight的参数设置为balanced。在执行网格搜索之前。如果我的假设

我有一个关于我的SVM算法的问题。我正在用一个因变量执行分类任务,其中60%被分类为1,40%被分类为0。不是严重的不平衡!我最初的分析(LR、DT、RF、SVM)是在没有参数类权重=平衡的情况下进行的。使用网格搜索优化参数。在评估算法的性能时,它们似乎都预测了正类,而不是负类。所有算法的准确度大致相同:约为0.61。基于这些发现,我假设x并不能预测y

为了找到额外的支持,我决定对每个算法重新运行网格搜索,但将class_weight的参数设置为balanced。在执行网格搜索之前。如果我的假设是正确的,那么预计准确度现在将下降到0.5左右。它对LR、DT和RF有预测作用,但我的SVM似乎预测的结果与没有平衡类权重的情况完全相同(精度为0.61)。我正在为这个结果而挣扎。为什么支持向量机具有相同的精度?有没有合理的解释,或者我做错了什么?我为支持向量机优化的参数是gamma和kernel。请查找无平衡类权重和平衡类权重的网格搜索代码。两种网格搜索似乎找到了不同的参数



svmodel = SVC(random_state = 66)

param_grid_SVM = {'gamma': [1, 0.1, 0.01, 0.001, 0.0001],
              'kernel': ['rbf', 'linear', 'sigmoid', 'poly']} 
  
grid_svm = GridSearchCV(svmodel, param_grid_SVM, cv = 10, verbose = 0)
  
best_svm = grid_svm.fit(X_train, y_train)
best_svm.best_params_


svmodel2 = SVC(random_state = 66, class_weight = 'balanced')

param_grid_SVM2 = {'gamma': [1, 0.1, 0.01, 0.001, 0.0001],
              'kernel': ['rbf', 'linear', 'sigmoid', 'poly']} 
  
grid_svm2 = GridSearchCV(svmodel2, param_grid_SVM2, cv = 10, verbose = 0)
  
best_svm2 = grid_svm2.fit(X_train, y_train)
best_svm2.best_params_