先日の「CRF で名詞句の判定をしてみた」で、
CRF の alogorithm を変更した場合の精度を比較してみました。
変更箇所は sklearn_crfsuite.CRF() のパラメータのみです。
今回つかったデータでは algorithm=lbfgs、l2sgd、ap、pa で同程度、
algorithm=arow が精度が低いという結果になりました。
CRF の alogorithm を変更した場合の精度を比較してみました。
変更箇所は sklearn_crfsuite.CRF() のパラメータのみです。
今回つかったデータでは algorithm=lbfgs、l2sgd、ap、pa で同程度、
algorithm=arow が精度が低いという結果になりました。
■algorithm=lbfgs, c1=0.1, c2=0.1 crf = sklearn_crfsuite.CRF( algorithm='lbfgs', c1=0.1, c2=0.1, max_iterations=100, all_possible_transitions=True ) 0.9441077916505949 ■algorithm=lbfgs, c1=0.5, c2=0.5 crf = sklearn_crfsuite.CRF( algorithm='lbfgs', c1=0.5, c2=0.5, max_iterations=100, all_possible_transitions=True ) 0.945220761760303 ■algorithm=l2sgd, c2=0.1 crf = sklearn_crfsuite.CRF( algorithm='l2sgd', c2=0.1, max_iterations=100, all_possible_transitions=True ) 0.9426298984809508 ■algorithm=l2sgd, c2=0.5 crf = sklearn_crfsuite.CRF( algorithm='l2sgd', c2=0.5, max_iterations=100, all_possible_transitions=True ) 0.9449389892604881 ■algorithm=ap crf = sklearn_crfsuite.CRF( algorithm='ap', max_iterations=100, all_possible_transitions=True ) 0.9418937778719487 ■algorithm=pa crf = sklearn_crfsuite.CRF( algorithm='pa', max_iterations=100, all_possible_transitions=True ) 0.9407907098905913 ■algorithm=arow crf = sklearn_crfsuite.CRF( algorithm='arow', max_iterations=100, all_possible_transitions=True ) 0.8690576483344261