''GaussianNB' object has no attribute 'var_' when I'm using pickle

I've been working on a project for school, and I've run into this problem.

Here is the error

File "/Users/dshi/Desktop/Coding/LANGS/Python/Project/questiongen.py", line 268, in generateQuestions
    labeledAnswers = predictWords(wordsDf, df)
  File "/Users/dshi/Desktop/Coding/LANGS/Python/Project/questiongen.py", line 178, in predictWords
    y_pred = predictor.predict_proba(wordsDf)
  File "/Users/dshi/opt/anaconda3/envs/pythonProject/lib/python3.10/site-packages/sklearn/naive_bayes.py", line 125, in predict_proba
    return np.exp(self.predict_log_proba(X))
  File "/Users/dshi/opt/anaconda3/envs/pythonProject/lib/python3.10/site-packages/sklearn/naive_bayes.py", line 104, in predict_log_proba
    jll = self._joint_log_likelihood(X)
  File "/Users/dshi/opt/anaconda3/envs/pythonProject/lib/python3.10/site-packages/sklearn/naive_bayes.py", line 489, in _joint_log_likelihood
    n_ij = -0.5 * np.sum(np.log(2.0 * np.pi * self.var_[i, :]))
AttributeError: 'GaussianNB' object has no attribute 'var_'

Line 268 is as follows: labeledAnswers = predictWords(wordsDf, df)

the predictWords function is written like this

def predictWords(wordsDf, df):
    
    predictorPickleName = 'data/pickles/nb-predictor.pkl'
    predictor = loadPickle(predictorPickleName)
    
    y_pred = predictor.predict_proba(wordsDf)

    labeledAnswers = []
    for i in range(len(y_pred)):
        labeledAnswers.append({'word': df.iloc[i]['text'], 'prob': y_pred[i][0]})

and the loadpickle function is like this

def loadPickle(fileName):    
    file = open(fileName, 'rb')
    content = cPickle.load(file)
    file.close()
    
    return content


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source