【发布时间】:2019-10-26 12:36:03
【问题描述】:
我是 python 的新手,正在研究二进制文本分类问题。我开发了一个文本分类模型。现在我想保存该训练过的模型并再次重新加载它以在新的测试数据文件上对其进行测试。
我在堆栈溢出时尝试了 pickle 和 joblib 来完成此任务以及其他一些建议的方法,但无法执行此操作。使用一种方法,我成功保存了我的模型,但无法在新的测试数据文件上对其进行测试。任何帮助将不胜感激。抱歉,由于我是 python 新手,无法很好地解释问题。
Dataset = pd.read_csv('trainingdata.csv')
my_types = ['Requirement','Non-Requirement']
X_train, X_test, y_train, y_test = model_selection.train_test_split(Dataset['description'],Dataset['types'],test_size=0.0, random_state=45)
tfidf_vect_ngram = TfidfVectorizer(analyzer='word',
token_pattern=r'\w{1,}', ngram_range=(1,1), max_features=5000)
tfidf_vect_ngram.fit(Dataset['description'])
X_train_Tfidf = tfidf_vect_ngram.transform(X_train)
logreg = LogisticRegression(n_jobs=1, C=1e5)
logreg.fit(X_train_Tfidf, y_train)
import pickle
filename = 'finalized_model.sav'
pickle.dump(logreg, open(filename, 'wb'))
loaded_model = pickle.load(open(filename, 'rb'))
result = loaded_model.score('testdata.csv')
print(result)
我也试过这个。
with open('text_classifier', 'wb') as picklefile:
pickle.dump(logreg,picklefile)
with open('text_classifier', 'rb') as training_model:
model = pickle.load(training_model)
result = model.predict('testdata.csv')
print(result)
我尝试了另一种解决方案。
from keras.models import load_model
logreg.save('my_model.h5')
del logreg
model = load_model('my_model.h5')
result=model('projectay.csv')
print(result)
尽管尝试了多种解决方案,但我无法获得所需的结果。由于我在机器学习和 python 方面的专业知识较少,我可能会犯一些错误。有人请指出我在哪里做错了。感谢期待。
【问题讨论】:
标签: python machine-learning scikit-learn text-classification natural-language-processing