본문 바로가기

머신러닝, 딥러닝, 빅데이터, 인공지능 다 같은 말3

나이브 베이즈 스팸 문서 분류 모델 구현 메세지를 단어 단위로 잘라 주는 함수 만들기 def tokenize(message): message = message.lower() # 소문자로 변환 all_words = re.findall("[a-z0-9']+", message) # 단어 추출 return set(all_words) # 중복되는 단어 제거 단어의 빈도수 세는 함수 만들기 def count_words(training_set): """학습 데이터는 (메세지 내용, 스팸 여부) 형식으로 구성되어 있음""" counts = defaultdict(lambda: [0, 0]) for message, is_spam in training_set: for word in tokenize(message): counts[word].. 2019. 9. 2.
k-NN k-NN(k_Nearest Neighbors, k-근접이웃) : 가장 단순한 예측 모델 중 하나 모델을 위해 필요한 것 1. 거리를 재는 방법 2. 서로 가까운 점들은 유사하다는 가정 장점 궁금한 점 주변에 있는 것만 보면 되기 때문에 그렇지 않는 데이터를 뒤지지 않아도 된다. 단점 특정 현상의 원인을 파악하는 데는 큰 도움이 되지 않는다. 다수결을 정하는 함수 def raw_majority_vote(labels): votes = Counter(labels) winner, _ = votes.most_common(1)[0] return winner 동점인 항목들 처리 1. 여러 1등 중 임의로 하나 정한다. 2. 거리를 가중치로 사용해서 거리 기반 투표를 한다. 3. 단독 1등이 생길 때까지 k를 하나씩 .. 2019. 8. 29.
데이터 나누기 & 정확도 데이터 학습 데이터와 평가 데이터로 나누기 전체 데이터의 2/3로 모델을 학습시키고, 나머지 1/3로 모델의 성능을 평가한다. def split_data(data, prob): """데이터를 [prob, 1 - prob] 비율로 나눔""" results = [], [] for row in data: results[0 if random.random() < prob else 1].append(row) return results 대부분의 경우 입력 변수로 행렬 x, 출력 변수로 벡터 y, 학습 데이터와 평가 데이터에 x와 y가 제대로 쌍을 이뤄야한다. def train_test_split(x, y, test_pct): data = list(zip(x, y)) # 데이터 포인트 하나에 해당하는 값들 train,.. 2019. 8. 27.