Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

TensorFlow를 활용해 Auto MPG 데이터셋으로 자동차 연비 예측하는 방법

TensorFlow란 무엇인가?

TensorFlow는 구글(Google)이 제공하는 대표적인 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, Python과 함께 사용하여 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있습니다. 학술 연구부터 실제 상용 서비스까지 폭넓게 활용되고 있습니다.

텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 데이터 흐름 그래프(Data Flow Graph)라고 불리는 흐름도에서 각 노드(모서리)를 연결하는 역할을 하며, 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다. 텐서는 다음 세 가지 주요 속성으로 식별할 수 있습니다.

  • 랭크(Rank) - 텐서의 차원 수를 나타냅니다. 텐서의 차수 또는 정의된 텐서가 가진 차원의 개수로 이해할 수 있습니다.
  • 타입(Type) - 텐서 요소에 연결된 데이터 타입을 의미합니다. 1차원, 2차원 또는 n차원 형태일 수 있습니다.
  • 쉐이프(Shape) - 행과 열의 개수를 함께 나타내는 속성입니다.

회귀 문제와 Auto MPG 데이터셋

회귀(Regression) 문제의 목표는 가격, 확률, 비가 올지 여부와 같은 연속형 또는 이산형 변수의 출력값을 예측하는 것입니다.

이번 예제에서 사용할 데이터셋은 'Auto MPG'입니다. 이 데이터셋은 1970년대와 1980년대 자동차들의 연비 정보를 담고 있으며, 무게, 마력(horsepower), 배기량(displacement) 등의 특성(feature)을 포함합니다. 우리의 목표는 이러한 특성들을 바탕으로 특정 자동차의 연비(MPG)를 예측하는 것입니다.

아래 코드는 Google Colaboratory 환경에서 실행합니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있도록 도와주며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

예제 코드

print("Predictions being viewed as a function of input variable")
x = tf.linspace(0.0, 250, 251)
y = hrspwr_model.predict(x)

def plot_horsepower(x, y):
   plt.scatter(train_features['Horsepower'], train_labels, label='Actual Values')
   plt.plot(x, y, color='g', label='Prediction')
   plt.xlabel('Horsepower')
   plt.ylabel('MPG')
   plt.legend()

plot_horsepower(x,y)

코드 출처 - https://www.tensorflow.org/tutorials/keras/regression

실행 결과

TensorFlow를 활용해 Auto MPG 데이터셋으로 자동차 연비 예측하는 방법

코드 설명

  • 'MPG'(연비) 값에 대한 예측이 수행됩니다.
  • 실제 값과 모델의 예측 값을 'matplotlib' 라이브러리를 사용하여 산점도와 선 그래프로 시각화합니다.
  • 입력 변수인 마력(Horsepower)에 따라 모델이 어떻게 예측하는지 함수 형태로 확인할 수 있습니다.

그래프를 보면 초록색 예측 선이 실제 데이터 분포를 잘 따라가는 것을 확인할 수 있습니다. 일반적으로 마력이 높아질수록 연비(MPG)는 낮아지는 경향이 있으며, 학습된 회귀 모델이 이러한 상관관계를 효과적으로 학습했음을 알 수 있습니다.