运行多项式朴素贝叶斯(MultinomialNB)源代码时,导入模块报错
本人在研究多项式朴素贝叶斯源代码的时候,尝试运行它的源代码,导入模块时发现报错。
多项式朴素贝叶斯(MultinomialNB)源代码官网:
https://github.com/scikit-learn/scikit-learn/blob/0fb307bf3/sklearn/naive_bayes.py#L670
导入以下包:
from .base import BaseEstimator, ClassifierMixin
from .preprocessing import binarize
from .preprocessing import LabelBinarizer
from .preprocessing import label_binarize
from .utils import check_X_y, check_array, deprecated
from .utils.extmath import safe_sparse_dot
from .utils.multiclass import _check_partial_fit_first_call
from .utils.validation import check_is_fitted, check_non_negative, column_or_1d
from .utils.validation import _check_sample_weight
from .utils.validation import _deprecate_positional_args
报错:ImportError: attempted relative import with no known parent package
解决方法,用以下代码导入上述包:
from sklearn.linear_model._base import BaseEstimator, ClassifierMixin
from sklearn.preprocessing import binarize
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import label_binarize
from sklearn.utils import check_X_y, check_array, deprecated
from sklearn.utils.extmath import safe_sparse_dot
from sklearn.utils.multiclass import _check_partial_fit_first_call
from sklearn.utils.validation import check_is_fitted, check_non_negative, column_or_1d
from sklearn.utils.validation import _check_sample_weight
from sklearn.utils.validation import _deprecate_positional_args
导入成功:
在 .xx的前面加上它的全称即可。