주제 : 딥러닝 전체 과정의 코드 실습
내용 : 이를 통해, 딥러닝 회귀, 분류를 완벽하게 구현해 낼 수 있다.
path = "https://raw.githubusercontent.com/DA4BAM/dataset/master/Graduate_apply.csv"
data = pd.read_csv(path)
data.head()
target = 'admit'
x = data.drop(target, axis=1)
y = data.loc[:, target]
# 데이터 분할
x_train, x_val, y_train, y_val = train_test_split(x, y, test_size=.2, random_state = 20)
# 로지스틱회귀 모델링
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(x_train, y_train)
pred = model.predict(x_val)
print(confusion_matrix(y_val, pred))
print('-'*50)
print(classification_report(y_val, pred))
scaler = MinMaxScaler()
x_train = scaler.fit_transform(x_train)
x_val = scaler.transform(x_val)
from keras.models import Sequential
from keras.layers import Dense
from keras.backend import clear_session
여기서 Dense의 1은 output_shape(nfeatures에 있는 것들 합친것)
회귀 모델과 다르게 activation function을 사용해 준다!!
nfeatures = x_train.shape[1] #num of columns
nfeatures
# 메모리 정리
clear_session()
# Sequential 타입 모델 선언
model = Sequential([ Dense(1, input_shape = (nfeatures,), activation = 'sigmoid' ) ])
# 모델요약
model.summary()
model.compile(optimizer='adam', loss= 'binary_crossentropy')
model.fit(x_train, y_train)
pred = model.predict(x_val)
pred = np.where(pred>= 0.5, 1, 0)
print(confusion_matrix(y_val, pred))
print('-'*50)
print(classification_report(y_val, pred))