2023. 7. 14. 18:26ㆍ카테고리 없음
데이터 준비, 모델 훈련, fine-tune a model
챕터 3과 4까지 학습하면 기본적인 용어는 파악하고 그 이후부터 :더 자세한 내용을 학습한다.
Real Data: 빅데이터 안에는 데이터들이 마구 혼재되어 있다. sort하거나 Arragn 등 데이터를 전처리하는 과정이 필요하다.
Big Picture: 프로젝트를 구성하기 위해 전체적인 그림. 데이터를 조사하고 분석하고 알고리즘을 준비하고 모델을 선택하고 훈련한다. 최종적으로 deploy한다.
값을 예측을 잘했는지 측정하는 수식: RMSE (Root Mean Square Error) cost가 크면 오류가 크다는 것을 의미한다.
Get Data: 데이터 수집 사이트를 소개한다. 이건 학습 자료에 나옴.
MNIST,CIFAR10 &CIFAR-100, ImageNet
조사된 input데이터는 무수히 많다. 각각의 인스턴스마다 4개의 Feature을 가지고 있다.
분석과 통찰력: 예측된 결과값과 중간값의 차이가 예측 오차이다.
MAE (Mean Absolute Error) :
RSME와 MAE
유클리드 거리를 구하는 것과 비슷한 RSME = 루트 민 스퀘어 에러 = Euclidean norm.
MAE : l1 norm 맨해튼 놈이라고 한다.
RSME는 큰 값에 초점이 크다. 아웃라이어가 큰 영향이다. 특이값이 많은 데이터셋에 대해서 error metric을 적용할 때는 MAE를 사용한다. 상대적으로 MAE는 절대값을 취하기 때문에 outlier에 sensitive하지 않다.
데이터 준비 :
데이터를 처리하기 위한 WorkSpace를 생성한다. Colab, Jupyter notebook, Scikit-Learn, Pandas, Numpy, Matplotlib을 사용한다.
머신러닝 알고리즘을 잘 설계하려면 데이터 속성을 잘 파악하는 것이 중요하다. pandas를 통해 데이터를 불러온다.
housing.head()
housing.info() : 수치적인 정보
value_counts() : 어떤 카테고리가 있고 얼마나 많은 카테고리가 있는지 말해준다.
Quartile
quantile
percentile
.describe() : a summary of the numerical attributes
.hist() : 히스토그램
tail-heavy하면 패턴을 찾는데 어렵다. 이런 속성들을 bell-shaped로 transform해줘야 한다. 각각의 attribute들이 다른 scale을 가진다. outlier 된 것은 하나의 그룹으로 만들어준다. 어느 선에서 끊어서 range을 정해야하기 때문에 하나의 bin으로 할당한다.
Test set을 옳게 생성하는 방법: 랜덤하게 비율을 20퍼센트 정도 데이터를 구분해놓는다. train set과 test set을 분리해놓는다. 데이터셋이 어떤 구성으로 어떤 비율로 들어가있는지 샘플링 해놓아야한다. 그런 개념이 Stratified sampling이라고 한다. stratum이라고 한다. 비율을 그대로 유지하면서 동일 그룹이 가진 비율을 그대로 가져온다. 데이터셋을 구성할 때 각각의 비율을 잘 유지해야한다. 각각의 stratum의 비율을 유지하기 위해서 너무 많은 strata가 있다면 인스턴스가 적고 strata가 적으면 어떤 적절한 특징을 잘 지어놓기에 애매하다. pd.cut() 함수가 카테고리별로 구간을 구분지어놓을 수 있다. 머신러닝에서 사이킷런은 매우 정교하고 custom한 라이브러리를 제공한다. StratifiedShuffleSplit을 불러온다. 전체 dataset, stratified sampling, ramom samping한 카테고리가 있다. overall과 Stratified 비율이 굉장히 비슷하지만 Random한 경우는 이탈 에러율이 높다.
알고리즘 준비:
Model 훈련
Fine-tune Model