如果x_train
, y_train
,x_test
和y_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