데이터사이언스 기록기📚

[혼공 10기/혼공 머신러닝+딥러닝] 1주차_Ch.1 나의 첫 머신러닝 본문

대외활동/혼공10기 - 머신러닝, 딥러닝

[혼공 10기/혼공 머신러닝+딥러닝] 1주차_Ch.1 나의 첫 머신러닝

syunze 2023. 7. 3. 18:01

📌 Ch.1 나의 첫 머신러닝

🖊️ Ch.1-1) 인공지능과 머신러닝, 딥러닝

 

✔️인공지능이란

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

- 영화 속의 인공지능은 '인공일반지능' or '강인공지능', 현실에서 마주하는 인공지능은 '약인공지능'

- 인공일반지능 or 강인공지능 : 사람과 구분하기 어려운 지능을 가진 컴퓨터 시스템
  (Ex. 터미네이터의 스카이넷)

- 약인공지능 : 특정 분야에서 사람의 일을 도와주는 보조역할
  (Ex. 음성비서, 자율 주행 자동차, 음악 추천, 기계 번역)

 

✔️머신러닝이란

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

- 특징

  • 통계학에서 유래된 머신러닝 알고리즘 많음
  • 대표적인 머신러닝 라이브러리 scikit-learn
    • 파이썬 API 사용
    • 많은 사람들이 검증하고 사용, 장단점 파악 → 유익하다고 증명, 널리 사용 사이킷런 알고리즘 라이브러리에 추가
    • 안정적이며 성능 검정 됨

 

✔️딥러닝이란

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

- 파이썬 API를 사용하고 있는 딥러닝 라이브러리

  • TensorFlow
  • PyTorch

🖊️ Ch.1-2) 코랩과 주피터 노트북 

✔️코랩 노트북

- 코랩 노트북 특징

  • 구글 클라우드의 가상 서버 사용
  • 구글 클라우드 가상서버는 최대 5개 5개 이상 노트북 열 때는 실행 중인 노트북 저장 후, 구글 클라우드와 연결 끊기
  • 1개의 노트북 12시간 이상 실행할 수 없음

 

✔️코랩 노트북 실습

1)  'Hello World' 출력

2) 노트북 이름 'Hello World'로 바꾸기 

3) 파일 이름 변경 구글 드라이브에서 확인


🖊️ Ch.1-3) 마켓과 머신러닝

✔️생선 분류 문제 실습 (머신러닝을 이용한 문제 해결 방법)

1) 문제 정의

  •  생선 이름을 자동으로 알려주는 머신러닝 제작
* 머신러닝으로 문제 해결하기 : 머신러닝은 누구도 알려주지 않는 기준을 찾아서 일 함, 스스로 구분할 기준을 찾음

 

2) 도미 데이터 불러오기

도미 데이터 준비하기

 

3) 도미 데이터 이해

- 데이터 이해를 위한 그래프 표현 : matplotlib

  • 하단 그래프 특징 : 도미 생선 길이가 길수록, 무게가 많이 나감 

도미 35마리 2차원 그래프 표현

 

4) 빙어 데이터 불러오기

 

5) 도미, 빙어 데이터 이해를 위한 산점도 그리기

- 그래프 특징

  • 길이와 무게 : 빙어 << 도미
  • 빙어는 길이가 늘어나도 무게가 많이 늘지 않음

 

6) 도미, 빙어 데이터 하나로 합치기

- Scikit-learn(사이킷런)을 활용하기 위한 2차원 리스트 제작

  • 사이킷런은 2차원 리스트를 기준으로 사용할 수 있음
  • zip() : 나열된 리스트에서 원소를 하나씩 꺼내주는 일 

 

7) 정답 데이터 생성

- 정답 데이터 알려주는 이유 : 규칙 찾기 할 때 정답을 알려주어야 규칙을 찾을 수 있음

  • 도미 : 1, 빙어 : 0

 

8) k-최근접 이웃 알고리즘 불러오기

 

9) 도미를 찾기 위한 기준을 학습 및 평가

- 훈련 및 평가

  • 훈련 : kn.fit(X,Y)
  • 평가 : kn.score(X,Y)

 

✔️k-최근접 이웃 알고리즘

- k-최근접 이웃 알고리즘 : 어떤 데이터에 대한 답을 구할 때, 주위의 다른 데이터를 보고 다수 차지하는 것을 정답으로 사용

  • 특징 : 가장 가까운 직선거리의 데이터 살피기
  • 단점 : 데이터가 많은 경우, 많은 메모리와 직선거리 계산 시간이 많이 든다 
  • 매개변수
    • p : 거리를 재는 방법 지정(1 : 맨해튼 거리, 2 : 유클리디안 거리 - 기본값 2)
    • n_jobs : 사용할 CPU 코어 (-1 : 모든 CPU 코어 - 기본값 1)

+) predict() : 새로운 데이터의 정답 예측, 2차원 리스트를 전달해야 함 

+) kn의 x,y 속성

kn의 x 속성
kn의 y속성

-  k-최근접 이웃 개수 설정

  • KNeighborsClassifier(n_neighbors = 개수)
  • 49개 중 35개가 도미 → 모두 도미로 예측 → kn49 모델은 도미만 올바르게 맞춤

+) 정확도 = 정확히 맞춘 개수 / 전체 데이터 개수

- 정확도가 1 이하로 내려갈 때를 파악하는 코드

728x90
Comments