본문 바로가기

삼성 SDS Brightics

[삼성 SDS Brightics] 팀 분석 미션 Kaggle Competition <House Prices> - 02. 회귀 모형 적합(2) / Kaggle도 Brightics로!

안녕하세요, 은서예요! ㅎ.ㅎ

이제 팀 분석 과제의 막바지에 도달했습ㄴㅣ다

오늘은 저번 포스팅에 이어서 모델링을 마무리하고, Kaggle competition에 제출하는 방법까지 보여 드릴게요

파이팅 (ง•̀_•́)ง


1. Linear Regression

저번 포스팅에서 전처리를 마쳤던 Train 데이터로 Linear Regression을 진행해 주었어요!

Feature Column -> 독립변수, Label column -> 종속변수를 넣어 주세요

결과 화면 일부

결과 화면인데요! R-squared 외에도 여러 수치들을 확인할 수 있습니다 ㅎ.ㅎ

그리고 또 한 가지 중요하게 다룬 것은 바로 VIF입니다

그런데, VIF란 무엇일까요?

VIF가 무엇인지 알기 전에 다중공선성을 먼저 알 필요가 있습니다.

다중 공선성은 다중(Multiple), 즉 여러개의 독립변수(X 인자)가 서로 선형의 상관성이 높은 정도를 나타내는 개념입니다.

다중 공선성이 중요한 이유는

독립변수가 서로 의존하게 되면 과적합 문제가 발생하여 회귀 결과의 안정성을 해칠 가능성이 높아지기 때문인데요!

다중공선성을 확인하는 방법으로는 그래프(산점도), 상관계수, VIF 등이 있고, 이번 과제에서는 그 중 VIF를 사용해 확인해 보았습니다.

[자료 출처] 다중 공선성(Multicollinearity)의 확인과 처리|작성자 JMP 활용 가이드

VIF(Variance Inflation Factor)

VIF는 하나의 X인자가 다른 X인자에 의해 설명정도를 나타내는 개념으로 분산 팽창 요인(또는 지수)라고 합니다. 일반적으로 이 값이 10 이상이면 다중 공선성 문제가 크다라고 판단합니다.

작성자: JMP 활용 가이드

그래서 저는 위 결과로 도출된 테이블에서 VIF가 높은 변수들을 PCA를 통해 요약해 주려고 합니당

2. PCA

PCA(주성분 분석, principal component analysis)

변수 간의 상관관계가 있는 다차원의 데이터를 효율적으로 저차원의 데이터로 요약하는 방법 중 하나이다. 즉, p개의 변수가 있는 경우 거기에서 얻은 정보를 p보다 상당히 작은 k개의 변수로 요약하는 것이다. 다른 설명으로는 p차원 공간의 축을 회전시켜 많은 변수의 분산을 가장 잘 ‘반영’한 소수의 새로운 축을 찾아내는 기술이라고도 할 수 있다.

네이버 지식백과

즉, 특성들이 통계적으로 상관관계를 가지지 않도록 가장 유용한 방향으로 데이터셋을 요약하는 기술이라고 할 수 있겠네요!

PCA 함수를 이용해 돌려 줍시다

3. Xgb regression

자, 위에서 다듬은 데이터셋으로 XGB regression을 진행해 보겠습니다!

xgboost로 많이들 알고 계신 이 기술을 이해하려면 Boosting에 대한 이해가 필요한데요

Boosting은 약한 학습기들을 선형 결합시켜 성능을 향상한 기술입니다

각 단계에서 약한 학습기로 예측한 후에 오분류된 관측치의 가중치를 증가하고,

각 단계별로 약한 학습기들을 선형 결합하거나 오류율에 따라 가중 선형 결합시켜 정확도를 높이는 것이 특징입니다

교수님께서는 이 방법을 '찍히면 죽는다!'로 기억하라고 하시더라구요 (오류가 발견되면 집중해서 가중치를 두니까)

하지만 그만큼 과적합의 위험이 커서 튜닝이 필요하답니당

Boosting 중 하나가 xgboost입니다!

다른 함수들보다 쉽고 속도도 빠르다는 장점이 있지요 ㅎ.ㅎ 그래서 가장 많이 사용되는 기법인 것 같아요

Feature Column -> 독립변수, Label column -> 종속변수를 넣어 주고 돌리면 결과가 도출됩니다!

변수의 중요도를 파악할 수 있습니답

LotFrontage (부지 크기), OverallQual (전체 품질), OverallCond (전체 상태) 등의 변수가 중요하게 작용하네요

4. Test 모델

이제 Train 모델은 완성되었으니 Test 모델을 만들어 예측을 해 봅시다!

Brightics에는 Train에서 만들었던 모델을 그! 대! 로! 복사할 수 있는 기능이 있습니당

복사하고자 하는 모델을 드래그해서 범위 지정 후 원하는 위치로 드래그하면

이렇게 점선 모양으로 모델이 고대로 원하는 위치에 복사가 됩니닷 ! ! ! !

정말 대 다 나 다 !

 

혹시나 이번에 사용했던 모델을 다음 프로젝트에서도 사용하고 싶다면?

모델을 드래그해 지정한 후 두번째 로고를 누르면 템플릿 저장이 가능합니다!

이건 진짜 꿀팁 중 꿀팁,, 유용하실 거예요

우측 끝에 붙어 있는 Palette -> Template -> My Template을 누르면

이렇게 저장해 두었던 모델이 뜨고, 그대로 드래그하면 새 프로젝트 화면에서도 자유롭게 사용할 수 있답니다!

아무튼, 다시 Test로 돌아와서

저는 Train 모델을 그대로 복사해 주고 Test 데이터만 불러와서 전처리는 똑같이 진행해 주었어요

이 과정은 전 포스팅에서 다뤘기 때문에 참고해 주세욧

 

새롭게 추가된 과정입니다!

Test 모델에서는 null 값을 삭제하면 Kaggle에 제출할 때 row의 수가 안 맞게 되기 때문에

null값을 삭제하는 대신 replace missing number를 통해 mean값으로 채워 주었다는 사실만 알아 주세요~!

마지막으로 XGB regression predict 함수를 돌려 볼까용 ?!

이렇게 돌려 주면 prediction이라는 column이 새롭게 추가됩니다!

여기서 제가 정말 애를 많이 먹었는데요 ㅜ.ㅜ Train으로 돌렸던 모델과 column의 이름이 토씨 하나라도 틀리면 에러가 뜨더라구요,,

몰랐던 나 반성해라,,,,,, 정말 시간을 많이 잡아먹었습니다,,^_^

여러분이 만약 같은 오류가 뜬다면 One hot encoder를 돌릴 때 column 이름이 어떻게 추가되었는지, Load 시 바꾼 적은 없는지

꼭 꼭 확인해 보시길 바랄게요 !_!

처음 데이터 전처리를 할 당시 SalePrice를 로그 변환 해 주었던 것, 혹시 기억하시나요 ?

원래대로 돌려 주기 위해서 exp를 씌워서 새로운 컬럼으로 추가해 주었슴니당

마지막으로 SalePrice만 지정한 Table을 CSV 파일로 저장해 주기만 하면 끝~~~~~~~~!

5. Kaggle 제출하기

완성된 파일을 확인해 보면, SalePrice 한 컬럼만 존재하는 것을 확인할 수 있습니다

하지만 Kaggle에 제출할 때에는 Id 컬럼을 만들어 줘야 해요 !

저는 엑셀에서 따로 추가해 준 뒤 저장했습니다 ㅎ.ㅎ

그리고 Kaggle에 제출!

Score는 무려 0.13866이 나왔습니다 ~ ! 짝짝짝

ㅠ.ㅠ 데린이로서는 정말 큰 발전이 아닐 수 없는,, 중요한 과제였네요

사실 아직까지 완벽한 이해는 못 한 것 같지만,, 더 공부해야 할 것 같지만,, 그래도 첫 kaggle이라 참 뿌듯합니다 *^^*

여러분도 제 포스팅이 조금이나마 도움이 되셨으면 좋겠어욥

다들 ㅍㅏㅇㅣ텡 !!!!!!!!!!!


여기까지 Brightic3 조의 데이터 분석 과정이었습니다 !

우여곡절이 정말 많았지만,, 어떻게 잘 마무리가 되어서 뿌듯하네요 흑 。°(っ°´o`°c)°。

다음 포스팅에서는 팀 미션의 마지막 과제인 분석 영상 제작기를 풀어 보려고 합니당

앞으로 더 재미있는 포스팅으로 찾아올 테니까 기대해 주세요!

그럼 안농~!

본 포스팅은 삼성 SDS Brightics 서포터즈 활동의 일환으로 작성되었습니다.

#삼성SDS#Brightics#BrighticsAI#브라이틱스#데이터분석#데이터사이언스#인공지능#브라이틱스서포터즈#서포터즈#대외활동#분석프로그램 #Xgboost #Regression #선형회귀 #Kaggle #KaggleCompetition #HousePrice #데이터시각화 #R#Rstudio#Python#SamsungSDS#삼성서포터즈#코딩#통계#iris#삼성#분석플랫폼#모델링#머신러닝#데이터분석툴#빅데이터#브라이틱스서포터즈2기#서포터즈2기#삼성SDSBrightics #BrighticsStudio #브라이틱스 #모델링 #데이터분석 #데이터 #브라이틱스서포터즈 #Brightics서포터즈 #브라이틱스다운 #모델링 #데이터시각화 #프로그램설치

#Brightics설치방법 #파이썬 #python #R #Rstudio #코딩 #코딩없이분석 #삼성SDS #삼성서포터즈 #데이터분석대외활동 #대외활동 #코딩하는법