分类模型的参数产生不同的结果
Classification Model's parameters produce different results
我正在研究用于分类的 SVC 模型,每次更改参数值(svc__gamma、svc__kernel 和 svc__C)时,我都会遇到不同的准确度结果,我阅读了 Sklearn 的文档,但我无法理解这些参数的含义,我有三个问题:
- 这些参数表示什么?
- 每次更改的准确性如何?
- 正确的参数值是多少?
精度的结果是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' 参数。它们取决于上下文、数据和您想要实现的目标。通常,算法在测试数据上的表现如何与它在新数据上的表现如何(过度拟合与欠拟合)之间存在权衡
我希望这对第一步有所帮助 :)
有关更多信息,我建议 .
我正在研究用于分类的 SVC 模型,每次更改参数值(svc__gamma、svc__kernel 和 svc__C)时,我都会遇到不同的准确度结果,我阅读了 Sklearn 的文档,但我无法理解这些参数的含义,我有三个问题:
- 这些参数表示什么?
- 每次更改的准确性如何?
- 正确的参数值是多少?
精度的结果是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' 参数。它们取决于上下文、数据和您想要实现的目标。通常,算法在测试数据上的表现如何与它在新数据上的表现如何(过度拟合与欠拟合)之间存在权衡
我希望这对第一步有所帮助 :)
有关更多信息,我建议