Skip to content

MJU-Capstone-6/Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 

Repository files navigation

알고리즘 진행상황

result

기존의 나이브 베이즈의 성능으로는 평균 정확도 0.85의 성능을 보임 문장의 전처리나 다른 방식을 사용해 전체 평균 정확도 0.9까지 높이는 걸로 목표

4/20

기존에 있던 카테고리말고도 추가 카테고리를 넣어서 데이터의 양을 늘렸다.

image
마찬가지로 같은 코드로 돌렸더니 아래와 같은 정확도가 나왔음
Counter vectorizer사용
image

Tfidf 의 방식을 적용해보았더니 아래와 같은 정확도로 나왔다.
image
Tfidf를 본 결과 아예 구분을 못하는 경우(ruby)도 존재하여 일단은 CountVectorize 를 사용하기로 했다

c++ 이랑 c#에서 엄청 낮은 정확도로 인해 전체 정확도가 많이 떨어져있는데(c# 0.07, c++ 0.14) 아마도 csv를 불러올때 특수문자를 빼서 #, ++ 같은 기호가 사라진걸로 추측되어 특수문자 + 숫자를 빼서 그런걸로 보임

image

여전히 특수문자 처리를 해도 수치가 나아지지 않아 데이터를 직접 확인

c++

image

image

c#

image
대부분의 데이터가 우리가 원하는 코드와 관련없는 것으로 판단

애초에 크롤링 할때 c언어로 크롤링을 해야된다고 판단되어 다시 크롤링(아래의 사진은 크롤링해서 만든 dataframe이다)

image
image
전체 갯수는 줄어들었지만 그래도 충분한 양이라 판단되어 진행

결과는 아래와 같이 나왔다.

image

전체 평균이 약 0.77로 나왔다.
성능을 끌어 올려서 목표치는 0.9가 아닌 0.85로 수치 재조정

4/24

알고리즘 성능 개선 konlpy에 있는 kkma를 통해 문장에서 명사, 외국어 명사를 추출 & 토큰화 시켜 성능을 끌어올림.

image

4/29

기존에 쓰던 MultinomialNB 대신에 ComplementNB를 사용해보았다
https://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.ComplementNB.html#sklearn.naive_bayes.ComplementNB

Rennie, J. D., Shih, L., Teevan, J., & Karger, D. R. (2003). Tackling the poor assumptions of naive bayes text classifiers. In ICML (Vol. 3, pp. 616-623). https://people.csail.mit.edu/jrennie/papers/icml03-nb.pdf
기존의 나이브 베이즈 경우에는 feature들이 독립적이여서 다른 분류 결과에 영향을 미치지 않는다는 상당한 나이브한 조약이 걸려있다. 위 논문에서는 주어진 클래스를 제외한 나머지 클래스에서 tfidf를 통해 가중치를 만들어 확률을 보정하는 방식을 추가

결과는 아래와 같이 나왔다. 84.6%

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages