【问题标题】:Classification Model's parameters produce different results分类模型的参数产生不同的结果
【发布时间】:2021-05-10 12:24:59
【问题描述】:

我正在研究用于分类的 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))

【问题讨论】:

    标签: python algorithm machine-learning model svc


    【解决方案1】:

    到 1.

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

    到。 2.

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

    到 3.

    • 没有“正确”的参数。它们取决于上下文、数据和您想要实现的目标。通常在算法处理测试数据的效果与处理新数据的效果(过拟合与欠拟合)之间进行权衡

    我希望这有助于第一步 :) 欲了解更多信息,我建议SVM

    【讨论】:

      猜你喜欢
      • 2018-06-06
      • 1970-01-01
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2018-05-23
      • 2017-09-11
      • 2020-03-14
      相关资源
      最近更新 更多