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

TensorFlow와 Auto MPG 데이터셋으로 연료 효율 예측하기: 데이터 불러오기 완벽 가이드


TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용됩니다.

TensorFlow 설치하기

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

pip install tensorflow

텐서(Tensor)는 TensorFlow에서 사용하는 핵심 데이터 구조입니다. 플로우 다이어그램에서 엣지(edge)를 연결하는 역할을 하며, 이 다이어그램은 '데이터 흐름 그래프(Data Flow Graph)'라고 불립니다. 텐서는 본질적으로 다차원 배열 또는 리스트에 해당합니다.

회귀 문제란 무엇인가?

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

이번 튜토리얼에서 사용할 데이터셋은 'Auto MPG'입니다. 이 데이터셋에는 1970년대와 1980년대 자동차들의 연료 효율 정보가 담겨 있으며, 무게(weight), 마력(horsepower), 배기량(displacement) 등의 특성이 포함되어 있습니다. 우리의 목표는 이러한 특성들을 바탕으로 특정 차량의 연료 효율을 예측하는 것입니다.

Google Colaboratory 소개

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

다음은 Auto MPG 데이터셋으로 연료 효율을 예측하기 위한 코드입니다.

예제 코드

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

np.set_printoptions(precision=3, suppress=True)

import tensorflow as tf

from tensorflow import keras
from tensorflow.keras import layers
from tensorflow.keras.layers.experimental import preprocessing
print("TensorFlow 버전:")
print(tf.__version__)

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data'
column_names = ['MPG', 'Cylinders', 'Displacement', 'Horsepower', 'Weight', 'Acceleration', 'Model Year', 'Origin']
print("데이터를 불러오는 중입니다")
print("컬럼 이름이 정의되었습니다")
raw_dataset = pd.read_csv(url, names=column_names, na_values='?', comment='\t', sep=' ', skipinitialspace=True)

dataset = raw_dataset.copy()
print("데이터셋 샘플:")
dataset.head(2)

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

실행 결과

TensorFlow 버전:
2.4.0
데이터를 불러오는 중입니다
컬럼 이름이 정의되었습니다
데이터셋 샘플:
순번MPGCylindersDisplacementHorsepowerWeightAccelerationModel YearOrigin
018.08307.0130.03504.012.0701
115.08350.0165.03693.011.5701

코드 설명

  • 필요한 패키지들을 임포트하고 별칭(alias)을 지정합니다.

  • UCI 저장소에서 데이터를 로드하고, 각 컬럼의 이름을 정의합니다.

  • pandas의 read_csv 함수를 사용해 URL에서 직접 데이터를 읽어옵니다. 이때 결측값('?') 처리, 탭 문자 주석 제거, 공백 구분자 설정 등을 함께 지정합니다.

  • head(2) 메서드를 통해 데이터셋의 상위 2개 행 샘플을 콘솔에 출력합니다.