머신러닝 순서(7단계)
1) 문제정의
2) 데이터 수집
3) 데이터 전처리
4) 탐색적 데이터 분석 → 많이 생략되는 편
5) 모델 선택 및 하이퍼 파라미터 튜닝
6) 학습
7) 예측 및 평가
분류 평가지표(0~1사이의 값으로 존재, 1일수록 좋음)
1) 정확도(Accuracy)
2) 재현율(Recall)
3) 정밀도(Precision)
4) F1-Score
5) ROC Curve
회귀 평가지표
1) MSE(Mean Squared Error, 평균제곱오차)
2) RMSE, MAE, MAPE
3) R2 Score = R squared
E로 끝나는 회귀평가지표들은 0~무한대의 범위 → 한눈에 파악하기 힘들다
R2 Score는 0~1까지로 변경 → 정확도처럼 사용 가능
코드에서 보는 평가지표
경사하강법
일반화, 과대적합, 과소적합
train accuracy : 0.9, test accuracy : 0.75 → 과대적합
0.85 0.8 → 일반화
train accuracy : 0.9, test accuracy : 0.75 → 과소적합
0.85 0.7 → 과소적합
L1 규제, L2 규제
1) L1 규제 : 모든 가중치에 똑같은 힘으로 규제를 적용
-특정 가중치는 0이 된다 → 사용되지 않는다
-사용되는 가중치와 사용되지 않는 가중치가 나뉨
-특성 선택이 자동으로 이루어짐
→ 특정 데이터가 중요할 때 사용
2) L2 규제 : 모든 가중치에 똑같은 비율로 규제를 적용
-모든 가중치는 0이되지 않는다
-모든 가중치를 사용
-모든 데이터가 고르게 중요할 때 사용
→ 일반적으로 많이 사용
다양한 모델들
1) KNN(K Nearest Neighbors)
2) Decision Tree
3) Ensemble 계열의 모델
4) 선형 회귀 모델
5) 선형회귀 + 규제
6) 선형 분류 모델
SVM(Support Vector Machine) : 차원의 변동을 통해 분류
Logistic Regrssion : S자형 곡선(Sigmoid)을 통해 분류
교차검증
1) 데이터셋을 3개로 나눔
2) 교차검증(Cross Validation)
K Fold Cross Validation : 데이터셋을 여러 개로 나누어 학습과 예측을 여러 번 수행
Stratified K Fold
Pandas, Numpy
빅데이터 분석기사 한정(iris, boston 데이터셋 활용 데이터 분석 코드)
Encoding(Label encoding, One-hot encoding)
글자를 숫자로 변경하는 방법
학습을 위해선 숫자 데이터만을 넣어야한다
(X input Nan, String to int)
Label encoding = map 함수로 해결
One-hot encoding = pd.get_gummies
Scaling
GirdSearch
Bow, TFIDF
1) Bow : 단어의 갯수를 센다, 많이나올수록 중요
2) TFIDF : 단어의 갯수를 센다, 몇 개의 문서에서 나왔는지 체크
적은 문서에 나왔고, 나온 문서 안에서는 많이 나오면 중요한 단어