/ LECTURE

Python - Scikit-Learn

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

99일차 수업

머신러닝

수 많은 데이터를 통해서 패턴을 찾고, 패턴에 의해서 답을 내리는 기술을 컴퓨터에게 가르치는 것

교사 학습

교사가 문제를 제시하고 답을 알려주는 방식

학습량이 많아질 수록 특정 유형에 따른 답을 찾을 확률이 높음

비교사 학습

답이 정해지지 않은 데이터 학습

문제를 제시하고 > 그룹화를 하는 방식으로 분석

강화 학습

현재 상태를 관찰해서 어떻게 대응해야 할 지 관련한 문제를 다루는 학습 방법

답을 제공하지 않고, 최선의 선택을 하도록 학습을 유도

선택에 따른 결과를 이용한 학습 방법

연관 라이브러리

scikit-learn : 머신러닝 라이브러리

scipy : 과학적 연산에 필요한 기능을 제공하는 라이브러리

XOR

배타적 논리합

from sklearn import svm, metrics
import pandas as pd

xor_data = [
    [0,0,0],
    [0,1,1],
    [1,0,1],
    [1,1,0]
]

### 첫번째 방법
data = []
label = []

for row in xor_data:
    x = row[0]
    y = row[1]
    r = row[2]

	data.append([x,y])
	label.append(r)
print(data)	# output [[0,0], [0,1], [1,0], [1,1]]
print(label)	# output [0,1,1,0]

# 데이터 학습을 위한 모델 선택
clf = svm.SVC()
# 변수 설정 : fit(데이터, 값)
clf.fit(data, label)
pre = clf.predict(data)		# output array([0,1,1,0])

# 데이터를 기반으로 학습하고, 새로운 데이터가 주어졌을 때 추론
data2 = [[0,2]]
pre2 = clf.predict(data2)	# output array([1])

### 두번째 방법
xor_df = pd.DataFrame(xor_data)
xor_data = xor_df.loc[:,:1]
xor_label = xor_df.loc[:,2]

clf.fit(xor_data,xor_label)

pre = clf.predict(xor_data)

# 정답률 구하기
ac_score = metrics.accuracy_score(xor_label, pre)

데이터를 학습용과 테스트용으로 나누고 싶을 때

import random
from sklearn.model_selection import train_test_split
# random.shuffle(df)를 통해 데이터를 섞어주고 나누기(1/4를 테스트 데이터로 분할해줌)
tran_data,test_data, train_label, test_label = train_test_split(csv_data, csv_label)