- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用不同的方法在经过训练的 SVM 分类器上绘制学习曲线分数,并使用 Leave One Group Out 作为交叉验证的方法。我我以为我已经弄清楚了,但是两个不同的得分手 - 'f1_micro' 和'accuracy' - 将产生相同的值。我很困惑,这是应该的吗是这样吗?
这是我的代码(不幸的是,我无法共享数据,因为它未开放):
from sklearn import svm
SVC_classifier_LOWO_VC0 = svm.SVC(cache_size=800, class_weight=None,
coef0=0.0, decision_function_shape=None, degree=3, gamma=0.01,
kernel='rbf', max_iter=-1, probability=False, random_state=1,
shrinking=True, tol=0.001, verbose=False)
training_data = pd.read_csv('training_data.csv')
X = training_data.drop(['Groups', 'Targets'], axis=1).values
scaler = preprocessing.StandardScaler().fit(X)
X = scaler.transform(X)
y = training_data['Targets'].values
groups = training_data["Groups"].values
Fscorer = make_scorer(f1_score, average = 'micro')
logo = LeaveOneGroupOut()
parm_range0 = np.logspace(-2, 6, 9)
train_scores0, test_scores0 = validation_curve(SVC_classifier_LOWO_VC0, X,
y, "C", parm_range0, cv =logo.split(X, y, groups=groups), scoring = Fscorer)
现在,来自:
train_scores_mean0 = np.mean(train_scores0, axis=1)
train_scores_std0 = np.std(train_scores0, axis=1)
test_scores_mean0 = np.mean(test_scores0, axis=1)
test_scores_std0 = np.std(test_scores0, axis=1)
print test_scores_mean0
print np.amax(test_scores_mean0)
print np.logspace(-2, 6, 9)[test_scores_mean0.argmax(axis=0)]
我得到:
[ 0.20257407 0.35551122 0.40791047 0.49887676 0.5021742
0.50030438 0.49426622 0.48066419 0.4868987 ]0.502174200206
100.0
如果我创建一个新的分类器,但具有相同的参数,然后运行一切都和以前一样,除了评分,例如:
parm_range1 = np.logspace(-2, 6, 9)
train_scores1, test_scores1 = validation_curve(SVC_classifier_LOWO_VC1, X,
y, "C", parm_range1, cv =logo.split(X, y, groups=groups), scoring =
'accuracy')
train_scores_mean1 = np.mean(train_scores1, axis=1)
train_scores_std1= np.std(train_scores1, axis=1)
test_scores_mean1 = np.mean(test_scores1, axis=1)
test_scores_std1 = np.std(test_scores1, axis=1)
print test_scores_mean1
print np.amax(test_scores_mean1)
print np.logspace(-2, 6, 9)[test_scores_mean1.argmax(axis=0)]
我得到了完全相同的答案:
[ 0.20257407 0.35551122 0.40791047 0.49887676 0.5021742
0.50030438 0.49426622 0.48066419 0.4868987 ]0.502174200206
100.0
这怎么可能,我做错了什么,或者错过了什么吗?
谢谢
最佳答案
F1 = precision
当且仅当 TP = TN
,即真阳性数等于真阴性数,如果您的类别是完美平衡。所以要么就是这样,要么你的代码中有错误。您在哪里初始化记分器,如下所示:scorer = make_scorer(accuracy_score,average = 'micro')
?
关于python - Scikit-learn 具有不同评分者的学习曲线,并排除一组 cv 产生相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963621/
我在 Boston 上尝试随机森林算法借助 sklearn 的 RandomForestRegressor 预测房价的数据集 medv . 下面是我的训练/测试数据分割: '''Train Test
我正试图从 Fluxus 中获得一些乐趣,但它的手册和在线文档似乎都假设读者已经是一个以前从未听说过 Scheme 的专家网络程序员。因此,您会得到一些段落,试图解释前缀表示法的基本知识,但假设您知道
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我实现了一个模型,在该模型中我使用逻辑回归作为分类器,我想绘制训练集和测试集的学习曲线以决定下一步做什么以改进我的模型。 只是为了给你一些信息,为了绘制学习曲线,我定义了一个函数,它采用一个模型,一个
我是一名 C# 人员,非常了解 Visual Studio IDE 的使用(从 VS2003 开始使用它)。现在,我正在使用 Eclipse 3.4.1 做一个概念验证应用程序。 与 Visual
我使用梯度提升决策树作为分类器实现了一个模型,并绘制了训练集和测试集的学习曲线,以决定下一步做什么以改进我的模型。结果如图: (Y 轴是准确度(正确预测的百分比),而 x 轴是我用来训练模型的样本数。
这个问题在这里已经有了答案: How can I prevent SQL injection in PHP? (27 个答案) 关闭 6 年前。 我目前正在学习 PHP,并且是 OOP 的新手。我正
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
有人可以解释如何使用 python SciKit 随机森林分类器的 oob_decision_function_ 属性吗?我想用它来绘制学习曲线,比较不同训练集大小的训练和验证错误,以识别过度拟合和其
我开发 iPhone 应用程序已有几个月了。我想知道您对 Quartz 与 OpenGL ES 1.x 或 2.0 学习曲线的看法。你可以说出你的观点。我的问题是 *我是一名想成为游戏开发者的人,所以
我是一名优秀的程序员,十分优秀!