목록분류 전체보기 (198)
개발학습일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsnqGB/btsGJMTln27/3G8zGVc0tG74wxBioeOIhK/img.png)
validation 이란? : 에포크가 한번 끝날때 마다 학습에 사용하지 않은 데이터로 시험 보는 것을 말한다 ** 테스트 = 인공지능이 완전히 학습이 다 끝난 상태에서 평가 ** 벨리데이션 = 학습 중에 (에포크 하나가 끝날때마다) 평가 인공지능 학습(fit) 시킬때 파라미터로 넣어서 지정해준다 - validation_split= 사용 _ 학습할때 학습 데이터의 0.n 은 테스트 용으로 쓰겠다고 지정하는 것이다 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense def build_model() : model = Sequential() model.add(D..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bUJlm9/btsGHj553PG/D6leZg9lok4yAcdukED9K1/img.png)
epoch_history : 객체에 저장된 통계치를 사용해 모델의 훈련 과정을 시각화할 수 있다 # 학습시킬때 변수에 저장하여 학습시킨다 epochs_history = model.fit(X_train, y_train, batch_size= 10, epochs= 100) # 저장된 변수의 히스토리는 딕트로 나온다 epochs_history.history import matplotlib.pyplot as plt # 차트로 나타내기 (위에서 확인한 history의 키값 입력) plt.plot(np.arange(1, 100+1), epochs_history.history['loss']) plt.xlabel('# epochs') plt.ylabel('Loss') plt.show()
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8ShzS/btsGHG02iau/Sc0gXDG0qSYvSvAF3q56PK/img.png)
텐서플로우 옵티마이저 런닝레이트(학습률) 셋팅하기 : learning rate란 미분 기울기의 이동 보폭(step) 이다 : 숫자가 적을수록 파라미터의 오차를 줄이는 숫자가 조금씩 내려간다 : 에포크 와 마찬가지로 Learning rate의 값이 적합하지 않을 경우, Overflow가 발생할 수 있다 - 모델 컴파일 할때 원래는 옵티마이져를 문자열로 불러왔지만, 함수로 불러오면 런닝레이트 파라미터를 직접 지정 할 수 있다 런닝레이트 파라미터의 디폴트 값은 0.001이다 def build_model() : model = Sequential() model.add(Dense(64, 'relu', input_shape=(X_train.shape[1],))) model.add(Dense(64, 'relu')) m..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3okVX/btsGJLGSQ7G/sguaf6a54b13wZtKzZFN11/img.png)
딥러닝 텐서플로우 리그레션(수치예측) 문제 모델링 모델링 하기 전 데이터 전처리는 필수이다! 1. 데이터 확인 후 X, y 값 지정하기# 기본 데이터 통계치 확인df.describe()# nan값 확인df.isna().sum()# nan 값 있으면 제거df.dropna()# 학습을 위해 X,y값 지정 (X값은 예측에 필요한 컬럼, y는 예측할 값)X = df.loc[ : , '컬럼' : '컬럼' ]y = df['컬럼'] 2. 피처스케일링 _데이터 정규화하기- y 값을 정규화 할 경우 에러 주의 해야한다- 기본적으로 1개의 컬럼으로 y 값을 지정했을 경우 y는 1차원 데이터 시리즈로 되어있다 그래서 y를 피처스케일링 해주기 위해선 y.values.reshape( , )을 해줘야 한다 _ y.val..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DqnOF/btsGIg1SGCz/vLXvA1zSw91Kqgn303DZUk/img.png)
텐서플로우 그리드 서치를 이용한 최적의 하이퍼 파라미터를 찾아보자 필요한 라이브러리 임폴트 # Tuning the ANN from scikeras.wrappers import KerasClassifier from sklearn.model_selection import GridSearchCV from keras.models import Sequential from keras.layers import Dense 텐서플로우 로 그리드 서치 하기 위해서 모델링하는 함수를 만든다 - def 로 함수 만들기 def build_model(optimizer='adam') : model = Sequential() model.add( Dense( units=8, activation= 'relu', input_shape=(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sjiPp/btsGIOxjIqD/BKkWQchoSTNDNH8eFWFoa1/img.png)
에포크(epoch)와 배치사이즈(batch_size) batch_size= n - n 자리에 한번 학습할때 몇개의 데이터를 넣어 학습할지 값을 입력 - 메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의 epoch에서 모든 데이터를 한번에 집어넣을 수 없다 그래서 데이터를 나누어 주는데 이때 몇 번 나누어 주는가를 iteration이라고 부르며, 각 iteration마다 주는 데이터 사이즈를 batch size라고함 epochs= n - n 자리에 해당 데이터를 몇번 반복해서 학습할지 값을 입력 - 한 번의 epoch는 신경망에서 전체 데이터 셋에 대해 forward pass(->)/backward pass(
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/brtpM9/btsGH0Y3QKH/0MkvlDzwsYyvImpbjtrAFk/img.png)
더미 베리어블 트랩 (Dummy variable trap) : 딥러닝에서는 컬럼 하나가 연산에 아주 크게 작용하므로, 굳이 없어도 되는 불필요한 컬럼을 없애는 것이다 원핫 인코딩한 결과에서, 가장 왼쪽의 컬럼은 삭제해도 데이터를 표현하는 것에 있어서 아무 문제가 없다. - France, Germerny, Spain 3개 컬럼으로 원핫 인코딩 되는데 1 0 0 0 1 0 0 0 1 맨 왼쪽 France 컬럼을 삭제해도, Germerny, Spain 0 0 => France 1 0 => Germeny 0 1 => Spain 잘 입력 된다 1. 넘파이 어레이에서 첫 행빼고 억세스 하기 X = X[ : , 1: ] 2. 데이터 프레임으로 변환하여 드랍 X = pd.DataFrame(X).drop(0, axis=..
모델링이 끝나면 컴파일(Compile)을 해야한다 - 2개로 분류하는 문제 loss 는 'binary_crossentropy' 을 설정한다 컴파일이란 ? : 옵티마이저(Optimizer)와 로스펑션(Loss Function), 검증방법을 셋팅하는 것을 말한다 - Loss Function = 오차함수 또는 손실함수 # 2개로 분류하는 문제 loss 는 'binary_crossentropy' 을 설정한다 model.compile(optimizer= 'adam', loss= 'binary_crossentropy', metrics= [ 'accuracy' ]) # metrics= [ 'accuracy' ] 정확도로 검증 컴파일이 끝나면 전처리한 데이터로 학습시키고 평가하여 정확도를 확인한다 전처리한 데이터 - ..