본문 바로가기

Python

Python에서 Jupyter Notebook을 통해 머신러닝하기 : Regression편

Linear Regression은 머신러닝의 기본적인 알고리즘 중 하나로, 데이터의 선형 관계를 모델링하는 데 사용됩니다. 이번 포스트에서는 scikit-learn 라이브러리를 사용하여 Linear Regression을 구현하는 방법을 단계별로 알아보겠습니다.

 

 

1. 필요한 라이브러리 임포트

먼저 필요한 라이브러리들을 임포트합니다.

 

 

2. 데이터 준비

 

예제 데이터를 생성하거나 실제 데이터셋을 로드합니다. 여기서는 간단한 예제 데이터를 생성해보겠습니다.

 

Salary 데이터

3. 데이터 전처리

 

1. NaN값 처리

 

 

- 현재 데이터에는 NaN 값이 없지만 NaN값인 데이터가 존재할 경우 dropna() 혹은 fillna()로 NaN값 처리를 해줘야 합니다.

 

2. X와 y값으로 분리

 

- X는 예측에 필요한 값, y는 예측해야하는 값입니다.

 

3. 문자열 데이터 처리

 

- 현재 데이터에는 문자열로 된 데이터가 없습니다. 문자열 데이터가 존재할 경우 상황에 따라 레이블 인코딩 혹은 원핫 인코딩을 진행합니다.

 

4. 피쳐 스케일링

 

- 인공지능에게 학습을 진행하기 위해서는 데이터를 학습하기 가장 좋은 데이터로 바꿔줘야 합니다. 대표적인 예시로 0과 1이 가장 이상적인 숫자라고 할 수 있습니다. 그러나 포스팅에서 사용할 LinearRegression은 자체적으로 피쳐 스케일링을 진행하기에 따로 코드를 작성할 필요가 없습니다.

 

5. 학습 데이터와 테스트 데이터로 나누기

 

 

- sklearn 라이브러리를 이용하여  학습 데이터와 테스트 데이터로 나눠줍니다. 보통 테스트 데이터는 전체 데이터의 20~25% 비율로 분리합니다.

 

 

4. 모델링 이후 학습 및 테스트

 

- 모델 초기화 후 학습을 진행합니다.

 

 

- 인공지능이 테스트 후 결과를 출력합니다. 이후 원래 분리했던 테스트 데이터와 비교하여 정확도를 파악합니다.

 

 

- M2S 계산법으로 오차를 확인합니다 숫자가 낮을수록 좋습니다.(계산식을 쓰지 않아도 정확도를 계산해주는 라이브러리도 존재합니다.)

 

결론

이렇게 scikit-learn 라이브러리를 사용하면 간단하게 Linear Regression 모델을 구현할 수 있습니다. 실제 프로젝트에서는 데이터 전처리, 특성 선택, 모델 평가 등 추가적인 단계들이 필요할 수 있습니다.

Linear Regression은 단순하지만 강력한 도구로, 데이터 간의 선형 관계를 이해하고 예측하는 데 유용합니다. 다양한 분야에서 활용될 수 있으며, 더 복잡한 모델의 기초가 되는 중요한 알고리즘입니다.
수치 예측을 수행하는 다른 모델로는 RandomforestRegression과 XGBRegression 모델이 있습니다.

추가로 statsmodels 라이브러리를 사용하면 더 상세한 통계 정보를 얻을 수 있습니다. 관심 있는 독자들은 이 라이브러리도 살펴보시기 바랍니다