<과목소개>
1. 선형대수학_NumPy
스칼라(scalar): 길이, 넓이, 질량, 온도 / 크기만 존재하는 양(숫자)
벡터(vector): 속도, 위치이동, 힘 / 크기와 방향이 모두 존재하는 양
Norm
= 원점 0에서 점(x1, x2, ... xn) 까지 이르는 거리
내적(Dot product, Euclidean inner product)
// 저렇게 점으로 표현한 것 = '곱하기'
행렬(Matrix)
= 실수를 직사각형 모양으로 배열한 것
- 같은 차원을 가진 행렬끼리만 연산가능
※ 행렬곱
A(3,2) B(2,3)이라면 안쪽의 차원이 같아야 행렬곱이 가능함
전치행렬(Transpose)
= 원행렬의 행과 열을 뒤바꾼 행렬
ex. (3,1) -> (1,3)
[Numpy]
= python에서 사용하는 과학컴퓨팅용 라이브러리
- 행렬과 같은 데이터구조, 수학/과학 계산함수 지원
- 머신러닝에서 대부분의 데이터는 행렬로 표현됨
※ np.dot(x, y) vs x*y
[Numpy Array]
비교연산, 논리연산 = bool type
※ 표준화(normalize): 모든 원소의 합이 1이 되도록 함
- 각각의 원소에 원소들의 총합으로 나누면 됨
2. 회귀분석
단순선형회귀(Simple Linear Regression)
<회귀분석법>
- 데이터를 가장 잘 설명하는 어떤 선 하나를 찾음
<변수 표기>
- N: 데이터의 개수
- X: input데이터, Feature
- Y: output
- ( x(i),y(i) ): i번째 데이터
<문제 정의>
- 데이터: N개의 FB 광고 예산(X)과 판매량(Y)
- 광고 예산 -> 학습된 모델 -> 판매량
- 가정: X와 Y는 선형적 관계를 가진다.
- Y ~ β0X + β1 // β0 = 기울기, β1=절편
<모델의 학습 목표>
각 데이터의 실제 값과 모델이 예측하는 값을 최소한으로 하자!
i 번째 데이터 ( x(i),y(i) ) 에 대해:
- 실제값: y(i)
- 예측 값: β0x(i) + β1
- 차이: y(i) - (β0x(i) + β1)
전체 모델의 차이(sum):
※ 반례
양수, 음수의 절댓값이 같을경우 합쳤을때 0이되는 문제
해결: 제곱하기
(y(i) - (β0x(i) + β1) )^2
이를 'Loss function' 이라함
즉, 이 차이를 최소로 하는 β0 , β1을구하는 것
<산 정상 오르기>
아무 곳에서나 시작했을 떄, 가장 정상을 빠르게 찾아가는 방법
가정)
- 정상의 위치는 알 수x
- 현재 나의 위치와 높이는 알 수o
- 내 위치에서 일정 수준 이동할 수o
방법)
- 현재 위치에서 가장 경사가 높은 쪽을 찾음
- 오르막 방향으로 일정 수준 이동
- 더 이상 높이의 변화가 없을 때까지 반복
다중선형회귀분석(Multiple Linear Regression)
<Notation>
- N
- X1, X2, X3
- Y
- (x1(i), x2(i), x3(i), y(i)): i번째 데이터
<문제정의>
데이터: N개의 X1, X2, X3의 광고 예산과 판매량(Y)
<학습 목표>
즉, 이 차이를 최소로 하는 β0 , β1, β2, β3을구하는 것
다항식 회귀분석(Polynomial Linear Regression)
Y = β0X^2 + β1X+ β2
다중 선형 회귀분석과 원리가 같음
다만 데이터에 전처리를 함으로써 새로운 변수간의 조합을 만들어낸 뒤 회귀분석을 진행하는 것이 차이점!
(조합)
3. 나이즈 베이즈 분류
확률: 어떤 사건이 일어날 것인지 or 일어났는지에 대한 지식 or 믿음을 표현하는 방법
Q. 6번 이기면 판돈을 모두 가져감, A는 5번, B는 3번 승리
A의 승리확률: 7/8 (1/2 + 1/4 + 1/8 = 7/8)
B의 승리확률: 1/8
베이즈 법칙
X가 주어졌을때, A가 나올 확률
나이즈 베이즈 분류기
지도학습- 분류 부분
분류(classification): 주어진 데이터가 어떤 클래스에 속하는지 알아내는 작업
분류기: 주어진 데이터가 어떤 클래스에 속하는지 알아내는 방법을 자동으로 학습하는 알고리즘
Bag of Words & 감정분석
Natural Language(자연어 처리) -> Processing(NLP)
문장 -> 특수 문자 제거 -> Tokenize
BoW 모델에서 순서는 중요하지x
감정 분류기(Sentiment Classifier)
기계학습 알고리즘은 자동으로 학습되게 함
<학습 training>
각각의 문서 셋들에서 나오는 단어의 빈도 수를 측정
해당 단어 빈도수/ 전체 단어 빈도수
<training 결과>
'마음이 따뜻해지는 최고의 영화'
※ 단어가 없을 경우
하나가 0이면 값이 0이 나와버리기 때문에 문제가 됨
- 아주 작은수의 상수를 넣기(0.0000001같은 수)
- 전체 단어의 빈도수의 평균을 넣어주기
4. K-Means 클러스터링
비지도학습 - 차원축소 & 클러스터링
데이터 포인트들은 비슷한 것들끼리 뭉쳐있음 -> Hard clustering
- 100% or 0%
- K-Means, DBSCAN, OPTICS
- K-Means (k=2, 클러스터가 2개다)
한 개의 데이터 포인트는 숨겨진 클러스터들의 집합이다 -> Soft clustering
- 세분화해서 나눔
- FCM, EM, Soft K-Means, Topic Models
- 일반적으로 많이사용 (더 쉬움)
[K를 찾는 방법]
1. 눈으로 확인
2. 모델이 데이터를 얼마나 잘 설명하는지
- Elbow method
- Silhouette method
- Gap statistic method
※ 고려해야 할 것
데이터의 특성, 분석 결과로 얻고자 하는것
[PCA] = 주성분 분석
사용이유
1. 고차원의 데이터를 저차원으로 줄이기 위해
2. 데이터 정제
[클러스터링]
주어진 데이터를 비슷한 그룹(클러스터)으로 묶는 알고리즘
[K-Means 클러스터링]
반복을 이용한 클러스터링 알고리즘
1. 중심 centroid : 각 클러스터의 중심
2. 중심과의 거리 distance : 중심과 데이터 포인트와의 거리
step
0. 초기 중심값 : 데이터 중 임의로 선정
1. 각각의 데이터 포인트에 대해서 가장 가까운 중심점을 구함
2. 가까운 클러스터에게 데이터포인트를 할당, 중심점 업데이트
(1~2 반복)
'AI > 머신러닝' 카테고리의 다른 글
[경고메시지 무시] (0) | 2020.08.12 |
---|---|
[용어집] (0) | 2020.07.31 |
[alice] 문과생을 위한 머신러닝 (0) | 2020.07.24 |
댓글