본문 바로가기

머신러닝,딥러닝

혼공머신 챕터1& 챕터2

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

강인공지능과 약인공지능으로 나눌 수 있다.

 

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

 

인공지능 하위 분야 중 지능을 구현하기 위한 소프트웨어를 담당하는 핵심 분야

 

사이킷런: 컴퓨터 과학의 대표적인 머신러닝 라이브러리

 

통계학 기반이 아닌 경험을 바탕으로 발전 

 

딥러닝

 

많은 머신러닝 알고리즘 중에서 인공 신경망을 기반으로 한 방법들을 통칭하여 딥러닝이라고 부른다

 

1988- 얀 르쿤 - 손글씨 글자 - LeNet-5 - 최초의 합성곱 신경망

2012- 제프리 힌턴 - ImageNet - AlexNet 

 

오픈소스 - 구글 / 텐서플로, 페이스북/ 파이토치

공통점: 인공 신경망 알고리즘 사용 , 파이썬 API 사용

 

-----

 

사이킷런의 k-최근접 이웃 알고리즘: 주변에서 가장 가까운 5개의 데이터를 보고 다수 선택

주위의 다른 데이터를 보고 다수를 선택 근묵자흑 

 

fit() : 사이킷런 모델을 훈련할 때 사용하는 메서드 / 매개변수로 훈련에 사용할 특성과 정답 데이터 전달

predict(): 사이킷런 모델을 훈련하고 예측할 때 사용하는 메서드 / 특성 데이터 하나만 매개변수로 받는다.

score() : 훈련된 사이킷 모델의 성능을 예측 // 매개변수로 특성과 정답 데이터 전달 

 

----

 

머신러닝은 크게 지도학습과 비지도 학습으로 나누어짐

 

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

 

비지도 학습 : 타깃 없이 데이터만 이용 -> 데이터에서 어떤 특징을 찾는 데 주로 사용 

 

----

샘플링이 한쪽에 치우쳐있는 샘플링 편항을 조심해야한다.

 

넘파이:  파이썬의 대표적인 배열 라이브러리  -> 고차원의 배열을 쉽게 만들수 있도록 간편한 도구 제공 

 

넘파이 arrange() 함수에 정수 N을 전달하면 0에서부터 N-1까지 1씩 증가하는 배열을 만든다.

 

넘파이 배열의 크기는 파이썬의 튜플로 표현 

 

무작위로 데이터 나누었을 때 샘플이 골고루 섞이지 않을 수 있음(특히 일부 클래스가 적은 경우)

훈련세트와 테스트세트에 샘플 클래스 비율이 일정하지 않으면 모델이 학습을 제대로 못할 수 있음

stratify 매개변수에 타겟 데이터 전달하면 클래스 비율에 맞게 데이터 나눈다.

 

matplot에서 x축 범위 지정하려면 xlim() 함수 사용하면 된다. ex) plt.xlim((0,1000))

 

데이터에서 각 특성이 놓인 범위가 매우 다르다. 특성의 스케일이 다르다고도 말한다.

알고리즘이 거리 기반인 경우 올바르게 예측이 불가능한데  K-최근접 이웃도 포함된다.

샘플을 제대로 사용하려면 특정값을 일정한 기준으로 맞춰줘야하는데 

이게 바로 데이터 전처리라고 한다.

가장 널리 사용하는 전처리 방법 중 하나는 표준점수

분산: 데이터에서 평균을 뺀 값을 제곱하고 다 더해서 평균으로 나눔

표준편차: 분산의 제곱근 데이터가 분산된 정도를 알려준다.

표준점수:  각 데이터가 원점에서 몇 표준편차만큼 떨어져 있는지 나태는 값

 

대부분의 머신러닝 알고리즘은 특성의 스케일이 다르면 잘 작동하지 않는다.

 

테스트 세트는 반드시 훈련 세트의 통계값으로 변환해야한다 !!! 

그렇지 않으면 훈련세트에서 학습한 모델이 테스트 세트에서 올바르게 작동하지 않음

 

 

 

 

-----

혼공 기본미션 & 선택미션

 

'머신러닝,딥러닝' 카테고리의 다른 글

혼공머신 챕터7  (0) 2021.08.15
혼공머신 챕터5  (0) 2021.08.01
혼공머신 챕터4  (0) 2021.07.25
혼공머신 챕터3  (0) 2021.07.18