더북(TheBook)

5.3.1 합성 데이터와 선형 회귀

보통 저는 크기가 작더라도 실제 데이터셋을 예제로 사용하는 것을 선호합니다. 하지만 여기에서는 임의로 만들어 낸 가짜 데이터를 쓰겠습니다. 가짜 데이터를 만들어서 쓰는 것은 꽤 유용합니다. 학습 시스템을 개발할 때 우리가 완벽하게 조작할 수 있는 데이터가 필요할 때가 있습니다. 이 인공 데이터를 사용하여 입력과 출력 간 숨겨진 관계를 조작하고, 노이즈가 그 관계에 미치는 영향을 조절할 수 있지요. 노이즈의 유형과 크기까지 말입니다.

한 가지 특성과 타깃을 가진 간단한 데이터셋을 만들고, 이를 훈련-테스트 세트로 분리합니다. 노이즈는 -2와 2 사이 값을 선택합니다. 무슨 이야기인지 모르겠다면 2.4.4절로 돌아가 보세요.

 

In [2]:

N = 20
ftr = np.linspace(-10, 10, num=N)                # 특성 값
tgt = 2*ftr**2 - 3 + np.random.uniform(-2, 2, N) # 타깃 = 모델(특성)

(train_ftr, test_ftr,
train_tgt, test_tgt) = skms.train_test_split(ftr, tgt, test_size=N//2)

display(pd.DataFrame({"ftr":train_ftr, "tgt":train_tgt}).T)

0

1

2

3

4

5

6

7

8

9

ftr

-1.58

- 6.84

-3.68

1.58

-7.90

3.68

7.89

4.74

5.79

- 0.53

tgt

2.39

91.02

22.38

3.87

122.58

23.00

121.75

40.60

62.77

-1.61

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.