0. 머신러닝이란 무엇인가?
머신러닝이란 빅데이터를 분석하고 가공하여 새로운 정보를 얻어내는 AI의 한 분야로, 외부에서 주어진 데이터를 클라우드 컴퓨터가 학습 모형을 기반으로 스스로 분석하여 학습하는 것을 의미한다.
1. 전통적인 방법
if hufs_time >= 12
print("기숙사생")
위는 AI가 크게 발전하기 전에 사용되었던 "전통적인" 방법 중 하나의 코드이다. 하지만 이는 특정한 기준을 정하기 힘들다는 단점이 있다. 예를 들어 하루 학교에서 보내는 시간이 12시간이 자취, 통학생들이 존재하기도 하고, 그 반대 또한 존재한다. 그러기에 모호한 기준이 필요 없고 스스로 데이터를 분석하는 AI 기술이 각광받는 것이다.
2. 머신러닝
Dorm_time = [12, 16, 14, 23, 24, 21, 14, 13, 17, 18, 16, 18, 15, 11, 10]
Dorm_class = [23, 23, 22, 19, 18, 19, 23, 23, 20, 19, 20, 13, 23, 23, 23]
import matplotlib.pyplot as plt
plt.scatter(Dorm_time, Dorm_class)
plt.xlabel("time")
plt.ylabel("class")
plit.show()
위 코드를 실행하게 되면 산점도(scatter plot)라는 기숙사생이 학교에 있는 시간을 X축으로, 각 기숙사생의 학번을 Y축으로 가지는 그래프를 볼 수 있는데, 이는 위 데이터를 한 눈에 볼 수 있고, 2학년, 3학년이 다수 분포되어 있는 19, 20 학번(남자 기준)이 기숙사생이 많이 없다던가, 저학번일수록 밖에 돌아다니는 시간이 많고, 고학번일수록 공부하기 위해 학교에서 보내는 시간이 많다는 특징들을 그래프를 통해 알 수 있다는 장점이 있다.
Other_time = [12, 15, 8, 19, 9, 3, 6, 7, 8, 11, 5, 6, 9, 13, 9]
Other_class = [23, 22, 20, 19, 19, 21, 22, 23, 18, 17, 23, 22, 23, 23, 23]
time = Dorm_time + Other_time
length = Dorm_class + Other_class
data = [t, c] for t, c in zip(time, class)
target = [1]*15 + [0]*15
기숙사 외 학생들의 학번과 하루 평균 학교에 있는 시간을 받고, 기숙사생 데이터를 +연산기호를 통해 더하고, 기숙사생의 데이터를 1로, 다른 학생들의 데이터를 0으로 값을 반환하였다.
from sklearn.neighbors import KNeiborsClassifier
kn = KNeighborsClassifier()
kn fit(data, target)
kn.score(data, target)
kn.predict([13, 23])
array([1])
K-최근접 이웃 알고리즘이란 새로운 데이터가 주어졌을 때, 기존 데이터 중에서 가장 가까운 K개의 이웃의 정보를 참고하여 새로운 데이터의 레이블을 결정하는 알고리즘이다. 싸이킷런 라이브러리를 이용하여 K-최근접 이웃 알고리즘을 부른 후, kn 모델을 사용하여 데이터를 모았다. 그리고 13, 23이라는 값을 대입했을 때, 그 값이 기숙사생임을 나타냈다.