我想将字符串插入到机器学习模型中,但它一直这样说:
prediction = model.predict(email_features_array)
^^^^^^^^^^^^^
AttributeError: 'numpy.ndarray' object has no attribute 'predict'
不知道是什么问题,换了好几次解码方式。
这是我在进行矢量化后使用的函数:
def predict():
email_text ="hello world"
cv = CountVectorizer()
email_features_array = cv.fit_transform([email_text])
# email_features_array = fit_count_vectorizer(email_text)
print(email_features_array)
# Assume `model` is already defined and trained
prediction = model.predict(email_features_array)
# Apply the pre-trained model to predict the probability of the email being phishing
probability = model.predict_proba(email_features_array)
if prediction[0] == 1:
result = 'Phishing'
probability_score = probability[0][1] * 100
print(result, probability_score)
else:
result = 'Legitimate'
probability_score = probability[0][0] * 100
print(result, probability_score)
我预计我的解码方式有问题,但不确定。
变量/对象模型似乎在训练后被重新定义为 numpy.ndarray 。 可能最好将其传递给此方法并确保该变量没有重新分配。
编辑:此外,对方法参数使用类型提示将帮助您在运行代码之前找到错误。在这种情况下,类型提示也非常有用。