본문 바로가기

혼자 공부하는 머신러닝+딥러닝

[혼공학습단 10기] 혼자 공부하는 머신러닝 + 딥러닝 1주차

 

진도 : Chapter 01 ~ 02

기본 미션 : 코랩 실습 화면 캡처하기

선택 미션 :  Ch.02(02-1) 확인 문제 풀고, 풀이 과정 정리하기

 

1주차  기본미션

 

도미는 35마리의 데이터가 준비되어있다.

도미의 길이와 무게를 리스트로 만든다. 길이와 무게는 feature(특성)값이다. 

두 개의 특성을 산점도로 나타낸다.  산점도는 x, y 축으로 이뤄진 좌표계에서 두 변수의 관계를 표현하는 방법이다.

도미의 길이를 x축, 무게를 y축으로 하면 선형적인 산점도 그래프가 나타난다. ( = 길이가 길면 무게가 많이 나가는 경향성을 보임 )

 

 빙어는 14마리의 데이터가 준비되어있다. 빙어의 길이와 무게를 리스트로 만든다. 도미와 빙어 데이터를  함께 산점도로 그려본다.

 

 

2개의 산점도를 한 그래프로 나타낸 결과이다. 주황색이 빙어의 산점도이고 파란색이 도미의 산점도이다.

 

 

도미와 빙어 데이터를 구분하기 위해  k- 최근접 이웃 알고리즘을 이용한 머신러닝 프로그램을 만들 것이다.  

도미와 빙어의 길이와 무게를 각각 하나의 길이 데이터와 무게 데이터로 만든다.  합쳐진 길이와 무게 데이터를 2차원의 리스트로 만들어 주기위해 zip() 함수와 리스트 컴프리헨션을 사용한다.  

2차원 리스트의 0번째 요소로 예를 들어보면 [25.4, 242.0] 인데,  이 생선 (= 도미)의 길이는 25.4cm 이고 무게는 242.0g 이다.

정답 데이터(타깃값)를 만든다. 도미는 1, 빙어는 0이다.  k-최근접 이웃 알고리즘은 정답 데이터가 필요한 지도학습 알고리즘에 속하기 때문이다.  (지도학습과 k- 최근접 이웃 알고리즘은 아래의 개인적으로 자습한 내용에서 설명)

 

사이킷런 패키지에서 KNeighborsClassifier 클래스를 임포트 한다. 임포트한 클래스의 객체를 만들어주고 fit() 메서드로 주어진 fish_data와 fish_target으로 훈련시킨다. 머신러닝의 분류 문제에 사용되는 다양한 성능 평가 기준이 있다.

score 메서드는 모델을 평가하는 메서드로 , KNeighborsClassfier 에서의 score 메서드 결과는 정확도(accuracy)이다.

 

predict() 메서드로 fish_data에 없는 새로운 데이터의 정답을 예측해본다. 위에서 학습시킨 머신러닝 프로그램은 새로운 데이터 [30,600]을 1(= 도미)로 분류하였다.  k - 최근접 이웃 알고리즘에서  매개변수 n_neighbors의 기본값은 5이다.

 

참고 데이터를 49개로 하는 새로운 k- 최근접 이웃 모델(kn49)을 만든다.  참고 데이터가 49개이면   fish_data에 있는 모든 생선을 이용한 것이다. 이 kn49 모델을 kn모델에서 사용했던  동일한 데이터로  훈련시키고  성능을 평가한다.  

kn49모델은 어떤 데이터를 넣어도 무조건 1(= 도미)로 예측한다. 49개 데이터 중에 도미(타깃값 1)가 35개이기 때문이다.

따라서 이 모델의 정확도 accuracy는 35/49의 값과 같다. 

 

1주차 선택 미션

 

2-1 확인문제

1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃을 알고 있을 때 사용할 수 있는 학습 방법은 무엇인가?

- 지도학습 

2. 훈련 세트와 테스트 세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요?

- 샘플링 편향

3. 사이킷런은 입력 데이터(배열)가 어떻게 구성되어 있을 것으로 기대하나요?

 - 행: 샘플, 열: 특성

 

2-2 확인 문제

1. 이 방식은 스케일 조정 방식의 하나로 특성값을 0에서 표준편차의 몇 배수만큼 떨어져 있는지로 변환한 값입니다. 이 값을 무엇이라 부르나요?

 - 표준 점수

2. 테스트 세트의 스케일을 조정하려고 합니다. 다음 중 어떤 데이터의 통계 값을 사용해야 하나요?

- 훈련 세트

 

 

아래는 개인적으로 자습하면서 정리한 내용입니다.


01-1 인공지능과 머신러닝, 딥러닝

 

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

  • 강인공지능(strong AI) : 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템
  • 약인공지능(Week AI) :  특정 분야에서 사람의 일을 도와주는 보조 역할  ex) 음성 비서, 음악 추천, 기계 번역

머신러닝(machine learning) : 규칙을 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야

 

딥러닝 (deep learning) : 많은 머신러닝 알고리즘 중에 인공 신경망(Artificial neural network)을 기반으로 한 방법들을 통칭하여 부른다.

 

01-2 코랩과 주피터 노트북

 

실습 준비 과정은 skip

 

01-3 마켓과 머신러닝

 

특성 : 데이터를 표현하는 하나의 성질

훈련 : 머신러닝 알고리즘이 데이터에서 규칙을 찾는 과정

모델: 머신 러닝에서 알고리즘이 구현된 객체

정확도 : 정확한 답을 몇개 맞췄는지를 백분율로 나타낸 값

              (정확히 맞힌 개수) / (전체 데이터 개수)

 

02-1 훈련 세트와 테스트 세트

 

지도 학습 (supervised learning) : 입력과 타깃을 전달하여 모델을 훈련한 다음 새로운 데이터를 예측하는 데 활용한다.

 

비지도 학습(unsupervised learning) :  타깃 데이터가 없다. 입력 데이터에서 어떤 특징을 찾는 데 주로 활용된다.

 

훈련세트 : 모델을 훈련할 때 사용하는 데이터이다. 보통 훈련 세트가 클수록 좋다.

 

테스트 세트 : 전체 데이터에서 20 ~30%를 테스트 세트로 사용하는 경우가 많다. 

 

02-2 데이터 다루기

 

데이터 전처리 : 머신러닝 모델에 훈련 데이터를 주입하기 전에 가공하는 단계를 말한다.

 

표준 점수: 훈련 세트의 스케일을 바꾸는 대표적인 방법 중 하나이다. 표준점수를 얻으려면 특성의 평균을 빼고 표준편차로 나눈다. 반드시 훈련 세트의 평균과 표준 편차로 테스트 세트를 바꿔야한다.