hmg*_*aly 2 python scikit-learn
我使用sklearn创建了一个SVC模型并将其腌制:
clf=LinearSVC(loss='l2', dual=False, tol=1e-3)
clf.fit(X_train, y_train)
#model_file_name='classify_pages_model'
with open('our_classifier.pkl', 'wb') as fid:
cPickle.dump(clf, fid)
Run Code Online (Sandbox Code Playgroud)
我尝试加载它并在另一个文件中使用它,
with open('our_classifier.pkl', 'rb') as fid:
clf = cPickle.load(fid)
X_test=tfidf_vectorizer.fit_transform((get_text(f) for f in urls))
pred=clf.predict(X_test)
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
ValueError:X每个样本有664个特征; 期待47387
如何确保测试文档中的功能与模型中的功能相同?
- - 编辑
当我在相同的代码中进行训练和测试时,问题不会发生(但只有当我挑选模型并从另一个代码加载它时)
以下代码正常工作,但是当我挑选clf时,我无法执行测试部分,因为X_test中的功能数量与clf中的功能数量不同
1 - 培训
X_train=tfidf_vectorizer.fit_transform((read(f) for f in train_files_paths))
clf=LinearSVC(loss='l2', dual=False, tol=1e-3)
clf.fit(X_train, y_train)
Run Code Online (Sandbox Code Playgroud)
2-测试
X_test=tfidf_vectorizer.transform((get_text(f) for f in urls))
pred=clf.predict(X_test)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |