반응형
제로베이스 데이터 분석 스쿨 내용에 대한 기록이다.
17번째는 머신러닝 기초 강의이다.
대부분 알고 있는 내용이라 정리하는 것에 집중했다.
기존에 혼공머신으로 작성한 깃허브 노트에 추가로 더해서 작성했다.
ADsP에서 배운 내용들에도 추가로 작성했다.
[ML]
- 경험을 통해 자동으로 개선하는 컴퓨터 알고리즘.
- 알고리즘을 사용하여 데이터에서 패턴을 찾는다.
- 간단하게 정의하면 머신 랭귀지로 러닝시키는 것.
- 인풋(데이터셋)을 주고, 익명의 함수(람다)를 사용하며, 아웃풋(정답지)를 알려준다.
- 기본 : 회귀(Regression), 분류(Classification)
- 회귀(regression) : 임의의 숫자를 예측. 연속성 결과, 시퀀셜 결과. (ex. 고객 별 연체 확률 예측, 상품 판매량 예측)
- 분류(classification) : 클래스 중 하나로 분류. 이산성 결과, 카테고리컬 결과. (ex. 이중분류_라쿤인가?, 다중분류_어떤동물?)
- 응용 : 트리(Tree), 비지도(Unsupervised)
- 분야 : 1.CV(이미지 분류, 스캔, 게임), 2.NLP(분류, 요약, 이해, 수익예측, 음성인식, 구매이력)
[기본 개념]
- 라이브러리로 사이킷런을 사용.
- 람다 함수 : 익명 함수, 고차함수, 클로저, 콜백과 같은 개념.
- 클로저 : 환경을 담아놓고, 호출 시 꺼내 사용하는 함수.
- 입력 변수(X) : 샘플 = row 1개 = 확률 변수
- 출력 변수(y) : 클래스들 = 답안지 = 타깃 변수 = 기댓값
- 예측값(E) : 들어올 새로운 데이터에 대한 정확도. (y는 학습시킨 데이터에 대한 정확도.)
- y = aX + b 에서 y가 출력변수, X가 입력변수.
- 편의상 여기서 a를 계수나 웨이트, b를 절편이나 바이어스라고 부른다.
- Error: variance + bias
- 추정값에 대한 흩어진 정도 + 추청값과 참값 사이의 거리
- (ex. 과녁에서 화살들이 모여있다 + 화살들이 중앙에 가깝다)
- (+noise) 추가로 노이즈의 영향도 받는다.
- 모델링 : 시스템적 특성을 수식화하는 과정.
- 시스템의 변화 예측이 방정식으로 표현된다. (미분방정식 or 확률함수)
- 지도 학습 : 훈련 데이터로부터 하나의 함수를 유추해내는 학습법.
- 지도 학습은 입력변수와 출력변수의 값이 주어진 상태에서 러닝하는 것.
- (ex. Regression, Classification)
- 비지도 학습 : 입력값에 대한 정답 없이 데이터 구성을 알아내는 학습법.
- 비지도 학습은 입력변수만 있는 상태에서 러닝하는 것.
- 강화 학습 : 현재 상태에서 어떤 행동이 최적인지 보상을 통해 알아내는 학습법.
- 강화 학습은 입력변수와 보상이 있는 상태에서 러닝하는 것.
- overfitting : train set에서 점수가 좋았으나 test set에서 점수가 아주 나쁜 경우.
- underfitting : train set에서 점수 보다 test set에서 점수가 더 높은 경우.
- appropriate: 언더도 오버도 아닌 적당한 피팅.
[회귀 알고리즘]
- Regression, 연속성 결과를 예측하는 알고리즘.
- MSE를 주로 사용한다.
- mean squared error
- 제곱을 하는 이유?
- 해를 찾을 때 미분하고 변곡점을 찾는다.
- 제곱을 안한 상수는 미분 불가, 제곱한 경우 미분 가능.
- R^2 : 결정계수, 회귀 알고리즘을 평가할 때 사용. 정확한 숫자를 맞출 수 없기 때문에 사용함.
- 사이킷런의 score() 메서드.
- R^2 = 1 - (∑ (타깃 - 예측)^2 / ∑ (타깃 - 평균)^2)
- 저절로 노멀라이제이션 되는 특징이 있다. (무조건 0~1 사이 값)
- 이상적으로 64%가 넘어야 유의미 -> 현업에서는 25%만 넘어도 유의미
- 종류 : k-최근접이웃 회귀, 선형 회귀, 다항 회귀, 다중 회귀, 릿지 회귀, 라쏘 회귀
[분류 알고리즘]
- Classifier, 이산성 결과를 예측하는 알고리즘.
- CE를 주로 사용한다.
- cross entropy, 무질서한 정도를 수치화한 지표.
- 각 클래스별 확률 예측 결과 : predict_proba() 메서드.
- 종류 : k-최근접이웃 분류, 로지스틱 회귀, SGD 분류.
[트리 알고리즘]
- Tree, 순차적인 조건을 나무처럼 엮은 알고리즘.
- 회귀와 분류가 모두 가능하다.
- 표준화 전처리(StandardScaler)를 할 필요 없다.
- 불순도 : 여러 개의 클래스가 섞여 있는 정도를 표현하는 척도.
- criterion : 표준, 표준화할 방식을 결정.
- 지니계수 : 공평하게 섞여 있는지 나타내는 지표.
- 크로스 엔트로피 : 무질서한 정도를 수치화한 지표.
- 지니계수는 2차방정식 기반이고 크로스 엔트로피는 로그함수 기반. 곡률이 미세하게 다르지만 퍼포먼스에는 크게 차이가 없다.
[딥러닝 레이어]
옵티마이저 : 최소의 loss로 학습하는 방법을 찾는 최적화 알고리즘.
- 손실함수가 가장 적은 지점이 최적값 즉 해이다. n차 함수 형태인 손실함수의 최솟값을 구하는 방법은 미분해서 0인 지점으로 다가가는 것.(미분 = 경사, 다가가는 것 = 하강법.)
- SGD : 확률적 경사 하강법, 기존 샘플 1개와 새로운 데이터로 최대 그라디언트 계산하여 최대 속도로 학습.
- RMSprop : 루트 민 스퀘어 예측법, 기울기에 따라 학습률을 조절해서 정확도 높임.
- 모멘텀 : 경사 하강법에 관성 개념을 추가. 지역 최솟값에 갇히지 않도록 설계됨.
- 아담 : RMSProp과 모멘텀의 하이브리드.
[오분류표 평가지표]
- True는 무조건 잘했다. False는 무조건 잘못했다.
- Positive, Negative는 귀무가설 대립가설이라 경우에 따라 달라진다.
- 정밀도
- Precision(=Pre)
- TP / (TP + FP)
- 재현율
- Sensitivity(=Sen), Recall
- TP / (TP + FN)
- F1
- 2 * (Pre * Sen) / (Pre + Sen)
- 정분류율
- Accuracy
- (TP + TN) / (TP + FP + FN + TN)
- 오분류율
- Error rate
- (FP + FN) / (TP + FP + FN + TN)
- 특이도
- Specificity
- TN / (TN + FP)
- FP rate
- FP / (TN + FP)
- 제조 불량 검출 도메인
- TP = NG정합, TN = OK정합, FN = 미검, FP = 과검
- Precision : NG판정 중에 NG정합(=과검 평가)
- Recall : 실제NG 중에 NG정합(=미검 평가)
- F1 : Pre와 Sen의 조화평균. OK와 NG 모두에 대해 높은 성능
- Accuracy : 전체 중에 정합
- Error rate : 전체 중에 미검과검
- 데이터 사이언스 해석
- 도메인별로 중요한 지표가 다르다.
- 오분류표를 confusion matrix 라고 한다.
- 웬만하면 F1 score와 confusion matrix 모두 보는게 좋다.
- accuracy 정분류율 : 직관적인 모델의 예측 성능
- precision 정밀도 : 과검 없이 더 정확한 예측이 필요한 경우
- recall 재현율 : 과하게 잡더라도 절대 놓치는 일이 없어야 하는 경우
- F1 : 정확하면서도 놓치지 않도록 예측이 필요한 경우
[앙상블 학습]
- ensemble learning, 여러개의 클래시파이어를 생성하고 모델을 조합하여 더 정확한 예측을 하는 학습법.
- 보팅 : voting, 각 모델의 결과로 투표를 통해 최종 예측 결과를 결정.
- 다른 유형의 알고리즘
- 같은 통합 데이터셋
- 배깅 : Bootstrap AGGregatING, 데이터 샘플링(bootstrap)을 통해 모델을 학습시키고 결과를 집계(Aggregating).
- 같은 유형의 알고리즘
- 다른 쪼개진 데이터셋
- 부스팅 : Boosting, 여러개의 클래시파이어가 순차적으로 학습하되 이전 알고리즘이 다음 알고리즘에게 가중치를 알려줌.
- 같은 유형의 알고리즘
- 같은 통합 데이터셋
- 가장 정확하지만 가장 느리다
[트리 알고리즘의 종류]
- 결정 트리 : 연속적인 질문(조건)을 이어가며 학습하는 알고리즘.
- 사이킷런의 DecisionTreeClassifier() 클래스.
- plot_tree() 함수로 시각화 가능.
- 부모노드와 자식노드의 불순도 차이가 최대가 되도록 성장함.
- 특성의 중요도 추출 가능. feature_importances_ 속성.
- 랜덤 포레스트 : 결정 트리의 앙상블 학습 알고리즘.
- 사이킷런의 RandomForestClassifier() 클래스.
- 앙상블 학습 중에 배깅 방식.
- 100개의 결정트리를 사용.
- 랜덤하게 데이터 샘플링하여 n개의 데이터셋 생성.
- 노드 분할 시 최대의 정보이득인 경우를 선택.
반응형
'데이터분석 교육 (제로베이스)' 카테고리의 다른 글
[스터디 노트] 19번째 SQL 분석 태블로 (241010), 제로베이스 데이터 분석 스쿨 내용 (3) | 2024.10.10 |
---|---|
[스터디 노트] 18번째 SQL 분석 태블로 (241007), 제로베이스 데이터 분석 스쿨 내용 (2) | 2024.10.07 |
[스터디 노트] 16번째 기초통계 (241003), 제로베이스 데이터 분석 스쿨 내용 (3) | 2024.10.03 |
[스터디 노트] 15번째 선형대수 (241002), 제로베이스 데이터 분석 스쿨 내용 (0) | 2024.10.02 |
[스터디 노트] 14번째 선형대수 (240930), 제로베이스 데이터 분석 스쿨 내용 (0) | 2024.09.30 |