We-Co

[Kaggle] 집 값을 예측해보자- House Prices - Advanced Regression Techniques[2] 본문

Python/Kaggle

[Kaggle] 집 값을 예측해보자- House Prices - Advanced Regression Techniques[2]

위기의코딩맨 2023. 12. 28. 13:24
반응형

안녕하세요. 위기의코딩맨입니다.

저번에 part.2까지 진행했던 집값 예측 포스팅을 이어서 진행해보도록 하겠습니다. 

 

 

[Kaggle] 집 값을 예측해보자- House Prices - Advanced Regression Techniques[1]

안녕하세요. 위기의 코딩맨입니다. 오늘은 이어서 캐글의 대표적인 문제 집값 예측하기를 진행해보도록 하겠습니다. 캐글에 대해서 궁금하신 분들은 아래 포스팅을 참고해주세요! [Kaggle] Kaggle

we-co.tistory.com

 

part.3

 

저번시간에는 4개의 변수만 확인하며 상관관계를 분석했습니다.

이제 전체의 변수들의 관계를 살펴보도록 하겠습니다.

 

여기서 얻을수 있는 정보는

OverallQual, GrLivArea,TotalBsmtSF는 SalePrice와 강한 상관 관계를 갖고있는 것을 확인할 수 있습니다.

또한 GarageCars, GarageArea 변수도 강한 상관 관계를 갖고있는 것을 확인할 수 있습니다.

다음으로, GarageCars와 GarageArea는 서로 구별할 수 없기 때문에 하나만 사용해도 된다고 생각을 하고있습니다.

이러한 경우에는 상관 관계가 더높은 것은 사용하시면 됩니다. ( GarageCars )

 

다음으로는 산점도를 확인해보도록 하겠습니다.

위에서 비슷한 상관 관계를 제거하고 남은

'SalePrice', 'OverallQual', 'GrLivArea', 'GarageCars', 'TotalBsmtSF', 'FullBath', 'YearBuilt' 변수들을 확인했습니다. 

그래프를 확인해보면 해당 변수들의 상관 관계를 산점도를 통해 더욱 쉽게 확인할 수 있습니다.

이제 part.4로 넘어갑니다.

 

 

part.4 

Missing Data를 확인하는 부분입니다. 

누락된 데이터를 확인하는 것은 데이터 분석에서 중요한 부분입니다. 

 

Total 부분은 각 열별로 받아 누락된 개수를 가져옵니다.

Percent 부분은 각 열의 누락된 개수를 총 백분율로 계산하는 부분입니다.

missing_data 개수와 백분율을 데이터프레임으로 생성하는 부분입니다.

 

 

해당 노트북에서는 15%이상 누락된 데이터는 없는 데이터로 보고 삭제합니다.

그리고 비슷한 성향을 갖고 누락된 데이터도 같으면 서로 같은 데이터로 보고 삭제를 진행했습니다.

다음으로 데이터 값을 평균0, 표준편차가 1 되도록 변환을 진행했습니다.

다음으로 Part.5로 넘어갑니다.

 

 

 

part.5

이제 마지막 part.5로 넘어왔습니다.

해당 파트에서는 4가지 테스트를 진행합니다.

  1. 정규성
  2. 등분산성
  3. 선형성
  4. 상관오류없음

정규성을 히스토그램과 확률도를 확인해보도록 하겠습니다.

 

SalePrice는 양의 왜도를 보이고 사선을 이루고 있지않습니다.

왜도는 로그 변환을 통해 변환을 진행하면됩니다.

 

 

np.log를 통해서 SqlePrice를 로그변환을 진행합니다.

적절하게 변환된 것을 확인할 수 있습니다.

마찬가지로 SalePrice 외의 GrLivArea도 같은 방식으로 진행합니다.

TotalBsmtSF항목도 진행하려 확인해보니 0항목이 있어 진행이 되지않았습니다.

일반적으로 왜도를 나타내는 것.
값 0은 로그 변환을 수행할 수 없기 때문에 큰 문제입니다.

해당 과정에서 얻을 수  있는 정보는

  • 일반적으로 왜도를 나타내는 것
  • 값이 0인 관측치 수(지하가 없는 주택)
  • 값 0은 로그 변환을 수행할 수 없기 때문에 큰 문제

그래서 문제인 0인 값을 무시하고 로그 변환을 진행하도록 수정했습니다.

 

동분산성을 사용하기 위해서는 그래프를 이용하는 것이 가장 좋다고합니다.

원뿔이나 다이아몬드 형태의 모양으로 표시된다고합니다.

먼저, SalePrice GrLivArea 적용합니다.

기존의 원뿔 모양이 없어지고 산점도가 잘 뿌려진 것을 확인할 수 있습니다. 

따로 TotalBsmtSF를 적용해봐도 같인 효과를 본 것을 확인할 수 있습니다.

 

그래서 결론적으로 SalePrice TotalBsmSF GrLivAread 범위에서 동일한 수준의 분산을 보인다는 것을 확인할 있습니다.

이렇게 연관성을 확인하며 SalePrice는 2가지의 변수를 통해 집값이 변화하고 있다는 것을 확인할 수 있었습니다. 

하지만 이것은 일부분일 뿐, 다른 방식들도 적용해가며 확인해 볼 수 있을것으로 생각됩니다!

 

이번에 캐글 집값 예측하기를 통해 파트별로 중요한 부분을 확인할 수 있었으며,

데이터의 시각화, 로그 변환 등 데이터를 변환하는 과정이 얼마나 중요한지 알 수 있었습니다.

앞으로도 캐글을 통해서 다양한 분석을 진행해보도록 하겠습니다.

반응형