본문 바로가기

2024/0490

[AI] 딥러닝 더미 베리어블 트랩 (Dummy variable trap) 더미 베리어블 트랩 (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=.. 2024. 4. 17.
[AI] 딥러닝 분류의 문제 ANN TensorFlow 컴파일(Compile), confusion_matrix 모델링이 끝나면 컴파일(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' ] 정확도로 검증 컴파일이 끝나면 전처리한 데이터로 학습시키고 평가하여 정확도를 확인한다 전처리한 데이터 - .. 2024. 4. 17.
[AI] 딥러닝 분류의 문제 ANN TensorFlow 모델링 딥러닝 분류의 문제인 ANN 텐서플로우 모델링 필요한 라이브러리 임폴트 import tensorflow as tf from tensorflow import keras from keras.models import Sequential from keras.layers import Dense 학습시킨 비어있는 인공 지능 model을 Sequential()로 만들어, add 함수로 히든 레이어를 추가하고 아웃풋 레이어도 추가한다 - 동그란모양의 노드를 이어주는 선을 웨이트나 파라미터라고 한다 activation= (함수) 에 sigmoid와 tanh는 기울기 소실때문에 히든레이어에 잘 사용하지 않는다 # 레이어를 담을 수 있는 비어있는 틀을 만든다 model = Sequential() # 비어있는 틀에 히든레이어.. 2024. 4. 17.
[AI] 딥러닝 Oprimizer 종류 옵티마이저(Oprimizer) 종류 - Optimizer란 loss function을 통해 구한 차이를 사용해 기울기를 구하고 Network의 parameter(W, b)를 학습에 어떻게 반영할 것인지를 결정하는 방법이다 - 현재 가장 많이 사용하는 옵티마이저는 Adam 이다 2024. 4. 16.
[AI] 데이터 불균형 맞추기 _SMOTE() 데이터 불균형 맞추기 필요한 라이브러리 임폴트 - 설치 안되어 있을 경우 pip install 검색 _ 구글에 pypi 검색해서 사이트에서 필요한 라이브러리 설치 명령어 찾기 from imblearn.over_sampling import SMOTE SMOTE() - 균형이 맞게 데이터 늘리거나 삭제하는 방법이 있는데, 일반적으로 늘리는 방법을 사용한다 - 늘리는 방법으로 코드를 작성해보자 # 변수에 저장하여 사용 sm = SMOTE(random_state=2) X, y = sm.fit_resample(X, y) 2024. 4. 16.
[AI] Training, Test용 데이터 나누기 _train_test_split() 트레이닝용과 테스트용 데이터 나누기 필요한 라이브러리 임폴트 from sklearn.model_selection import train_test_split train_test_split() - 데이터셋을 학습용과 테스트용으로 나눠준다 train_test_split(X, y, test_size= 0.2, random_state=3) # test_size= 0.2 테스트에 20% 사용하겠다 일반적으로 0.2 나 0.25 사용한다 # 각 변수에 저장(순서대로 입력) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= 0.2, random_state=3) 2024. 4. 16.