2

crf.fit(X_train, y_train) 不运行并显示上述错误。此外,当我运行 labels2 = list(crf.classes_) 我得到 NoneType 对象不可迭代。之前没用过crfsuite,网上也找不到满意的资料。

需要注意的几件事:csv 文件有 NO None 类型,是一个简单的数据集,仅由数字(包括标签)组成,最后一列是标签。使用 CRF,因为它是一个多标签顺序问题。

data = np.genfromtxt("training.csv", delimiter = ',', skip_header = 1)
data = data.astype(int, order='K', casting='unsafe', subok=True, 
copy=True)
labels = data[:,6]
features = data[:,0:6]
X_train,X_test,y_train,y_test = 
train_test_split(features,labels,test_size=0.3,random_state=1)

features = np.asmatrix(features)

X_train = [features[i] for i in X_train]
y_train = [labels[i] for i in y_train]

X_test = [X_test[i] for i in X_test]
y_test = [y_test[i] for i in y_test]
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)

labels2 = list(crf.classes_)
y_pred = crf.predict(X_test)
metrics.flat_f1_score(y_test, y_pred,average='weighted', labels=labels2)

我希望最终代码能给我 F1 分数,但我无法通过培训:/

4

0 回答 0