수치형 데이터인 부리 길이, 부리 깊이, 날개 길이 칼럼의 바 그래프를 그려보면 크게 한쪽으로 치우친 모습은 보이고 있지 않아 추가적인 처리는 생략했다.
범주형 자료들의 그래프를 그려보면 종에서는
Adelie가 가장 많았고, 서식지는 Biscoe에 가장 많았으며 성별은 거의 비슷했다.
상관계수 히트맵을 그려보면 무게와 가장 상관계수가 큰 요소는 날개길이었다.
[전처리]
273개의 데이터 중 성별에서 7개의 결측치가 있었다.
따라서 성별이 수컷인 펭귄의 부리길이 혹은 날개길이 평균보다 크다면 Male을 아니라면 Female로 대체해주었다.
범주형 데이터를 갖고있는 species, island, sex 칼럼을 원핫 인코딩을 해주었다.
이때 범주가 'n'개 모두 원핫 인코딩을 하면 해당 열간에 완벽한 선형 관계가 생겨 다중공선성이 발생할 수 있다.
다중공선성을 방지하기 위해 하나의 범주를 삭제하여 'n-1' 열을 생성했다.
📈 회귀 모델 학습
[항목 선택하기]
먼저 모든 칼럼을 다 넣어 다중회귀 모델을 학습시켰다.
R-square 값이 0.867로 높은 정확도를 보여주고 있었다.
다중 공선성 진단 결과 무게와 상관계수가 가장 높았던 날개 길이와 3개의 칼럼의 다중 공선성이 높게 나왔다.
따라서 부리 길이와, 부리 깊이 칼럼을 제거해주니 날개 길이의 다중 공선성 수치가 10까지 떨어졌다.
[Before]
[After]
다중 공선성이 있는 칼럼을 제거한 결과 R-square가 약간 낮아졌다.
[L1: Lasso]
라쏘 회귀를 했을 때 R-square가 약 0.1 낮아졌다. 또한 절대계수 합이 다중선형 회귀에 비해 매우 낮게 나왓는데 이는 라쏘 회귀가 덜 중요한 항목은 0으로 설정하는 경향이 있기 때문이다.
[L2: Ridge]
릿지 회귀 모델은 라쏘 회귀 모델에 비해 높은 R-square 값을 나타냈다. 또한 라쏘와 달리 릿지는 모든 특징을 유지하지만 과적합을 피하기 위해 계수를 축소하기 때문에 절대 계수 합이 다중 선형 회귀와 라쏘 회귀 사이 값을 갖고 있다.
[RandomForestRegressor]
다중 공선성을 신경쓰지 않고 RandomForestRegressor로 학습시켜 얻은 결과이다.
적합도가 0.86 정도로 다중 공성선을 고려하지 않았음에도 높은 수치를 보였다.
요소들의 중요도를 보았을때 의외로 무게와 상관계수가 가장 높았던 날개 길이가 아닌 Gentoo라는 종이 1등이었다.
궁금해서 찾아보니 세 종류의 펭귄은 크기가 비슷하나 Gentoo-Chinstrap-Adelie 순으로 크기가 큰편인 것 같다.