Must remember
1. 머신러닝 순서 (7단계)
- 문제정의
- 인공지능으로 어떤 기능을 제작하려하는지 최대한 자시하게
- 데이터 수집
- where: AI HUB, Kaggle, Google Datasets, Roboflow
- 직잡 수집할땐 최대한 많이(정확한 예측)최대한 다양하게 (깊은 분석)
- 데이터 전처리
- 탐색적 데이터 분석 → 많이 생략되는 편
- 도표, 통계치, 그래프 등을 사용해서 데이터 자세하게 바라보기
- 모델 선택 및 파라미터 튜닝
- 목적, 데이터에 따라 적합한 모델 사용
- 모델의 세부적인것들을 변경해주면 원할한 학습 가능
- 학습
- 예측 및 평가
- 새로운 데이터를 모델에 줬을때 올바른/정확하게 값을 출력하는가
2. 분류 평가지표 (Classification) (0~1 시이의 값으로 존재, 1 일 수록 좋음)
- 정확도 (Accuracy)
- 전체중에 정확히 맞춘 비율
- 정확도만으로는 모델의 성능을 믿기 힘들다
- 재현율(Recall)
- 실제 양성중에서 예측한 양성의 비율
- 애매한것을 사용한다 > 도둑 판별기
- 정밀도(Precision)
- 예측 양성중에서 실데 양성의 비율
- 애매한것을 사용하지 않는다 > 안전한 동영상 판별기
- F1 - Score
- 정밀고와 재현울의 조화평균
- 값이 높으면 애매한게 없다
- ROC Curve
3. 회귀평가지표 (Regression)
- MSE (Mean Squared Error, 평균제공오차)
- 오차의 값이 0~ 무한대
- 만약에 1000이라는 오차가 나왔다 라고했을때 정확한 판단이 불가
- 큰 오차는 더욱 크게 표현, 작은 오차는 거 작게 표현
- RMSE , MAE , MAPE
RMSE (Root Mean Squared Error) is a standard way to measure the error of a model in predicting quantitative data. It is the square root of the average of squared differences between prediction and actual observation.평균 제곱근 오차
MAPE (Mean Absolute Percentage Error) is a statistical measure that represents the accuracy of a forecast. It is calculated as the average of the absolute percentage differences between the actual and predicted values. 평균 절대 비율 오차, 적관적으로 값릏 보고싶을때
MAE (Mean Absolute Error, 평균 절대 오차)는 예측 값과 실제 값 사이의 차이를 절대값으로 변환하여 평균한 것입니다. 이는 오차의 크기를 실제 값과 같은 단위로 해석할 수 있게 해줍니다. 이후 이 값이 작을수록 예측 정확도가 높아집니다.
- R2 Score = R Squared
- E로 끝나는 회귀평가지표들은 0~무한대의 범위
- 하눈에 파악하기 힘들다
- R2 Score는 0~1까지로 변경 > 정확도처럼 사용가능
- 코드에서 보는 평가지표
4. 경사하강법
- 점진적으로 최적의 값을 찾아가는 방법
- 오차가 작아지는 방향으로 이동시키는 방법
- 방향의 문제: 어떤 방행으로 이동할 것인가
- 보푹의 문제: 한번에 얼마만큼 이동할 것인가
5. 일반화, 과대적합, 과소적합
- 일반화: 모델이 학습이 잘되었다 == 일반화가 잘됐다
⇒ 새롭게 들어오는 데이터를 예측 잘한다
-
과대적합: 학습데이터에 과라게 헉습에서 학습데이터는 잘 맞추지만 그 외 데이터는 잘 못 맞추는 현상
Train accuracy: 0.9, test accuracy : 0.75
0.85 0.8
-
과소적합 : 학습데이터를 조금만 학습해서 학습데이터도 못 맞추고 그 외 데이터도 못 맞추는 현상
train accuracy: 0.9, test accuracy : 0.75 > 과소적합
0.85 0.7 > 과서적합
6. L1 규제, L2 규제
- L1 규제:
- 모든 가충치에 똑같은 힘으로 규제를 적용
- 특정 가증치는 0이된다 > 사용되지 않는다
- 사용되는 가중치와 사용되지 않는 가중치가 나뉨
- 특성선택이 자동으로 이루어짐 > 특정데이터가 중요할 때 사용
- L2 구제
- 모든 가중치에 똑갗은 비율로 규제를 적용
- 모든 가중체는 0이되지 않는다
- 모든 가중치를 사용
- 모든 데이터가 고르게 중요할때 사용 > 일반적으로 많이 사용
7. 다양한 모델들 (model)
- KNN (K Nearest Neighbors)
- 가까운 이웃이 가지고 있는 값을 화용해서 예측
- 데이터가 군집을 이룰때, 동작시단이 빨라야할 때
- Decision Tree
- 스무고개, 아키네이터
- 데이터가 사각형일때, 특성선택을 해야할때
- Ensemble 계열의 모델
- Bagging 방법: 여러개의 모델이 서로 독립적인 관계
⇒ Random Forest 모델
- Boosting 방법: 열러개의 모델을 연결해서 사용
⇒ AdaBoost, XGBoost, GBM, LGBM
LGBM (Light Gradient Boosting Machine)은 Gradient Boosting framework에서 제공하는 빠르고 고효율적인 알고리즘입니다. 기존의 GBM보다 훨씬 빠른 학습과 예측 시간, 더 작은 메모리 사용량, 더 나은 정확도, 대용량 데이터에 대한 지원, 병렬 및 GPU 학습 지원 등의 장점을 가지고 있습니다.
- 학습과 예측의 속도가 느림
- 머신러닝 모델중에서는 보통 가장 좋은 결과
- 선형 회귀 모댈
- 데이터를 최개한 장 성명할 수 있는 선 찾기
- Linear Regression: 수학 공식 사용
- SGD Regressor: 경사하강법 사용 * 딥러닝에서 기본 모델로 사용
- 선형 분류모델
- SVM (support vector machine): 차원의 변동을 통해 분류
- Logistic Regression: S자형(Sigmoid) 곡선을 통해 분류
- 선형회귀 + 규제
- Lasso: Linear REgression + L1 구제
- Ridge: Linear Regression + L2 구제
8. 검증
- 데이터셋을 3개로 나눔
- Train, Validation, Test (5,3,2)
- Validation의 역할 : 기존의 TEst
- Test의 역할: 진짜 마지막으로 확인하기
- 교차검증 (Cross validation)
- K Fold Cross Validation: 데이터셋을 여러개로나누어 학습과 예측을 여러번 수행
- Stratified K Fold
9. Pandas, Numpy
다양한 데이터를 학습의 용이한 형태로 변경 (Numpy가 더 중요)
다양한 차원의 데이터를 다루기 용이한게 numpy
10. 빅데이터 분석기사 한정(iris, boston 데이터셋 활용 데이터 분석 코드)
- 데이터 불러오기
- 데이터 전처리하게(스케일링)
- 머델산택 및 하이퍼파라미터 튜닝
- 모델은 ensemble계열, 하이퍼파라미텅는 100 번 넘지 않게
- 학습
- 평가(RMSE 100이하의 모델 생성)
Bonus 🤣😂
Should remember
1. Encoding (Label encoding, one-hot encoding)
- 글자를 숫자로 변경하는 방법
- 학습을 위해선 숫자 데이터만을 넣어야한다 (X input Nan, String to int)
- Labeling encoding = map함수로 해결
- one-hot encoding = pd.get_dummies
2. Scaling
- 데이터의 범위를 조절하는 방법
- 모델중의 데이터의 범위가 일정하면 좋은 모델
- Standard, MinMax, Robust, Normalizer
3. GridSearch
4.Bow, TFIDF (text mining)
- 말뭉치를 학습에 용이한 향태 (토큰)으로 변경하는 작업
- Bow방법: 단어의 갯수를 센다, 믾이 나올수록 중요
- TFIDF: 단어의 갯수를 센다, 몇개의 문서엥서 나왔는지 체크
적은 문서에 나왔거 니온 문서 안에서는 많이 나오면 중요한 단어