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

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

TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 작업에 활용되며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 쓰입니다. TensorFlow는 복잡한 수학 연산을 빠르게 수행할 수 있도록 돕는 최적화 기법들을 내장하고 있습니다.

이러한 성능은 NumPy와 다차원 배열 기반 처리 덕분입니다. 이 다차원 배열은 '텐서(tensor)'라고도 불립니다. TensorFlow 프레임워크는 딥 뉴럴 네트워크 작업을 지원하며, 뛰어난 확장성을 갖추고 있고 다양한 인기 데이터셋을 함께 제공합니다. GPU 연산을 활용해 리소스 관리를 자동화할 수 있으며, 방대한 머신러닝 라이브러리와 잘 정비된 문서를 갖추고 있습니다. 또한 딥 뉴럴 네트워크 모델을 실행하고 학습시켜, 데이터셋의 특성을 예측하는 애플리케이션을 만들 수 있습니다.

TensorFlow 설치

'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 설치할 수 있습니다.

pip install tensorflow

텐서란 무엇인가?

텐서(Tensor)는 TensorFlow에서 사용되는 데이터 구조로, 플로우 다이어그램의 엣지(edge)를 연결하는 역할을 합니다. 이 플로우 다이어그램을 '데이터 흐름 그래프(Data Flow Graph)'라고 부릅니다. 텐서는 본질적으로 다차원 배열 또는 리스트이며, 세 가지 주요 속성으로 식별할 수 있습니다.

회귀 문제의 목표

회귀(regression) 문제의 핵심 목표는 가격, 확률, 강수 여부 등 연속형 또는 이산형 변수의 출력값을 예측하는 것입니다.

여기서 사용할 데이터셋은 'Auto MPG' 데이터셋입니다. 이 데이터셋에는 1970년대와 1980년대 자동차들의 연비 정보가 담겨 있으며, 차량 중량(weight), 마력(horsepower), 배기량(displacement) 같은 특성들이 포함되어 있습니다. 우리의 목표는 이 정보를 바탕으로 특정 자동차의 연비를 예측하는 것입니다.

Google Colaboratory 활용

아래 코드는 Google Colaboratory(Colab)에서 실행됩니다. Google Colab은 브라우저에서 Python 코드를 실행할 수 있는 환경으로, 별도 설정 없이 무료로 GPU(그래픽 처리 장치)를 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.

예제 코드

hrspwr = np.array(train_features['Horsepower'])
print("The data is being normalized")
hrspwr_normalizer = preprocessing.Normalization(input_shape=[1])
hrspwr_normalizer.adapt(hrspwr)

hrspwr_model = tf.keras.Sequential([
    hrspwr_normalizer,
    layers.Dense(units=1)
])
print("The statistical data sample ")
hrspwr_model.summary()
print("The predicted output ")
hrspwr_model.predict(hrspwr[:7])
print("The model is being compiled : ")
hrspwr_model.compile(
    optimizer=tf.optimizers.Adam(learning_rate=0.1),
    loss='mean_absolute_error')

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

실행 결과

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

코드 설명

  • '마력(Horsepower)' 값을 입력받아 '연비(MPG)' 값을 예측하는 모델을 만듭니다.

  • 모델의 아키텍처를 정의하여 Keras 모델을 학습시킵니다.

  • 여기서 정의한 모델은 '순차형(Sequential)' 모델로, 단계별로 순서대로 실행되는 구조를 의미합니다.

  • 먼저 입력값인 '마력(horsepower)' 데이터를 정규화합니다.

  • 밀집층(dense layer), 즉 'layers.Dense'를 통해 선형 변환(y = mx + b)을 적용하여 출력값을 생성합니다.

  • '마력' 데이터를 위한 정규화 레이어를 생성합니다.