본문 바로가기

제로베이스59

MNIST using PCA and kNN MNIST 데이터셋이 있습니다. NIST(National Institute of Standards and Technology)는 필기체 인식을 위해 데이터를 수집한 것입니다. 1980년대 말에 cnn이라는 논문으로 발표를 합니다. 매우 성능이 좋은데, 딥러닝은 cnn 전후로 나눈다고 말해도 무방합니다. 미국 우체국은 손글씨를 기계를 이용해서 빠르게 분류하고 싶었다고 합니다. 이 NIST 데이터셋에서 숫자들만 모아놓은 것이 MNIST 데이터셋입니다. MNIST 데이터셋은 숫자들이 그림으로 이루어져있고 28 by 28의 픽셀로 이루어져있습니다. 6만개의 훈련용 데이터셋과 만개의 실험용 데이터셋으로 이루어져있습니다. kaggle에서 받을 수도 있고, keras에서 받을 수도 있습니다.  kaggle 주소는 다.. 2024. 6. 4.
자연어 처리 - 문장의 유사도 측정 - 네이버 지식인 검색결과에서 찾기 EDA 시간에 네이버 API에서 만든 함수를 들고오겠습니다.우선 필요한 모듈을 호출합니다. import urllib.requestimport jsonimport datetime def gen_search_url(api_node, search_text, start_num, disp_num): #api_node는 book/shop/encyc인지 확인하는 것 base = "https://openapi.naver.com/v1/search" node = "/" + api_node + ".json" #json 형태로 받고있음, naver개발자에 이렇게 하라고함 param_query = "?query=" + urllib.parse.quote(search_text) param_start = .. 2024. 5. 30.
자연어 처리 - 문장의 유사도 측정 우리가 하려고 하는 것이 문장의 유사도가 아니라, 두 점 사이의 거리를 구하는 것이라면 쉽습니다.유클리드 기하학에 의해 각각의 x, y를 빼고 제곱해서 더해서 루트를 씌우면 됩니다.벡터로 표현할 수 있다면 거리를 구할 수 있습니다.그렇다면 벡터로 표시할 수 있다면 문장이던, 그림이던, 소리던, 비슷한지 아닌지 알 수 있고 가장 가까운 것을 골라와 가장 비슷한 것을 가져올 수 있습니다. 1. count vectorizevectorizer를 통해 글자를 vector화 할 수 있습니다. 많은 vectorizer 중에서 먼저 CountVectorizer를 써보겠습니다.count vectorizer는 각 토근의 빈도를 카운트해서 벡터 형태로 변환합니다.from sklearn.feature_extraction.te.. 2024. 5. 30.
자연어 처리 - 나이브베이즈 분류기 나이브베이즈 분류기는 Naive Bayes Classifier라고 합니다. 나이브한 베이즈라는 사람이 만든 분류기라고...하네요모든 특성을 독립이라고 보고 분류하는 것이고 1950년대 만들어진 오래된 분류기지만 아직도 잘쓰이고 있습니다. 나이브 베이즈 분류기는 베이즈 이론을 기반으로 하며, 입력 데이터에 대한 각 클래스의 조건부 확률을 계산하여 가장 높은 확률을 가진 클래스로 분류합니다. 이를 표현하는 수식은 다음과 같습니다: ​P(ck​∣x1​,x2​,...,xn​) 는 입력 데이터 x1​,x2​,...,xn​ 이 주어졌을 때 클래스 ck​ 가 발생할 조건부 확률을 나타냅니다.P(x1​,x2​,...,xn​∣ck​) 는 클래스 ck​ 에 속하는 데이터에서 x1​,x2​,...,xn​ 을 관찰할 확률, .. 2024. 5. 30.
728x90