https://colab.research.google.com/drive/1w3YuzGL7UYZ6wTR_q8rGDPkeanUxOR1V#scrollTo=pc5btn1h49bo <<colab주소
import os
os.environ['KAGGLE_USERNAME'] = '[내_캐글_username]' # username
os.environ['KAGGLE_KEY'] = '[내_캐글_key]' # key
!kaggle datasets download -d ashydv/advertising-dataset
!unzip /content/advertising-dataset.zip
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam, SGD
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
df = pd.read_csv('데이터셋이름'.csv')
df.head(5) ## 데이터셋 안에 위에 5개의 행 출력해서 확인하는 코드
x_data = np.array(df[['데이터셋 안에 컬럼(입력값)']], dtype=np.float32) ## 소수점으로 받기 때문에 float를 사용한다.
y_data = np.array(df['데이터셋 안에 컬럼(출력값)'], dtype=np.float32)
print(x_data.shape)
print(y_data.shape)
x_data = x_data.reshape((-1, 1))
y_data = y_data.reshape((-1, 1))
print(x_data.shape)
print(y_data.shape)
x_train, x_val, y_train, y_val = train_test_split(x_data, y_data, test_size=0.2, random_state=2021) ## test_size=0.2는 나머지 0.8은 학습데이터로 사용하고 검증데이터로는 0.2로 쓰겠다는 코드이다.
print(x_train.shape, x_val.shape)
print(y_train.shape, y_val.shape)
model = Sequential([
Dense(1)
]) ## 선형회귀 방식 모델 , 나중에 배울 다중에서는 입력값에 따라 Dense 옆 숫자를 바꿔줘야한다.
model.compile(loss='mean_squared_error', optimizer=Adam(lr=0.1)) ## Adam 모듈을 사용했다. SGD모듈 도 가능하지만 보편적으로 Adam을 많이 사용한다. 괄호안에는 러닝 레이트이다 손실률이 차이가 많이 난다면 러닝 레이트를 바꿔주는게 좋다.
model.fit(
x_train,
y_train,
validation_data=(x_val, y_val), ## 검증 데이터를 넣어주면 한 epoch이 끝날때마다 자동으로 검증
epochs=100 ## epochs 복수형으로 쓰기!
)
y_pred = model.predict(x_val) ## 검증 데이터 X밸류값을 Predict 모듈안에 넣어서 예측값을 만든다.
plt.scatter(x_val, y_val) ## scatter는 그래프를 만들때 사용하는 함수이며 y_val값이기 때문에 결과값을 보여준다.
plt.scatter(x_val, y_pred, color='r') ## y_pred이기 때문에 위에 검증한 데이터로 예측값을 그래프로 보여준다.
plt.show() ## 그래프를 보여줘
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam, SGD
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
df = pd.read_csv('advertising.csv')
x_data = np.array(df[['데이터셋의 칼럼(입력값)', '데이터셋의 칼럼(입력값)', 데이터셋의 칼럼(입력값)']], dtype=np.float32)
y_data = np.array(df['데이터셋의 칼럼(출력값)'], dtype=np.float32)
x_data = x_data.reshape((-1, 3))
y_data = y_data.reshape((-1, 1))
print(x_data.shape)
print(y_data.shape)
x_train, x_val, y_train, y_val = train_test_split(x_data, y_data, test_size=0.2, random_state=2021)
print(x_train.shape, x_val.shape)
print(y_train.shape, y_val.shape)
model = Sequential([
Dense(1)
])
model.compile(loss='mean_squared_error', optimizer=Adam(lr=0.1))
model.fit(
x_train,
y_train,
validation_data=(x_val, y_val),
epochs=100 # epochs
)