ecole42

ft_linear_regression

ft_linear_regression

ft_linear_regression은 ecole42의 머신러닝 프로젝트로, 경사 하강법(gradient descent)을 사용하여 선형 회귀 모델을 구현하고 자동차 가격을 예측하는 프로그램. JavaScript(Node.js)로 경사 하강법 알고리즘을 구현하고, React를 사용하여 학습 과정을 시각화한다. 주행거리(마일리지)와 가격 데이터를 학습하여 선형 함수를 도출하고, 학습률 조정을 통한 최적화 과정을 관찰할 수 있다

JavaScript
React
Machine Learning

개요

ft_linear_regression은 ecole42의 머신러닝 프로젝트로, 경사 하강법(gradient descent algorithm)을 사용하여 학습된 선형 함수를 통해 자동차 가격을 예측하는 프로그램이다. 데이터셋은 src/data.csv에 있으며, 가격과 주행거리(마일리지) 쌍으로 구성되어 있다. 이 프로젝트에서는 어떤 언어든 자유롭게 사용할 수 있으므로, JavaScript(Node.js와 React를 시각화용으로 사용)를 사용했다.

프로젝트 제한사항

  • 외부 라이브러리 사용 금지: 경사 하강법 알고리즘과 선형 회귀 모델은 외부 머신러닝 라이브러리(예: TensorFlow, scikit-learn 등)를 사용하지 않고 직접 구현해야 한다.
  • 모든 수학적 연산과 최적화 알고리즘은 순수 코드로 작성해야 한다.

사용 방법

  1. 패키지 설치

    > pnpm i
    
  2. 학습 전 예측

    src/model.json을 학습하기 전에 가격을 예측해본다.

    > pnpm predict
    > milage: 200000
    > price: 0
    
  3. 학습

    > pnpm train
    ===========================
    Theta0 :  8008.400720135726
    Theta1 :  -0.02144848806185557
    ===========================
    
  4. 학습 후 예측

    > pnpm predict
    > milage: 200000
    > price: 3718.7031077646125
    
  5. 시각화 (React 앱 localhost:8080)

    > pnpm bonus
    

    학습률을 변경하여 경사 하강법 알고리즘이 어떻게 수행되는지 관찰할 수 있다.