TypeError:“GridSearchCV”对象不可调用 - 如何使用 SVM(Scikit-learn)的泡菜?

数据挖掘 scikit-学习 泡菜
2022-03-07 16:44:11

我在 Scikit-learn 中创建了一个 SVM 用于分类。有用; 它根据班级打印出 1 或 0。我将其转换为泡菜文件并尝试使用它,但收到此错误:

TypeError: 'GridSearchCV' object is not callable
(occurs during the last line of the program)

我该如何克服呢?

代码:

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB, GaussianNB
from sklearn import svm
from sklearn.model_selection import GridSearchCV
import numpy as np
from sklearn.externals import joblib
from joblib import load
import pickle

dataframe = pd.read_csv("emails.csv")

x = dataframe["text"]
y = dataframe["spam"]
x_train,y_train = x[0:5724],y[0:5724]

cv = CountVectorizer()
features = cv.fit_transform(x_train)

tuned_parameters = {'kernel': ['rbf','linear'], 'gamma': [1e-3, 1e-4],
                 'C': [1, 10, 100, 1000]}

model = GridSearchCV(svm.SVC(), tuned_parameters)

file = open("finalized_model.sav",'rb')
model = pickle.load(file)
file.close()

X = pd.read_csv("ExampleSingleEmail.csv")
model(cv.transform(X))
1个回答

大多数 sklearn 模型实例都是使用该fit方法拟合的。
这里也一样 - https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

将最后一行更改为model.fit(cv.transform(X)),它应该可以工作。