[KT Aivle AI] 5주차. 딥러닝 (2) 분류

hyowon·2024년 3월 24일
0

KtAivle

목록 보기
22/39

0. 개요 및 데이터 준비와 성능 예측

주제 : 딥러닝 전체 과정의 코드 실습
내용 : 이를 통해, 딥러닝 회귀, 분류를 완벽하게 구현해 낼 수 있다.

  • 데이터 준비
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))

1. 딥러닝 모델링

1) 전처리 : Scaling

scaler = MinMaxScaler()
x_train = scaler.fit_transform(x_train)
x_val = scaler.transform(x_val)

2) 필요 함수 불러오기

from keras.models import Sequential
from keras.layers import Dense
from keras.backend import clear_session

3) 모델 선언

여기서 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')

4) 학습

model.fit(x_train, y_train)

5) 예측

pred = model.predict(x_val)
pred = np.where(pred>= 0.5, 1, 0)

6) 검증

print(confusion_matrix(y_val, pred))
print('-'*50)
print(classification_report(y_val, pred))
profile
안녕하세요. 꾸준히 기록하는 hyowon입니다.

0개의 댓글