machineLearning의 svm이 무엇이고 직접 그래프로 구분짓기
2018. 4. 22. 21:21ㆍPython-이론/python-인공지능
svm 이란??
svm이란 machineLearning의 일종의 방법으로 데이터들이 비슷한 특징들을 나타낼때 그 패턴을 컴퓨터가 쉽게 알게 하기위해 데이터 사이에 선을 긋는 것을 뜻한다. 주로 교사학습과 회귀분석 분류에 많이 쓰인다.
예시그럼 처음부터 데이터 만드는 것 부터 시작해서 머신러닝 후 그래프 그리는 것 까지 해보겠다.
1. 데이터 얻어오기
import random def getStatus(w,h): bmi = w/(h/100)**2 if bmi <18.5: return 'thin' elif bmi < 25: return 'normal' else: return 'fat' #1.작성할 파일을 오픈하죠 csvFile = open('learning.csv','w',encoding = 'utf-8') csvFile.write('weight,height,label\n') #몸무게 상태 명수 변수 초기화 weightInfo = {'thin':0,'normal':0,'fat':0} for idx in range(20000): w = random.randint(50,120) h = random.randint(140,200) status = getStatus(w,h) weightInfo[status] += 1 csvFile.write('{0},{1},{2}\n'.format(w,h,status)) csvFile.close() print(weightInfo)
2.machineLearning 실행하기
import pandas as pd from sklearn import metrics, svm from sklearn.model_selection import train_test_split csvFile = pd.read_csv('learning.csv') wData = csvFile['weight']/120 hData = csvFile['height']/200 label = csvFile['label'] wh = pd.concat([wData,hData],axis=1) #데이터 분리 trainData, testData, trainLabel, testLabel = train_test_split(wh,label,test_size = 0.33) clf = svm.SVC() clf.fit(trainData,trainLabel) pre = clf.predict(testData) score = metrics.accuracy_score(pre,testLabel) report = metrics.classification_report(pre,testLabel) print(score) print(report)
3그래프 그리기
import matplotlib.pyplot as plt import pandas as pd #index_col=2 가로축 2개의 인자의 값만 사용하겠다. csvFile = pd.read_csv('learning.csv',index_col=2) fig = plt.figure() #첫인자 행 개수 두번째 인자 렬 세번째는 몇번째 subplot에 적용할 건지 ax = fig.add_subplot(111) def scatter(lbl,color): b = csvFile.loc[lbl] #인자 x,y좌표 세번째는 색깔 네번째는 저 색들을 나누는 기준->legend에 쓰임 ax.scatter(b["weight"],b["height"],c=color,label =lbl) scatter("fat","red") scatter("normal","yellow") scatter("thin","purple") #loc 어디 둘지 bbox_to_anchor 처음이 0 끝이 1 #legend의 가운데가 기준으로 이동 시킬 수 있음 #ncol 한줄에 몇개의 contents를 둘 수 있는지 나타낸다. ax.legend() #위의 주석 bbox_to anchor을 통해 색분류가 무슨의미를 하는지 표시하는 부분의 위치를 바꿀 수 있다. plt.savefig("bmi-test3.png")
'Python-이론 > python-인공지능' 카테고리의 다른 글
데이터 검증하기-cross-validation, grid-search (0) | 2018.04.25 |
---|---|
randomForest 사용해보기 (0) | 2018.04.25 |
machine Learning을 웹에 적용시키기 (0) | 2018.04.22 |
machine Learning결과로 그래프 만들기 (0) | 2018.04.22 |
machineLearning을 통해 무슨나라 언어인지 맞추기 (0) | 2018.04.22 |