관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

머신러닝 7 - 주택 가격 예측 선형회귀 모델 실습 3 : 학습을 위한 전처리로 인코딩과 훈련용/ 학습용 데이터로 분리하기 본문

인공지능/머신러닝

머신러닝 7 - 주택 가격 예측 선형회귀 모델 실습 3 : 학습을 위한 전처리로 인코딩과 훈련용/ 학습용 데이터로 분리하기

huenuri 2024. 9. 17. 10:46

이 프로젝트의 마지막 실습 작업이 될 것 같다. 이제 머신러닝의 학습 전처리와 모델 선택 등의 과정이 이어진다. 새벽 공부 마지막 시간인데 남은 시간도 열심히 해보자!


 

 

주택 가격 예측 선형회귀 모델 실습 세번째

 

 

특성 선택은 계속해서 반복하며 넣고 빼는 작업은 해봐야 한다.

 

 


 

 

 

인코딩을 하는 2가지 방법

 

데이터는 수치형과 문자형으로 나누어진다. 

 

 

 

1. 원핫 인코딩

 

고유 타입을 컬럼 형태로 표현하는 방식이다. type은 h, u, t 타입으로 구성되어 있고, 이 종류마다 컬럼은 파생시킨다. 해당하는 부분은 1로 올리고 나머지는 0으로 만든다.

원핫 인코딩의 장점은 모든 데이터의 크기가 동등한 크기를 가진다. 크기를 잘못 기입하면 학습의 방해 요소가 될 수 있다. 원핫 인코딩은 모든 숫자가 1로 통일되어 동등한 수준의 데이터가 되는 것이다.

단점은 컬럼수가 불필요하게 많이 늘어난다.


 

 

 

 

 


 

2. 라벨 인코딩

데이터마다 순번을 부여해서 변경하는 방식이다. 장점은 컬럼 수가 늘어나지 않는다는 것이다. 장점이자 단점은 컴퓨터가 변경된 숫자를 보기 때문에 크기에 대해 학습을 할 수 있다. 잘못 사용하게 되면 숫자에 순번이나 크기를 부여하는 효과가 발생한다.

무얼 쓸지 고민이 되면 범주형 데이터의 특성을 보면 된다. 예를 들어, 학점은 A, B, C, D, F로 구성되어 있다. 학점을 사용하려면 숫자 타입으로 변환해야 하는데 이때 레이블 인코딩을 하면 좋다. 학점은 앞뒤 순번이 부여되어 있는 데이터이다.

 


 

 

 

 

종류가 많을수록 컬럼 수가 많이 늘어난 것을 볼 수 있다.


 

 


 

 

선택 특성 병합하기

 

 

 


 

 

훈련용과 평가용 데이터로 분리하기

집값에 영향을 주는 데이터는 x에 넣고, 나머지 결과값은 y에 넣는다. 훈련용과 평가용으로 나누는 이유는 모두 훈련용으로 사용하면 마치 답지를 이미 다 아는 것처럼 과대적합이 될 가능성이 크기 때문이다.

 

 

 

 

평균제곱오차는 다른 지표와 평가하기가 어렵기에 이 방식을 사용한다. 그렇기에 실제값과 예측값의 차이 제곱을 실제값과 평균값의 제곱으로 나눈 R-Squared를 사용한다.

 

 


 

 

비율은 보통 7:3이지만 8:2로 할지 선택할 수 있다. 고정키는 데이터를 적당히 섞어주는 기능을 한다. 그렇지 않으면 너무 딱 잘라져 데이터가 편향될 수 있기 때문이다.


 

 

 


 

 

 

학습을 마치고

집값 실습이 아직 남아있었지만 전날 다 마치지 못해 다른 선생님이 오셔서 하루만 수업을 해주셨다. 새로운 선생님은 다른 방식으로 설명해주셔서 다양한 방식의 강의를 접하니 더욱 좋았다.

이제 모델을 선택하고 평가하는 부분이 남아있는데 이건 운동을 갔다와서 하려고 한다. 공부하는 것도 좋지만 자연과 함께 땀을 흘리며 교감하는 시간도 중요하다. 얼마 남지 않은 추석 연휴도 가족들과 좋은 시간들을 보내야겠다.