[혼공 10기/혼공 머신러닝+딥러닝] 1주차_Ch.1 나의 첫 머신러닝
📌 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
- 하단 그래프 특징 : 도미 생선 길이가 길수록, 무게가 많이 나감
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 속성
- k-최근접 이웃 개수 설정
- KNeighborsClassifier(n_neighbors = 개수)
- 49개 중 35개가 도미 → 모두 도미로 예측 → kn49 모델은 도미만 올바르게 맞춤
+) 정확도 = 정확히 맞춘 개수 / 전체 데이터 개수
- 정확도가 1 이하로 내려갈 때를 파악하는 코드