2. 머신러닝 실습


파이썬을 이용한 머신러닝, 딥러닝 실전개발 입문

파이썬을 이용한 머신러닝, 딥러닝 실전개발 입문 책과 강의를 바탕으로한 코드 리뷰 및 정리입니다. 자세한 내용은 책과 강의를 참고해주세요.


4. 머신러닝

4-2. 머신러닝 첫걸음


Scikit-learn

파이썬에서 머신러닝 라이브러리의 정석. 다양한 머신러닝 알고리즘들과 샘플 데이터도 지원한다.

앞으로 주로 사용할 svm 알고리즘의 간략한 사용방법은 다음과 같다.

from sklearn import svm

clf=svm.SVC()
clf.fit(학습시킬 데이터,답) 
result=clf.predict(답을 얻고싶은 데이터)


XOR 연산 학습해보기

배타적 논리 연산. 두 입력값이 같으면 거짓, 다르면 참인 연산.

PQP xor Q
000
101
011
010


import pandas as pd
from sklearn import svm, metrics

xor_input=[
    # P,Q, result
    [0,0,0],
    [0,1,1],
    [1,0,1],
    [1,1,0]
]

xor_df=pd.DataFrame(xor_input)
xor_data=xor_df.ix[:,0:1] #데이터
xor_label=xor_df.ix[:,2] #레이블

#데이터 학습과 예측하기
clf=svm.SVC()
clf.fit(xor_data, xor_label) #학습
pre=clf.predict(xor_data) #예측

#정답률 구하기
#metrics.accuracy_score(진짜 답, 예측했던 결과)
ac_score=metrics.accuracy_score(xor_label,pre)
print("정답률=",ac_score)


IRIS Data
  • 꽃받침과 꽃잎의 길이와 너비로 품종 분류
  • train /test 로 나누어 판단하는 이유는 실제로 주어진 데이터의 분류가 옳은지, 즉 꽃받침과 꽃잎의 길이와 너비가 품종 분류에 사용하는게 타당한지를 파악하기 위한 것이다.
import pandas as pd
from sklearn import svm, metrics
from sklearn.model_selection import train_test_split

#붓꽃의 csv 데이터 읽어 들이기
csv=pd.read_csv('iris.csv')

#필요한 열 추출
csv_data=csv[["SepalLength","SepalWidth","PetalLength","PetalWidth"]]
csv_label=csv["Name"]

#학습 전용 데이터와 테스트 전용 데이터로 나누기
train_data, test_data, train_label, test_label = train_test_split(csv_data, csv_label)

#데이터 학습시키고 예측하기
clf=svm.SVC()
clf.fit(train_data, train_label)
pre=clf.predict(test_data)

#정답률 구하기
ac_score=metrics.accuracy_score(test_label, pre)
print('정답률=',ac_score) # 정답률을 통해 실제 꽃잎과 꽃받침의 크기,너비와 품종구분의 연관성을 파악할 수 있음






© 2018. by yeo0

Powered by yeo0