본문 바로가기

AI

(5)
6-2. 자연어분석(베이즈정리) 1. 베이즈 정리 베이즈 정리란 확률에 관한 정의로 P(B|A) = P(A|B) * P(B) / P(A) 이다. 풀어 쓰자면 A가 발생한 후 B발생 확률 = B가 발생 후 A발생 확률 * B 발생확률 / A발생 확률 이라는 의미이다. 이 베이즈정리를 이용해서 A라는 사건이 B에 속하는지. 즉 지도학습을 구현할 수 있다. 나이브베이즈분류란 텍스트 내부에서 단어 출현 비율을 조사하여 이 텍스트를 어떤 카테고리로 분류할지 판단하는 것이다. 이 때 단어의 출현율은 단어의 출현횟수 / 카테고리 전체 단어 수 로 판단한다. import math, sys from konlpy.tag import Twitter class BayesianFilter: def __init__(self): self.words = set()..
6-1. 자연어분석(NoMLPy, Gensim) 1. 형태소분석: 문장을 형태소 단위로 분할하고 품사를 판별하는 작업 KoNLPy를 사용하여 문장을 형태소분석을 해보자. KoNLPy란 한국어 형태소 분석 라이브러리로 한나눔, 꼬꼬마, Komoran, MeCab, 트위터 등의 형태소 분석기 사용할 수 있다. KoNLPy를 사용하기 전에 자바, KoNLPy 등을 설치해야한다. #apt-get install g++ openjdk-8-jdk python-dev python3-dev #pip install konlpy from konlpy.tag import Twitter twitter = Twitter() malist = twitter.pos("이건 무슨 소리냨ㅋㅋㅋ?!", norm=True, stem=True) print(malist) 코드에서는 트위터 분..
5. 딥러닝(Keras) Keras는 머신러닝 라이브러리 Theano와 TensorFlow를 래핑한 라이브러리이다. 1. 데이터셋 만들기 import tensorflow as tf import pandas as pd, numpy as np from tensorflow import keras #BMI 데이터를 읽기 df = pd.read_csv("colors.csv", names = ["llc","lleb","lle"....,"colors"]) #정규화 #레이블 dataset = df.values X = dataset[:,0:18].astype(float) Y_obj = dataset[:,18] #마지막 19번째 칼럼 "colors" #레이블 변환 e = LabelEncoder() e.fit(Y_obj) Y = e.transfor..
4-2. 머신러닝(SVM, Cross Validation, GridSearch) SVM은 머신러닝 방법 중 하나이다. 아래 사이트의 학습 알고리즘들을 제공한다. scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html Classifier comparison — scikit-learn 0.23.2 documentation Note Click here to download the full example code or to run this example in your browser via Binder Classifier comparison A comparison of a several classifiers in scikit-learn on synthetic datasets. The point o..
4-1. 머신러닝 svm을 이용해서 머신러닝을 구현할 수 있다. clf = svm.SVC() clf.fit(data, label)#학습: (데이터배열, 답배열) pre = clf.predict(data)#예측: (예측할 데이터) 1. xor 만들기 from sklearn import svm, metrics #파이썬 머신러닝프레임워크 data = [[0,0], [0,1], [1,0], [1,1]] label = [0,1,1,0] #데이터 학습시키기 clf = svm.SVC() clf.fit(data, label)#학습 #데이터 예측하기 pre = clf.predict(data)#예측 print("예측결과:", pre) #결과 확인 ac_score = metrics.accuracy_score(label, pre)#진짜답, 예..