scikit学习clf.fit/评分模型准确性

2024-05-13 21:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个模型

clf = MultinomialNB()
clf.fit(x_train, y_train)

然后我想看看我的模型的准确性

clf.score(x_train, y_train)

结果是0.92

我的目标是对照测试,所以我使用

clf.score(x_test, y_test)

这是我得到的0.77,所以我想它会给出与下面的代码相同的结果

clf.fit(X_train, y_train).score(X_test, y_test)

我得到了0.54。有人能帮我理解为什么0.77 > 0.54


Tags: 代码模型test目标trainfitscoreclf
1条回答
网友
1楼 · 发布于 2024-05-13 21:31:33

如果x_trainy_trainx_testy_test在这两种情况下相同,则必须得到相同的结果。下面是一个使用iris数据集的示例,可以看到两个方法得到的结果相同。

>>> from sklearn.naive_bayes import MultinomialNB
>>> from sklearn.cross_validation import train_test_split
>>> from sklearn.datasets import load_iris
>>> from copy import copy
# prepare dataset
>>> iris = load_iris()
>>> X = iris.data[:, :2]
>>> y = iris.target
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# model
>>> clf1 = MultinomialNB()
>>> clf2 = MultinomialNB()
>>> print id(clf1), id(clf2) # two different instances
 4337289232 4337289296
>>> clf1.fit(X_train, y_train)
>>> print clf1.score(X_test, y_test)
 0.633333333333
>>> print clf2.fit(X_train, y_train).score(X_test, y_test)
 0.633333333333

相关问题 更多 >