ML 세션 - Week2.나의 첫 머신러닝

» AI

인공지능

사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술

  • 역사
    • 인공지능 태동기 -> 인공지능 황금기(퍼셉트론) -> AI겨울 -> 붐 -> 겨울

머신러닝

자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야

  • 통계학 관련 깊음
  • 사이킷런 라이브러리
  • 스스로 기준을 찾음

딥러닝

머신러닝 알고리즘 중 인공신경망을 기반으로 한 방법들

  • 텐서플로, 파이토치 라이브러리

생선분류문제

  • 분류: 여러 개의 클래스 중 하나를 구별하기
  • 특성: 데이터의 특징
import matplotlib.pyplot as plt #그래프 패키지
plt.scatter(bream_length,bream_weight) #산점도 표현
plt.xlabel('length') # x축: 길이
plt.ylabel('weight') # y축: 무게
plt.show() #그래프 화면에 출력
plt.scatter(bream_length,bream_weight) #도미 산점도
plt.scatter(smelt_length,smelt_weight) #빙어 산점도
#하나의 그래프 안에 두개의 산점도
plt.xlabel('length')
plt.ylabel('weight')
plt.show()
  • 그래프가 일직선에 가까우면 선형적이라 표현

k-최근접 이웃 알고리즘

데이터에 대한 답을 주위 데이터를 보고 다수인것으로 판단

length=bream_length +smelt_length
weight=bream_weight+smelt_weight
# 두 리스트 합치기
  • 사이킷런 패키지 사용하려면 2차원 리스트 필요
fish_data=[[l,w]for l, w in zip(length,weight)] # zip()는 나열된 리스트 각각에서 하나씩 원소 꺼내 반환
  • [길이,무게]로 구성된 리스트가 모여 2차원 리스트 만듦
  • 정답 데이터 준비
fish_target=[1]*35+[0] *14 # 1은 도미, 0은 빙어
from sklearn.neighbors import KNeighborsClassifier #k-최근접 이웃 임포트
kn=KNeighborsClassifier() #객체 생성
kn.fit(fish_data,fish_target) #훈련시키는 메서드
kn.score(fish_data,fish_target) #모델 평가하는 메서드
kn.predict([[30,600]]) #새로운 데이터 정답 예측하는 메서드
  • 데이터가 아주 많으면 사용하기 어려움
  • 메모리도 많이 필요하고 속도도 느림
  • (n_neighbors=k)로 최근접 k개 확인