크리스마스기념 과제 파티
오늘의 목표 - 1번 과제(지도학습) 시도해보기
✅ 과제 수행 계획
- IDE 선택하기
- 데이터 불러오기
- 데이터 전처리
- 여러 회귀모델 비교
- 선형회귀
- 의사결정나무
- 랜덤포레스트
- 기타 모델,,,
- 모델 성능평가
- 각 모델 별 성능평가
- MAE
- MSE
- R^2 score
- 시각화
- 각 모델의 성능을 비교하고 최적의 모델을 선택하여 결과를 시각화
- seaborn 또는 matplotlib으로 막대그래프 그리기
1. IDE 선택하기
- 구글 코랩
- 장점 - 필요한 라이브러리가 모두 있어서 편하고, 가상환경 설정 할 필요가 없음. 코드마다 결과 확인이 편함, 윈도우와 맥에서 함께 작업할 수 있음.
- 단점 - 결국 vscode로 옮겨야함...
- vscode
- 장점 - 두 번 일 안해도 됨. 깃허브에 바로 푸쉬가능
- 단점 - 라이브러리 모두 인스톨해야하고, 가상환경도 설정 해야하고, 코드 모두 실행하기 귀찮고 오래걸림.
- 결정 : 윈도우와 맥을 번갈아가며 작업할 예정으로, 일단 구글 코랩 선택.
2. 데이터 불러오기
- 데이터 다운 받고, 컬럼별 데이터 확인.
- 문자가 포함된 컬럼은 없고, 숫자로만 이루어져있었음.
df = pd.read_csv('housingdata.csv')
df.head()
df.tail()
df.shape
df.info()
- 데이터셋 구성
보스턴 집값 데이터셋은 13개의 특성과 1개의 타겟 변수로 구성되어 있음.
- 특징(Features):
- CRIM: 범죄율 (지역별 범죄 발생률)
- ZN: 25,000 평방피트를 초과하는 주거 지역의 비율
- INDUS: 비소매 상업지구 면적 비율
- CHAS: 찰스강에 위치한 지역 여부 (1: 강 옆, 0: 강 옆이 아님)
- NOX: 공기 중 질소 산화물 농도
- RM: 주택당 방의 평균 수
- AGE: 1940년 이전에 건축된 소유 주택 비율
- DIS: 5개 보스턴 고용 센터까지의 가중 거리
- RAD: 방사형 고속도로 접근성
- TAX: 재산세율
- PTRATIO: 지역의 학생-교사 비율
- B: 흑인 비율 (지역 내 흑인 인구 비율)
- LSTAT: 하위 계층 비율 (하위 계층 비율에 대한 비율)
- 타겟 변수(Target):
- MEDV: 주택의 중간 가격 (단위: $1000)
- 소문대로 윤리적인 문제를 포함한 데이터셋.
- 대체할 수 있는 데이터셋이 많은데, 굳이 이 데이터셋으로 할 필요가 있었을까?
3. 데이터 전처리
1) 독립변수, 종속변수 분리 (X, Y 분리)
X = df.iloc[:, :-1].values
Y = df.iloc[:, -1].values
2) 데이터 분리
- train(훈련), test(테스트)로 분리
- train(훈련), validation(검증), test(테스트)로 분리
- 데이터 분할
- 훈련 데이터 (Training Data): 모델을 학습하는 데 사용.
- 검증 데이터 (Validation Data): 모델을 튜닝하거나 하이퍼파라미터를 설정하는 데 사용.
- 테스트 데이터 (Test Data): 최종 모델을 평가하는 데 사용.
- 교차검증(Cross-validation)
- 도전과제에 하이퍼파라미터 튜닝이 있어서 2번 방법을 사용하고자 함.
혹시 제출까지 시간이 남는다면 교차검증도 사용해보고싶음.
3) 결측치 처리
결측치 처리 방법은 여러가지가 있음.
- 결측치 삭제
- 결측치 대체
- 결측치 예측
4) 이상치처리
5) 특징선택