Scikit-learn

Pywiki
Sam (토론 | 기여)님의 2021년 4월 19일 (월) 22:15 판
둘러보기로 가기 검색하러 가기

1 개요

사이킷런. 파이썬 머신러닝 라이브러리의 기준 격인 라이브러리.

2 사용

절차 설명 방법
패키지 설치 관련된 도구들도 한꺼번에 설치된다.

(numpy, scipy, joblib, threadpoolctl과 함께.)

pip install scikit-learn
판다스 설치 데이터를 다룰 때 사용할 도구. pip install pandas
의도 설명 방법
훈련데이터와 테스트데이터 분리 귀찮은 일을 모듈이 해준다.
from sklearn.model_selection import train_test_split

train_data, test_data, train_label, test_label = train_test_split(data, label)
정답률 예측
right =0; total =0
for idx, answer in enumerate(label):  # 레이블의 인덱스를 얻는다.
    p = pre[idx]  # 인덱스값에 해당하는 예측값.
    if p = answer: right += 1  # 정답과 일치한다면 right에 하나 추가.
    total += 1
print("정답률 : ", right/total)
간단하게 모듈을 사용할 수도 있다.
from sklearn import metrics  # 추가로 가져온다.

score = metrics.accuracy_score(label, pre)  # 레이블과 예측값을 넣는다.
print('정답률 : ', score)

3 SVM 알고리즘

절차 설명 방법
패키지 불러오기 및 데이터 정리
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])  # 판단의 결과를 모은다.
데이터프레임을 활용하는 경우.(열 이름을 사용해 분리하는 게 가장 간단하고 직관적이다.)
df = pd.DataFrame(data)
data = df.ix[, 0:1]  # 모든 데이터의 0~1 인덱스에 해당하는 것을 데이터로.
label = df.ix[:,2]  # 모든데이터의 인덱스 2에 해당하는 것을 레이블로.
학습
machine = svm.SVC()  # SVM객체 지정
machine.fit(data, label)  # 데이터와 레이블 지정
예측해보기 위에서 학습한 데이터로 예측해본다.

데이터 갯수만큼 예측결과를 내놓는다.

pre = machine.predict(data)  # 새로운 데이터를 머신 객체에 넣어주어 예측결과를 얻어본다.
확인해보기 얼마나 잘 맞았는지 검증해본다.
from sklearn import metrics  # 추가로 가져온다.

score = metrics.accuracy_score(label, pre)  # 레이블과 예측값을 넣는다.
print('정답률 : ', score)