TensorFlow란 무엇인가?
TensorFlow는 구글(Google)이 제공하는 대표적인 머신러닝 프레임워크입니다. 오픈소스 기반으로 파이썬(Python)과 함께 사용되어 다양한 알고리즘과 딥러닝 애플리케이션을 구현할 수 있습니다. 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용되고 있으며, 복잡한 수학 연산을 빠르게 처리할 수 있는 최적화 기법을 갖추고 있습니다. 이는 내부적으로 NumPy와 다차원 배열을 활용하기 때문인데, 이러한 다차원 배열은 '텐서(tensor)'라고 부릅니다.
텐서는 TensorFlow의 핵심 데이터 구조로, '데이터 흐름 그래프(Data Flow Graph)'라고 불리는 플로우 다이어그램에서 노드들을 연결하는 역할을 합니다. 쉽게 말해, 텐서란 다차원 배열 또는 리스트 그 자체입니다.
회귀 문제와 Auto MPG 데이터셋
회귀(regression) 문제의 목표는 가격, 확률, 비가 올지 여부처럼 연속적이거나 이산적인 변수의 출력값을 예측하는 것입니다.
이번 튜토리얼에서 사용할 데이터셋은 'Auto MPG' 데이터셋입니다. 이 데이터셋에는 1970년대와 1980년대 자동차들의 연료 효율 정보가 담겨 있으며, 중량(weight), 마력(horsepower), 배기량(displacement)과 같은 다양한 특성들이 포함되어 있습니다. 우리는 이 데이터를 바탕으로 특정 차량의 연료 효율을 예측하게 됩니다.
아래 코드는 구글 코랩(Google Colaboratory)에서 실행되었습니다. 코랩은 브라우저에서 바로 파이썬 코드를 실행할 수 있도록 지원하며, 별도의 설정 없이 GPU(그래픽 처리 장치)에 무료로 접근할 수 있다는 큰 장점이 있습니다. 코랩은 Jupyter Notebook을 기반으로 만들어진 서비스입니다.
예제 코드
다음은 TensorFlow를 사용해 Auto MPG 데이터셋으로 연료 효율을 예측하기 위해 데이터를 분할하고 검사하는 코드입니다.
print("Splitting the training and testing dataset")
train_dataset = dataset.sample(frac=0.7, random_state=0)
test_dataset = dataset.drop(train_dataset.index)
print("Plotting the training data as a visualization")
sns.pairplot(train_dataset[['MPG', 'Cylinders', 'Displacement', 'Weight']], diag_kind='kde')
print("Understanding the statistics associated with the data")
train_dataset.describe().transpose()코드 출처 - https://www.tensorflow.org/tutorials/keras/regression
실행 결과
Splitting the training and testing dataset Plotting the training data as a visualization Understanding the statistics associated with the data



코드 설명
데이터 정제가 완료되면, 전체 데이터를 학습용(train) 데이터셋과 테스트용(test) 데이터셋으로 나눕니다.
전체 데이터의 70%는 모델 학습에 사용하고, 나머지 30%는 모델 성능 평가를 위한 테스트에 활용합니다.
학습 데이터는 seaborn 패키지를 사용해 시각화합니다. pairplot을 통해 MPG, 실린더 수, 배기량, 중량 간의 관계를 한눈에 파악할 수 있습니다.
'describe' 함수를 사용하면 데이터 개수(count), 평균(mean), 중앙값(median) 등 데이터의 주요 통계 정보를 확인할 수 있습니다.