AI/Machine Learning

[Python] 머신러닝 기초-6 다중회귀(Multiple Regression) 알고리즘을 통한 연습 / 다중회귀란?

Jeong Jeon
반응형

비전공에 독학이라 접근성이 부족하지만... 간단하게 이해할 수 있도록 써놓으려고한다...

 

이전 시간 다항회귀에 이어 조금 더 복잡한 모델을 구현해보고자 한다.

이는 아직 우리가 개발한 모델이 부족함에 있어 더 많은 발전을 이룰 수 있도록 도와줄것이다..

 

이때까지 공부했던것들의 흐름을 보면 당연히 3차원이 나올것이라고 예상했는데,

역시나 3차원이 나온다.

 

다중회귀란?

여러개의 특성을 이용한 선형회귀를 다중회귀라고 한다

쉽게 특성을 하나 이상 더 만들어서 선형회귀를 구현한 1차원 더 높아진 선형회귀이다.

 

예를들어 다항회귀는 y = ax²+bx+c로 y =무게 , x= 길이 두가지 특성만 사용했지만,

길이 x 무게라는 3번째 특성을 만들어내어 사용하는것이다.

 

우선 데이터를 가져올건데, Pandas를 이용하여 csv 파일로 저장되어있는 데이터를 읽어와 데이터프레임에 저장하고, 넘파이 배열로 변환하여 사용할 것이다.

Pandas는 검색! ㅎㅎ

 

나는 혼공머신에서 지원해주는 데이터를 이용해서 공부하고있으니,, 데이터를 읽어와보자

 

1). 데이터 읽어와 훈련세트와 테스트세트로 구분한다.

2). 다중회귀를 위해 PolynomialFeature객체를 이용하여 특성&특성&특성 세가지 특성으로 추가적인 특성을 만들어낸다.

   2-1). 훈련input 특성추가 만들기

   2-2). 테스트input 특성추가 만들기

 

3). 훈련 및 정확도 확인

굉장히 높게 나왔다. 과소적합도 해결된것 같고...

특성을 조금 더 높여서 정확도를 높이면?

degree 매개변수를 사용해서 확인해보자.

훈련세트에 대한 정확도는 아주 높게 나왔지만, 테스트세트에 대해서는 -가 나온다... 잘못됬다!

엄청난 과대적합때문이다..! 

우리는 적절히 특성의 갯수를 지정하여 사용해야됨을 배우게 된다.

여기서 배우게 될것이 규제 이다.

특성을 적게 사용하면 => 1번
특성을 적절히 사용하면 => 2번

특성을 너무 과하게 사용하면 => 3번

 

특성의 스케일을 정규화 시켜 사용하기 위해 우리는 사이킷런에서 사용하는 StandardScaler를 사용해보려고 한다.

 

4). 기본 스케일 변형

사이킷런에서 선형회귀모델에 규제를 걸수있게 두개를 합친 모델을 제공한다.

그 모델이 바로 릿지와 라쏘이다.

다음 시간에 릿지와 라쏘를 사용해볼 예정이다.

 

 

반응형