u++の備忘録

言語処理100本ノック 2020「57. 特徴量の重みの確認」

問題文

nlp100.github.io

問題の概要

ロジスティック回帰を用いた場合は「.coef_」で特徴量の重みを確認できます。今回は値の絶対値に興味があるので、事前にソートした上で上位・下位10個の特徴量を出力します。

import joblib


clf = joblib.load('ch06/model.joblib')
vocabulary_ = joblib.load('ch06/vocabulary_.joblib')
coefs = clf.coef_

for c in coefs:
    d = dict(zip(vocabulary_, c))
    d_top = sorted(d.items(), key=lambda x: abs(x[1]), reverse=True)[:10]
    print(d_top)
    d_bottom = sorted(d.items(), key=lambda x: abs(x[1]), reverse=False)[:10]
    print(d_bottom)