<복습>
classfication
애매한 애들은 구분이 어려움
저차원을 투영시켜 직선, 1 차원을 이용해 분류문제 해결
저차원으로 만든 다음 다시 고차원으로
입력은 직선, 출력은 곡선
Batch(딥러닝에서는 잘라서 시킴)
병렬처리
데이터가 처리되는 단위 :
미니배치가 1이면 스톡캐스트?
counfusio matrix : 잘 학습됐는지 확인
리니어의 r2스코어랑 유사
3_4. 분류모델 성능측정
손글씨 분류 문제
로지스틱 리그리션을 쓰면 성능이 별로 안좋음
y_true = y_test(모를 땐 외우지 말고 ? 써서 예시 보고 따라넣기)
confusion_matrix
로우 부분이 실제 값, 컬럼이 예측
0이라고 예측했을 때 0인거 몇 개 이런 식으로
Examples
--------
>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]])
0예측했을때 0/1예측0/2예측0
0예측했을때 1/1예측했을때1/2예측했을때1
0예측했을때 2/1예측했을때 2/2예측했을때2
3.5 출력층 설계하기
시그모이드 소프트 맥스 연관이 있다??
액티베이션 펑션은 딥러닝 관련 내용이라 지금은 ㅂㅂ
WTX -> 어떤 값 등장
어떤 값 시그모이드에 집어넣음 -> 0과1사이의 값으로 내보냄
-> loss펑션에 넣고 실제 값이랑 비교
(loss펑션은 크로스 앤트로피같은것)
WTX는 점수
숫자 5를 넣음. 8*8=64(길이)인 숫자로 이루어짐. 이걸 WTX에 집어넣음
그 결과 어떤 값(value) 나옴. ex) 1756 => 이건 1. 이건 확률이야 아니야? 아니다. 그냥 숫자.
숫자 7을 넣음. 어떤 값 나옴. ex)576 => 이건 0
value를 시그모이드에 넣음.(차트 참고)
회귀에서는 시그모이드 말고 항등함수를 사용. x를 넣으면 x가 나옴. 1을 넣으면 1이 나옴.
확률에 관련된 펑션은 sigmoid
(시그모이드 자체가 확률 함수는 아님...)
시그모이드에 넣어 나온 0.03 나옴. 이게 과연 숫자 5가 나오지않을 확률을 말하는건가?
이진분류에서는 맞지만 다중분류에서는 단순화 시켜 소프트맥스로 넘어감
(시그모이드는 여사건에 대해 고려하지않음. 그래서 확률이 아님)
어떤 이미지 넣었는데 숫자 97나옴
.. 숫자 5700나옴. 이게 뭔데?
그래서 0~1 사이 값으로 바꾸고 의미 부여
함수에 따른 output
머신러닝이 모델이라 생각하기
다중분류 문제 해결해서 5, 1 내보냄
시그모이드를 적용할 경우 개에 대한 확률, 고양이일 확률
sigmoid = - 1/(1+e^-e)
두 수를 더했을 때 1은 아님. => 확률은 아님.
그냥 0에 가까우면 고양이, 1에 가까우면 개로 하자.(개냐 고양이냐, 이게 아니라 개냐 개가 아니냐)
출력이
1개냐 -> 시그모이드가 확률이 될 수는 있음
2개냐 -> 시그모이드가 확률이 안 됨
sigmoid
odd(승산)
실패 대비 성공할 확률
패배 입장에서는 실패가 성공
승리 입장에서는 실패가 패배
승리 11번 , 패배 2번 -> 이걸 확률로 만들고 싶음
logit func(sigmoid)
우리가 원하는건 승산으로부터 P구하기(p는 확률)
sigmoid logit 서로 역함수 관계
다중분류로 클래서 나누어지는 애는 소프트맥스 사용
두 개만 되어도 다중클래스(개냐 고양이냐) => 소프트맥스 사용
<오후>
서포트 백터 머신
Loss의 최소화 -> 최적이 직선
분류문제 두 그래프는 같은 문제
2차원에서 원(비선형)으로 해결
오른쪽은 선형
평면 or 직선은 무수히 많지만 어떻게 나눠야 최적화된 평면이 만들어질까?
어떤게 좋은 직선일까?
로스평면에 넣고 최적화
좋음의 기준은 무엇인가?
기준을 세우고 기준에 맞게 직선을 구하자
기준이되는 두개의 점 뒤에는 아무것도 없다
직선의 방정식은 그 중간에 있는 선
식을 대입
w_p의 크기
||w_p|| = ( ∑ w_i^p)^1/p
벡터가(2,4)
norm : ||w_p||
피타고라스랑 유사
x-에서 x+로 가려면 람다의 w만큼 곱함
margin = distance(x+, x-)
파란색 직선 위에서 마진을 넓게 해주는 w를 찾자
마진을 크게 잡아주는 분류 문제
서포트벡터(지지대)
오류가 적으면 좋긴하지만 모델이 일반화되어야함
직선이 아닌 곡선인 형태는 높은 차원 투영
저차원을 고차원을 옮겨줌 = 커널함수
다항식 커널 트릭을 쓰면 직선 뿐만 아니라 곡선도 쓸 수 있음
[R Machine Learning] 8. 서포트 벡터 머신 : 네이버 블로그 (naver.com)
[R Machine Learning] 8. 서포트 벡터 머신
1. 서포트 벡터 머신(SVM) 1) 마진(Margin) & 서포트 벡터(Support Vector) - 서포트 벡터 머신...
blog.naver.com
분류는 안에 집어넣기.
서포트는 밖으로 내보내기
최대한 많이 들어가야하는 이유 : 더 좋은 직선을 만들 수 있음
입실론 : 노이즈(아주 작은 수)
서포트 벡터 머신 리그리션의 단점
시퀀스는 예측 못함(미래 상황 예측 못함)
추가학습 : 원클래스 서포트벡터머신
클래스가 하나여도 분류잘하게
ex) 이상치분류
실습
서포트벡터머신 예제
지지벡터 : 벡터 경계에 있는 벡터
테스트하고, 변환하고 넣어줘야 성능이 좋아짐
KNN
new data point에 초록색이 더 가까이 있음
거리 중요
뉴 데이터와 모든 트레인 셋 사이의 거리를 측정해서 성능이 안좋음
유클리드 거리 설명 중
거리를 기반으로 가장 많이 있는 애들
새로운 데이터 셋을 만들어낼 때 많이 사용.
맨하탄 거리는 직선으로밖에 못감(파란색)
차원의 입장에서 맨하탄이랑 유클리드 중 뭐가 좋은지 알 수 없음.
과제
부도 기업 판단
'새싹일지' 카테고리의 다른 글
깃허브 계정을 만들었다. (0) | 2024.06.24 |
---|---|
0624 새싹일지 (0) | 2024.06.24 |
0620 새싹일지 (0) | 2024.06.20 |
0619 새싹일지 (0) | 2024.06.19 |
0618 새싹일지_<블록체인과 암호화폐> 특강 (1) | 2024.06.18 |