초봉5센티미터

TIL 22. 타이타닉 피처엔지니어링 본문

교육/멋쟁이사자처럼 AI School 7기

TIL 22. 타이타닉 피처엔지니어링

삶은돼지고기 2022. 11. 2. 18:24
728x90

데이터를 전처리 할때는 train을 기준으로 현실 세계에서 test는 아직 모르는 데이터이기 때문이다.

- train과 test의 피처 개수가 다르면 오류가 발생

- 원핫인코딩을 할때 train, test 피쳐의 개수와 종류 같은지 확인이 필요

- 예를 들어 train 피처는 수학인데 test피처는 국어라고 하면 피처의 개수가 같더라도 다른 종류 값이기 때문에 제대로 학습할 수 없다.

- 피처를 컬럼명으로 만들 때도 제대로 만들어지지 않는다.

- train에만 있는 호칭 -> 기타로 만들어주자

 

* train에만 등장하는 호칭은 학습을 해도 test에 없기 때문에 예측에 도움 X

* train에만 등장하는 호칭을 피처로 만들어 주게 되면 피처의 개수가 늘어나는데 불필요한 피처가 생기기도하고 학습 시간도 더 걸림

 

One-Hot-Encoding

  • 모델이 학습할 때 문자는 인식을 하지 못해서 학습할 때 에러가 뜸. 따라서 문자에서 숫자로 바꿔주는 인코딩이 필요한데 그 인코딩 방식 중 하나가 원핫인코딩이다.
  • 순서가 있는 데이터라면 Ordinal-Encoding을 사용하는데 순서가 없는 데이터 인데 이 방식을 사용하면 의도치 않은 연산이 된다.
  • 순서가 없는 데이터라면 one-hot-Encoding 사용

pandas를 사용하는 이유는 수치데이터와 범주형 데이터를 함꼐 넣어주어도 수치형 데이터는 그대로 두고 범주형 데이터에 대해서만 인코딩한다.

 

결측치 대체

  • 결측치가 있으면 머신러닝 알고리즘 내부에서 연산을 할수없어 오류가 발생
  • 결측치가 있는 피처를 사용하려면 사이킷런에서는 꼭 결측치를 대체해 주어야한다.

모델 검증

cross_validate : Evaluate metric(s) by cross-validation and also record fit/score times. 학습결과에 대한 점수와 시간이 나옵니다.-> 점수를 보고자 할때는 편하지만 지정한 matric에 의해서만 점수가 계산

 

cross_val_score : Evaluate a score by cross-validation. 점수가 나온다.

 

cross_val_predict : Generate cross-validated estimates for each input data point. 예측 값이 그대로 나와서 직접 계산해 볼 수 있다.

 

정확도(Accuracy) 측정

  • 모델이 얼마나 잘 예측했는지 측정
  • 시험을 보고 나서 몇 개 맞았는지 틀렸는지 채점해 보는 과정과 유사

하이퍼파라미터 튜닝 하이퍼파라미터 (Hyper Parameter)

  • 머신러닝 모델을 생성할 때 사용자가 직접 설정하는 값으로, 이를 어떻게 설정하느냐에 따라 모델의 성능이 달라진다.
  • 수동튜닝 만족할만한 하이퍼파라미터들의 조합을 찾을 때까지 수동으로 조정
  • GridSearchCV() 시도할 하이퍼파라미터들을 지정하면, 모든 조합에 대해 교차검증 후 가장 좋은 성능을 내는 하이퍼파라미터 조합을 찾음
  • RandomizedSearchCV() GridSearch 와 동일한 방식으로 사용하지만 모든 조합을 다 시도하지는 않고, 각 반복마다 임의의 값만 대입해 지정한 횟수만큼 평가
Comments