python - 我的 sklearn_crfsuite 模型没有学到任何东西
问题描述
我正在尝试按照此处的教程创建注释预测模型,但我的模型没有学到任何东西。这是我的训练数据和标签的示例:
-1:word.lower()': '\nreference...n \n \n \n \n \n \n \n \n0\ntable\n1\n:\nairbrake\ncas\nmessages\n', '-1:word.istitle()': False, '-1:word.isupper()': False, '-1:postag': 'POS', '-1:postag[:2]': 'PO ', '+1:word.lower()': 'issue', '+1:word.istitle()': False, '+1:word. isupper()': True, '+1:postag': 'POS', '+1:postag[:2]': 'PO'}, {'bias': 1.0, 'word.lower()': '问题','word [-3:]':'SUE','word [-2:]':'UE','word.isupper()':真,'word.istitle()':假,' word.isdigit()':假,'postag':'POS','postag[:2]':'PO','w_emb_0':-1.220 4882,'w_emb_1':0.8920707,'w_emb_2':-3。
y_train = ['O', 'O', 'O'...'I-data-ca-s_message-type'....'B-data-ca-s_message-type']
这是模型定义和训练:
`
crf = sklearn_crfsuite.CRF(
algorithm='lbfgs',
c1=0.1,
c2=0.1,
max_iterations=100,
all_possible_transitions=True
)
crf.fit(X_train, y_train)
y_pred = crf.predict(X_test)
sorted_labels = sorted(labels, key=lambda name: (name[1:], name[0]))
msg = metrics.flat_classification_report(y_test, y_pred, labels=labels, digits=4)
print(msg)
`
不幸的是,我的模型没有学到任何东西:
precision recall f1-score support
B-data-c-a-s_message-type 0.0000 0.0000 0.0000 23
I-data-c-a-s_message-type 0.0000 0.0000 0.0000 90
micro avg 0.0000 0.0000 0.0000 113
macro avg 0.0000 0.0000 0.0000 113
weighted avg 0.0000 0.0000 0.0000 113
解决方案
问题已经解决了。如上所示,支持度(评估样本数)总共为 113。但是,训练集中的样本数仅为 14 左右!这太小了!我只是没有注意到这种差异。我已经反转了训练和测试数据集,现在,性能是这样的:
precision recall f1-score support
B-data-c-a-s_message-type 0.0000 0.0000 0.0000 0
I-data-c-a-s_message-type 0.6364 1.0000 0.7778 14
micro avg 0.6364 1.0000 0.7778 14
macro avg 0.3182 0.5000 0.3889 14
weighted avg 0.6364 1.0000 0.7778 14
推荐阅读
- java - 比较java中的文件列表
- python - 如何使用按钮返回我的 GUI 加载到的主页,
- reactjs - 当一个子组件被标记为真的为whyDidYouRender时,whyDidYouRender npm包使应用程序崩溃
- javascript - 如何将 CSP 与 pdf.js 一起使用?我对工人有意见
- http - Liveness 和 Readiness 探针连接被拒绝
- gpu - Google Compute Engine - GPU 似乎不可用
- r - 创建具有 n 个字母序列的函数
- javascript - 在 Javascript 中,我将如何连接到 docker 内的 MySQL 数据库?
- node.js - NodeJS 和 Shellscript 之间最好的共享配置是什么?
- c++ - 我应该如何使用别人在 GitHub 上发布的代码?