2,305 바이트 추가됨
, 2021년 4월 19일 (월) 21:57
== 개요 ==
사이킷런. 파이썬 머신러닝 라이브러리의 기준 격인 라이브러리.
== 사용 ==
{| class="wikitable"
!절차
!설명
!방법
|-
|패키지 설치
|관련된 도구들도 한꺼번에 설치된다.
(numpy, scipy, joblib, threadpoolctl과 함께.)
|pip install scikit-learn
|-
|판다스 설치
|데이터를 다룰 때 사용할 도구.
|pip install pandas
|-
|
|
|
|}
== SVM 알고리즘 ==
{| class="wikitable"
!절차
!설명
!방법
|-
|패키지 불러오기 및 데이터 정리
|
|<syntaxhighlight lang="python">
from sklearn import svm
data = [
[1,2,4],
[1,5,3],
[1,5,2]
]
# 데이터와 레이블 정리
data = []
label = []
for row in data:
data.append(row[0], row[1]) # 판단의 기초가 되는 데이터리스트를 만든다.
label.append(row[2]) # 판단의 결과를 모은다.
</syntaxhighlight>데이터프레임을 활용하는 경우<syntaxhighlight lang="python">
df = pd.DataFrame(data)
data = df.ix[, 0:1] # 모든 데이터의 0~1 인덱스에 해당하는 것을 데이터로.
label = df.ix[:,2] # 모든데이터의 인덱스 2에 해당하는 것을 레이블로.
</syntaxhighlight>
|-
|학습
|
|<syntaxhighlight lang="python">
machine = svm.SVC() # SVM객체 지정
machine.fit(data, label) # 데이터와 레이블 지정
</syntaxhighlight>
|-
|예측해보기
|위에서 학습한 데이터로 예측해본다.
데이터 갯수만큼 예측결과를 내놓는다.
|<syntaxhighlight lang="python">
pre = machine.predict(data) # 새로운 데이터를 머신 객체에 넣어주어 예측결과를 얻어본다.
</syntaxhighlight>
|-
|확인해보기
|얼마나 잘 맞았는지 검증해본다.
|<syntaxhighlight lang="python">
right =0; total =0
for idx, answer in enumerate(label): # 레이블의 인덱스를 얻는다.
p = pre[idx] # 인덱스값에 해당하는 예측값.
if p = answer: right += 1 # 정답과 일치한다면 right에 하나 추가.
total += 1
print("정답률 : ", right/total)
</syntaxhighlight>간단하게 모듈을 사용할 수도 있다.<syntaxhighlight lang="python">
from sklearn import metrics # 추가로 가져온다.
score = metrics.accuracy_score(label, pre) # 레이블과 예측값을 넣는다.
print('정답률 : ', score)
</syntaxhighlight>
|}