使用 Cross_Val_score 的原因
Posted
技术标签:
【中文标题】使用 Cross_Val_score 的原因【英文标题】:Reason to use Cross_Val_score 【发布时间】:2018-08-08 06:22:09 【问题描述】:我对使用 cross_val_score 的原因感到困惑。
据我了解,cross_val_score 告诉我我的模型是否 “过拟合”或“欠拟合”。此外,它不会训练我的模型。
由于我只有 1 个特征,它是 tfidf(稀疏矩阵)。我不知道 如果它欠/过拟合怎么办。
Q1:我是不是用错了顺序?我见过'cross->fit'和 'fit->cross' 例子。
Q2:“#print1”中的分数告诉我什么?这是否意味着我必须训练我的模型 k 次(使用相同的训练集),其中 k 是给出最高分数的 k 倍?
我现在的代码:
model1=GaussianNB(priors=None)
score=cross_val_score(model1, X_train.toarray(), y_train,cv=3,scoring='accuracy')
# print1
print (score.mean())
model1.fit(X_train.toarray(),y_train)
predictions1 = model1.predict(X_test.toarray()) #held out data
# print2
print (classification_report(predictions1,y_test))
【问题讨论】:
【参考方案1】:Here 是一些关于交叉验证的信息。
顺序(cross
然后fit
)对我来说似乎很好。
首先,您评估模型在已知数据上的性能。取所有 CV 分数的平均值很有趣,但最好保留原始分数,看看您的模型是否在某些集合上不起作用。
如果您的模型有效,那么您可以在您的训练集上使用fit
它,在您的测试集上使用predict
。
训练同一个模型k
次不会改变任何事情。
【讨论】:
现在,我想评估有助于我调整分类器的参数,对吧?现在我想知道:是什么定义了我的模型从评估中起作用(cross_cal_score)?而且我在 cross_val_score 和 fit 模型中使用相同的训练集,这样可以吗?以上是关于使用 Cross_Val_score 的原因的主要内容,如果未能解决你的问题,请参考以下文章
将 OneClassSVM 与 cross_val_score 一起使用