mysql> create database django_gunosy_assignment;
python manage.py migrate
python manage.py scrape_articles
python manage.py fit_model
python manage.py runserver
ブラウザ上で、localhost:8000/search_form
に接続し、Gunosyの記事URLを指定フォームに入力する。
0.825
「正解率」を利用。
def score(self, docs, cats):
acc_count = 0
total_len = len(cats)
for i in range(total_len):
pred = self.predict(docs[i])
if pred == cats[i]:
acc_count += 1
score = acc_count / total_len
return score
分類器 | 精度 |
---|---|
NaiveBayes(自作) | 0.825 |
MultinomialNB | 0.893 |
SGDClassifier | 0.902 |
KNeighborsClassifier | 0.428 |
LogisticRegression | 0.936 |
LinearSVC | 0.926 |
RandomForestClassifier | 0.842 |
DecisionTreeClassifier | 0.775 |
以上から、文書 = タイトル + コンテンツとしたところ、精度が1%〜4%向上した。
カテゴリ分類に寄与する単語は、名詞と動詞くらいではないか?という仮説より。
基本的に多くすればするほど(データ数6400以下では)分類機の精度があがった。一方で、Tf-idfの処理時間も線型的に増えていった。