텐서플로우를 활용하여 신경망 구현하기 - 데이터 전 처리
이번 실습에서는 텐서플로우를 활용하여 신경망을 구현해보는 과정을 수행해보겠습니다.
여러분은 마케터로서 광고 비용에 따른 수익률을 신경망을 통해서 예측하고자 합니다.
아래와 같이 FB, TV, Newspaper 광고에 대한 비용 대비 Sales 데이터가 주어진다면 우선 데이터 전 처리를 수행하여 텐서플로우 딥러닝 모델에 필요한 학습용 데이터를 만들어 봅시다.

텐서플로우 신경망 모델의 학습 데이터를 만드는 함수/메서드
텐서플로우 신경망 모델의 학습 데이터는 기존 데이터를 tf.data.Dataset 형식으로 변환하여 사용합니다.
pandas의 DataFrame 형태 데이터를 Dataset으로 변환하기 위해서는 아래의 from_tensor_slices() 메서드를 사용하여 ds에 저장할 수 있습니다.
ds = tf.data.Dataset.from_tensor_slices((X.values, Y.values))
X는 feature 데이터가 저장된 DataFrame이고, Y는 label 데이터가 저장된 Series 입니다. 여기서 X, Y 데이터는 X.values, Y.values를 사용하여 리스트 형태로 입력합니다.
이후 변환된 Dataset인 ds에서 batch를 적용하고 싶다면 아래와 같이 batch() 메서드를 사용합니다.
ds = ds.shuffle(len(X)).batch(batch_size=5)
- shuffle 메서드를 사용하여 데이터를 셔플합니다. 인자로는 데이터의 크기를 입력합니다.
- batch 메서드를 사용하여 batch_size에 batch 크기를 넣게 되면 해당 크기로 batch를 수행하게 됩니다.
이렇게 처리한 ds에서 take()메서드를 사용하면 batch로 분리된 데이터를 확인할 수 있습니다.
지시사항
- pandas DataFrame df에서 Sales 변수는 label 데이터로 Y에 저장하고 나머진 X에 저장합니다.
- 학습용 데이터 train_X, train_Y를 tf.data.Dataset 형태로 변환합니다.
- from_tensor_slices 함수를 사용하여
원본 데이터 샘플 :
Unnamed: 0 FB TV Newspaper Sales
0 1 230.1 37.8 69.2 22.1
1 2 44.5 39.3 45.1 10.4
2 3 17.2 45.9 69.3 9.3
3 4 151.5 41.3 58.5 18.5
4 5 180.8 10.8 58.4 12.9
FB, TV, Newspaper batch 데이터:
tf.Tensor(
[[296.4 36.3 100.9]
[228. 37.7 32. ]
[ 5.4 29.9 9.4]
[ 57.5 32.8 23.5]
[240.1 7.3 8.7]], shape=(5, 3), dtype=float64)
Sales batch 데이터: tf.Tensor([23.8 21.5 5.3 11.8 13.2], shape=(5,), dtype=float64)
'DL' 카테고리의 다른 글
텐서플로우를 활용하여 신경망 구현하기 - 모델 학습 (0) | 2022.11.25 |
---|---|
텐서플로우를 활용하여 신경망 구현하기 - 모델 구현 (0) | 2022.11.24 |
퍼셉트론의 알맞은 가중치 찾기 (0) | 2022.11.24 |
DIY 퍼셉트론 만들기 (0) | 2022.11.24 |
퍼셉트론 작동 예시 구현하기 (0) | 2022.11.24 |