본문 바로가기
AI

머신러닝 - 1

by SolaBreeze 2023. 7. 3.
  • 사이킷런 패키지를 이용하려면 각 특성의 리스트를 세로 방향으로 늘어뜨린 2차원 리스트를 만들어야한다.

사이킷런은 입력데이터 배열이 행: 샘플, 열: 특성으로 구성되어 있다.

[[32, 34],

[34, 33],

...

[36, 44]]

이는 reshape(-1, 1)로 리스트를 2차원 배열로 바꿔줄 수 있다.

 

 

  • zip() 함수 : 나열된 리스트에서 원소를 하나씩 꺼내주는 함수

👇🏻 1차원 배열을 2차원 리스트로 반환하기 👇🏻

fish_data = [[ l,w ] for l,w in zip(length, weight)]

→ 여기서 length와 weight가 1차원 배열, fish_data는 2차원 배열

→ predict에 값을 넣어줄때도, kn.predict([[ 30, 600 ]]) 이런식으로 리스트의 리스트(2차원배열)로 넣어주어야한다.

 

 

  • column_stack() 함수 → 튜플 형식으로 전달

: 전달받은 리스트를 일렬로 세운 다음 차례대로 나란히 연결한다. (어떻게 보면 열추가 느낌..?)

np.column_stack((fish_length, fish_weight))

 

 

  • concatenate() 함수 : 첫번째 차원을 따라 배열을 연결하는 함수

fish_target = np.concatenat((np.ones(35), np.zeros(14)))



 

  • 무작위 배열
# random state와 같은 것인듯
np.random.seed(42)
# arrange 사용하면 1씩증가하는 시리즈를 만든다.
index = np.arange(49)
# shuffle함수는 주어진 배열을 무작위로 섞음
np.random.shuffle(index)

  • train_set, test_set 나누기 라이브러리
from sklearn.model_selection import train_test_split
train_input, test_input, train_target, test_target 
= train_test_split(fish_data, fish_target, 
stratify=fish_target, random_state=42)
  • 여기서 stratify 매개변수에 타겟 데이터를 전달하면 클래스 비율에 맞게 데이터를 나눈다. (샘플링 편향 방지!!!)