分类模型的参数产生不同的结果

Classification Model's parameters produce different results

我正在研究用于分类的 SVC 模型,每次更改参数值(svc__gamma、svc__kernel 和 svc__C)时,我都会遇到不同的准确度结果,我阅读了 Sklearn 的文档,但我无法理解这些参数的含义,我有三个问题:

  1. 这些参数表示什么?
  2. 每次更改的准确性如何?
  3. 正确的参数值是多少?

精度的结果是0.70,但是当我删除svc__gamma和svc__C时,结果增加到0.76。

    pipe = make_pipeline(TfidfVectorizer(),
                             SVC())
param_grid = {'svc__kernel': ['rbf', 'linear', 'poly'],
                     'svc__gamma': [0.1, 1, 10, 100],
                     'svc__C': [0.1, 1, 10, 100]}

svc_model = GridSearchCV(pipe, param_grid, cv=3)
svc_model.fit(X_train, Y_train)

prediction = svc_model.predict(X_test)
print(f"Accuracy score is {accuracy_score(Y_test, prediction):.2f}")
print(classification_report(Y_test, prediction))

到 1.

  • gamma是高斯钟形曲线的一个参数,所以应该只 影响 RBF(高斯核)
  • C是优化问题的参数,拉格朗日乘数的倒数

到。 2.

  • 熟悉数学背景以充分理解它们如何影响您的准确性(旁注:准确性通常不是可靠的衡量标准,但取决于上下文)

到 3.

  • 没有 'correct' 参数。它们取决于上下文、数据和您想要实现的目标。通常,算法在测试数据上的表现如何与它在新数据上的表现如何(过度拟合与欠拟合)之间存在权衡

我希望这对第一步有所帮助 :) 有关更多信息,我建议 .