본문 바로가기
머신러닝/프로젝트

Proj 보스턴 주택 가격 회귀분석

by ADELA_J 2023. 8. 9.

회귀분석 - 입력데이터를 기반으로 결과 예측하는 가격,주가, 수요, 날씨 등을 예측하는데

많이 사용되는 머신러닝 분석방법

 

<개요>

목표 보스턴 주택 가격 데이터에 회귀 분석을 수행하여 주택 가격에 영향을 미치는 환경변수를 확인하고 그에 따른 주택 가격을 예측한다.
핵심개념 머신러닝, 머신러닝 프로세스, 지도학습, 사이킷런, 사이킷런의 내장 데이터셋, 분석 평가 지표
데이터수집 보스턴 주택 가격 데이터 : 사이킷런 내장 데이터셋
데이터 준비 및 탐색 1. 사이킷런 데이터셋 확인 : boston.DESCR
2. 사이킷런 데이터에셋에 지정된 + 피처와 타깃 피처 결합
분석 모델 구축 사이킷런의 선형 회귀 모델 구

https://www.kaggle.com/code/shreayan98c/boston-house-price-prediction

https://www.kaggle.com/competitions/boston-housing/data

- 예측을 하기 위해서는 회귀분석과 상관관계를 둘다 해야함.

 

모델평가 -> 낮으면 데이터 양을 추가한다던지 하이퍼 파라미터를 조정한다든지 다른 조치들을 취하면 됨.

(버리고 새로하는게 아니라) 

 

<머신러닝>

일반프로그램과 머신러닝 프로그램 방식 비교
머신러닝의 지도 학습 방식

- 머신러닝 프로세스

  ▶ 데이터 수집 → 데이터 전처리 및 훈련/ 테스트 데이터 분할 → 모델 구축 및 학습 → 모델 평가 → 예측

  ▶ 지도학습 : 학습을 하기 위한 훈련 데이터에 입력과 출력을 함께 제공,

                        입력에 대한 출력을 아는 상태에서 학습하는 방식

  ▷ 입력 : 예측변수, 속성, 특징 (다 같은말이지만 상황에 따라 다르게 사용됨)

       출력 : 반응변수, 목표변수,클래스,레이블(다 같은말이지만 상황에 따라 다르게 사용됨)

 

 

MAE : 평균 절대 오차 / metrics.mean_absolute_error

MSE(주로많이쓰임) : 평균 제곱 오차 (MAE랑 같은데 마이너스 나올까봐)

RMSE : 루트 평균 제곱 오차 ( MSE값이 클까봐 나누는것)

R^2, 결정계수(주로많이쓰임) : 

 >> 여기서 2가지를 선택해서 많이 쓰임

 

<데이터 준비>

- 데이터를 불러오고 컬럼값 지정(컬럼값이 없어서)

- > MEDV 가 주택가격임.13개의 독립변수(입력, 속성,) 과 1개의 출력값(종속 변수)

- 결측값처리 (원래는 이상치도 탐색하고 그래야함, 시각화도 해보고 그러면서 체크해봄)

▲결측값이 'MEDV'열에서 54개 있기 때문에 (27행에서 해봄) 처리해야함.

▲ 'MEDV'열에서 결측값이 어디어디 있는지 궁금해서 출력해봄..ㅎ...(25행)

- MEDV : 본인 소유 주택 가격의 중앙값이 기 때문에 결측치를 중앙값으로 채워줌.

 

<데이터 탐색>

- shape 와 info() 

-> 오 출력값이 한 50개 정도 빈값이 있구만 했다가 결측치 채우고 나니 모두가 값이 있는 것으로 나옴.

 

<데이터 모델링>

 

- 모델생성할 선형 회귀 분석을 사이키런에서 불러오고 LinearRegression

▶ 37~38행 : 독립변수 / 종속변수로 X,Y 분할하고 (MEDV가 출력값임)

▶ 41에서 훈련용/테스트용 데이터 분할하고 ( 7:3 으로, 랜덤도 고정시키고 )

▶ 44~48행 : 선형 회귀 분석으로 모델을 생성하고 fit을 통해 훈련 데이터를 훈련 시키고 48에서 예측 수행함

▶ 50~54행 : 성능 평가, 회귀 분석은 지도 학습이므로 평가 데이터 X에 대한 결과값 YY_test를 이미 알고 있는 상태에서

평가데이터 YY_test와 48에서 구한 예측결과 Y_predict 의 오차를 계산하여 모델을 평가. 평가 지표 MSE를 구하고 

MSE구한 값의 제곱근을 계산해서 RMSE를 구함. 그리고 평가지표 R2도 구함.

▶ 55~56행 : 선형회귀의 Y절편, 피처의 회귀계수(기울기) 확인

▶ 선형 회귀 분석 모델을 평가 지표를 통해 평가하고 회귀 계수를 확인하여 피처의 영향을 분석한다.

  - lr.coef_과 피처 이름을 묶어서 시리즈자료형으로 만들고, 회귀 계수(기울기) 값을 내림차순으로 정렬.

   ▷ 이를 토대로의 보스톤 주택 가격에 대한 회귀식

      MEDV = 4.03 * CHAS + 0.40 * CRIM + 0.29 * RM + 0.10 * ZN + 0.02 * RAD + 0.01 * AGE + 0.01 * B - 0.01 *TAX -0.01 * PTRATIO - 0.25 * INDUS - 0.25 * NOX - 0.85 * LSTAT - 2.03 * DIS  + 41 (y절편값, 위 55에서 구함)

 

<시각화>