기본 필요 import문
import numpy as np
import pandas as pd
머신러닝과 같은 순서를 가졌다고 생각하면 된다.
from sklearn.preprocessing import OneHotEncoder , LabelEncoder
from sklearn.compose import ColumnTransformer
1.nan데이터 확인
2.X,y데이터 분리
3.분리된 X데이터에서 인코딩하기
2개는 레이블
3개이상은 원핫
4.피쳐스케일링 하기
딥러닝은 무조건 피처스케일링을 해줘야 한다.
from sklearn.preprocessing import MinMaxScaler
5.트레이닝 셋 나누기
from sklearn.model_selection import train_test_split
딥러닝 모델링
import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense
레이어를 담을 틀
model = Sequential()
model.add( Dense(units = n , activation='액티베이션' ,input_shape=(컬럼수,) ) )
https://seonggongstory.tistory.com/132
딥러닝 하이퍼파라미터 용어 : Dense/units/activation/input_shape
Dense 모델안에 들어가는 레이어를 표현 (레이어 한줄) , 뉴런의 입력과 출력을 연결해주는 역할 units = 노드 숫자 activation(활성화함수)= 받은 가중치(웨이트)를 결과값으로 바꿔주는 함수 https://seon
seonggongstory.tistory.com
두개의 히든레이어를 만들꺼면 한번더 하면 되지만 이때 두번째부터는 input이 없으니 빼면 된다
https://seonggongstory.tistory.com/127
딥러닝 하이퍼 파라미터 용어 : activation Functions (수정)
액티베이션 활성화 함수: 딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달하는데, 이 때 사용하는 함수를 활성화 함수(Activation Function)라고 한다. 선형
seonggongstory.tistory.com
model.add( Dense(units=8, activation= tf.nn.relu ) )
이때 액티베이션은 일괄 세팅이기때문에 첫번째 히든레이어와 맞춰줘야함
두개의 결과를 내는 인공지능 모델링의 액티베이션은 시그모이드로 나와야함
model.add( Dense(units = 1 , activation='sigmoid'))
https://seonggongstory.tistory.com/126
딥러닝 하이퍼 파라미터 용어 : epoch와 batch size
인공지능을 개발하고 나서 인공지능을 돌릴때 model.fit(X_train,y_train,batch_size = , epochs= ) 여기서 말하는 epoch와 batch 사이즈란? batch size 메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의
seonggongstory.tistory.com
확인과정
model.summary()
컴파일하기
model.compile(optimizer='adam' , loss = 'binary_crossentropy' ,metrics= [ 'accuracy' ] )
딥러닝 하이퍼 파라미터 용어: optimizer 와 손실함수(loss function)
Loss Function(손실함수) 손실 함수란 실제값과 예측값의 차이(loss, cost)를 수치화해주는 함수이다. 오차가 클수록 손실 함수의 값이 크고, 오차가 작을수록 손실 함수의 값이 작아진다. 손실 함수의
seonggongstory.tistory.com
학습
model.fit(X_train,y_train,batch_size = n, epochs= n)
평가
model.evaluate(X_test,y_test)
from sklearn.metrics import confusion_matrix, accuracy_score
시그모이드이기때문에 0과1사이로 나옴
y_pred = (y_pred >0.5).astype(int)
트루펄스를 숫자로 바꿔서 표현하면 됨
accuracy_score(y_test,y_pred)
= ( 맞은갯수) / 전체 수
순서 import numpy as np import pandas as pd 1.NAN처리 2.X,y데이터 분리 3.분리된 X데이터에서 인코딩하기 4.피쳐스케일링 하기 5.트레이닝 셋 나누기 6.딥러닝 import tensorflow as tf from tensorflow import keras from keras.models import Sequential from keras.layers import Dense model = Sequential() model.add( Dense(units = n , activation='액티베이션' ,input_shape=(컬럼수,) ) ) model.add( Dense(units=8, activation= tf.nn.relu ) ) model.add( Dense(units = 1 , activation='sigmoid')) 두개의 결과를 내는 인공지능 모델링의 액티베이션은 시그모이드로 나와야함 7.컴파일 model.compile(optimizer='adam' , loss = 'binary_crossentropy' ,metrics= [ 'accuracy' ] ) 2개로 분류하는 문제의 loss는 'binary_crossentropy' 바이너리_크로스엔트로피 로 설정 8.학습 model.fit(X_train,y_train,batch_size = 10, epochs= 20) 9.평가 model.evaluate(X_test,y_test)
y_pred = (y_pred >0.5).astype(int) |
'파이썬 > 텐서플로우' 카테고리의 다른 글
Tensorflow 이미지분류(ANN) 과 Flatten (0) | 2022.12.29 |
---|---|
epoch history (0) | 2022.12.28 |
tensorflow legression 유형 모델링 하기 (0) | 2022.12.28 |
GridSearch를 이용한 최적의 하이퍼 파라미터 찾기 (0) | 2022.12.27 |
인공지능 모델링 함수 만들기 (0) | 2022.12.27 |