혼공학습단 - 1주차
[혼공학습단] 혼자 공부하는 머신러닝+딥러닝 1주차
Chapter01 ~ 02 학습하기
오늘은 혼공학습단 1주차 공부하면서 배운 내용 정리 + 기본미션 및 선택미션을 수행하려한다.
📍1주차 정리
- 머신러닝에서 2개를 구분하는 경우 (이진분류) 찾으려는 대상을 1로 놓고 그 외에는 0으로 놓는다
- 특성(feature)은 데이터를 표현하는 하나의 성질
- 훈련(training)은 머신러닝 알고리즘이 데이터에서 규칙을 찾는 과정
- 지도학습에서는 데이터를 입력(input), 정답을 타깃(target)이라 하고 이 둘을 합쳐 훈련데이터(training data)라함
- k-최근접이웃은 지도학습
- 슬라이싱 할때 마지막 원소는 포함되지 않음
- 넘파이는 슬라이싱 외에 배열 인덱싱이란 기능을 제공함
- 배열 인덱싱은 1개의 인덱스가 아닌 여러개의 인덱스로 한번에 여러개의 원소를 선택할 수 있음
- 사이킷런 모델의 입력과 출력은 모두 넘파이 배열임
- 샘플링 편향은 훈련세트와 테스트세트가 잘못 만들어져 전체데이터를 대표하지 못하는 현상임
- 표준점수(z점수)는 각 특성값이 평균에서 표준편차의 몇배만큼 떨어져 있는지를 나타냄. 실제 특성값과 상관없이 동일한 조건으로 비교가능
- 계산법 : 평균빼고 표준편차로 나눠주면 됨
- 예시로 나온 무게와 길이 처럼 특성의 스케일이 다를 때 전처리를 위해 사용함.
- 대부분의 머신러닝 모델은 스케일 처리를 해주지 않으면 잘 작동하지 않음
- 특성의 스케일을 조정하는 방법 중 하나임. 대부분의 경우 표준점수로 충분하여 가장 널리사용되는 방법임
- ☆훈련데이터세트에 스케일을 해줬으면, 테스트세트데이터도 스케일변환해서 적용해야 함
- ☆테스트 세트의 스케일을 조정할 땐, 훈련세트의 통계값을 사용해야 함
- 브로드캐스팅 : 넘파이 배열사이에서 일어남. 배열 전체에 수식을 적용하면 알아서 각 행(또는 열)으로 계산해주는 기능
✔️ numpy
- seed()는 넘파이에서 난수를 생성하기 위한 정수 초깃값 지정, 초기값이 같으면 동일한 난수 뽑을 수 있음
- arange() 일정한 간격의 정수 또는 실수배열
- shuffle() 주어진 배열을 랜덤하게 섞음
-
np.column_stack() 리스트를 묶어서 튜플형태로 반환해줌 (열방향으로 붙여지는 st)

-
np.concatenate() 배열을 연결해줌 (행 방향으로 붙여지는 st)

- np.ones() / np.zeros()
✔️ sklearn
-
train_test_split : 리스트나 배열을 비율에 맞게 훈련세트와 테스트세트로 나누어 줌
- 기본적으로 25%를 테스트셋으로 떼어냄
- 나누기 전에 알아서 섞어줌(
개꿀)) - 무작위로 데이터를 나누었을때 샘플이 골고루 섞이지 않을 수 있음
- 특히 일부 클래스의 개수가 적을 때, 샘플링 편향이 발생할 수 있음
- ☆statify 매개변수에 타깃데이터를 전달하면 클래스 비율에 맞게 데이터를 나눠줌
-
kneighbors : k-최근접 이웃객체 메서드로 입력한 데이터에 가장 가까운 이웃을 찾아 거리와 이웃 샘플의 인덱스 반환해줌
- 기본적으로 이웃의 개수는 KNeighborsClassifier 객체 생성할때 지정한 개수 사용함
- n_neighbors 매개변수에서 다르게 지정할 수도 있음
- return_distance 매개변수를 False로 지정하면 인덱스만 반환함 (default는 True)
📍기본미션 - 코랩 실습화면 캡쳐하기

📍선택미션 - Ch.02(02-1) 확인문제 풀고, 풀이과정 정리하기
✔️ 1. 머신러닝 알고리즘의 한 종류로서 샘플의 입력과 타깃(정답)을 알고 있을 때 사용할 수 있는 학습방법은 무엇인가요?
- ✅지도학습 : 정답을 알려주고 학습하는 것
- 비지도학습 : 정답을 알려주지 않고 학습하는 것. 비슷한 것들을 군집화 하는 것
- 차원축소 : 많은 feature(특성)로 구성된 다차원의 데이터셋을 차원 축소하여 새로운 차원의 데이터세트를 생성하는 것
- 강화학습 : 상과 벌이라는 보상을 주며 상을 최대화하고 벌을 최소화하도록 강화학습하는 방식
✔️ 2. 훈련세트와 테스트세트가 잘못 만들어져 전체 데이터를 대표하지 못하는 현상을 무엇이라고 부르나요?
- 샘플링 오류 : 랜덤 표본의 통계와 실제 모집단 값 사이의 불일치
- 샘플링 실수 : 없는 단어 인듯
- 샘플링 편차 : 없는 단어 인듯
- ✅샘플링 편향
✔️ 3. 사이킷런은 입력 데이터(배열)가 어떻게 구성되어 있을 것으로 기대하나요?
- 행:특성, 열:샘플 -✅행:샘플, 열:특성
- 행:특성, 열:타깃
- 행:타깃, 열:특성