본문 바로가기
[인공지능]

[TensorFlow] TIPS /HACKS

by Hevton 2020. 12. 15.
반응형

 

1. 변수(컬럼) 타입 확인 :

- 데이터.dtypes

 

2. 변수를 범주형으로 변경 :

- 데이터['컬럼명'].astype('category')

 

3. 변수를 수치형으로 변경 :

- 데이터['컬럼명'].astype('int')

- 데이터['컬럼명'].astype('float')

 

4. NA 값의 처리 : 

- NA 갯수 체크 : 데이터.isna().sum()

- NA 값 채우기 : 데이터['컬럼명'].fillna(숫자값)

- 숫자값 ex ) 평균값 = 데이터['컬럼명'].mean()

 

 

+ 대괄호 한번쓰던 두번쓰던 상관없더라. 둘은 기능적으로는 차이없으나 출력형식만 조금 다른 것 같음.

-> 개별 칼럼을 선택할 때에는 대괄호를 한 번만 사용하면 되요. 두 번씩 사용한 부분은 여러 개의 칼럼을 동시에 선택하여 새로운 DataFrame을 구성할 때에 사용합니다. 결과를 가만히 들여다 보면 차이점을 알 수 있으실 거에요.

opentutorials.org/course/4570/28989

 

5. 성능 높이는 방법 (BatchNomalization 사용)

 

기존 코드 (실습 2)

# 2. 모델의 구조를 만듭니다
X = tf.keras.layers.Input(shape=[13])
H = tf.keras.layers.Dense(8, activation='swish')(X)
H = tf.keras.layers.Dense(8, activation='swish')(H)
H = tf.keras.layers.Dense(8, activation='swish')(H)
Y = tf.keras.layers.Dense(1)(H)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')

여기서 Dense와 Activation을 분리할 수 있다.

X = tf.keras.layers.Input(shape=[13])
 
H = tf.keras.layers.Dense(8)(X)
H = tf.keras.layers.Activation('swish')(H)
 
H = tf.keras.layers.Dense(8)(H)
H = tf.keras.layers.Activation('swish')(H)
 
H = tf.keras.layers.Dense(8)(H)
H = tf.keras.layers.Activation('swish')(H)
 
Y = tf.keras.layers.Dense(1)(H)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')

둘은 같은 코드이다. 분리한 이유는 Dense와 Activation 사이에 BatchNormalization을 넣기 위함이다.

X = tf.keras.layers.Input(shape=[13])
 
H = tf.keras.layers.Dense(8)(X)
H = tf.keras.layers.BatchNormalization()(H)
H = tf.keras.layers.Activation('swish')(H)
 
H = tf.keras.layers.Dense(8)(H)
H = tf.keras.layers.BatchNormalization()(H)
H = tf.keras.layers.Activation('swish')(H)
 
H = tf.keras.layers.Dense(8)(H)
H = tf.keras.layers.BatchNormalization()(H)
H = tf.keras.layers.Activation('swish')(H)
 
Y = tf.keras.layers.Dense(1)(H)
model = tf.keras.models.Model(X, Y)
model.compile(loss='mse')

성능이 좋아진다. loss가 더 낮게까지 떨어진다는 것을 볼 수 있다. 이론은 공부필요.

 

 

6. a컬럼이 b 컬럼에게 영향을 주어서 독립/종속변수가 되었고, b 컬럼이 c 컬럼에게 영향을 주어서 독립/종속변수 관계일 때엔
a로 인한 c의 결과를 얻고 싶은데 어떻게 독립변수 종속변수를 구성해야하나요?

-> 하나의 표에서 독립변수, 종속변수는 결정이 되어야 합니다. 양쪽에 모두 사용될 가능성이 있는 칼럼의 경우에도 독립변수로 사용할지, 종속변수로 사용할지 선택을 해야합니다. a, b 를 독립변수로 c를 종속변수로 사용해서 학습을 하거나 b가 불필요하다고 생각되면 b를 배제하고, a를 독립변수로 c를 종속변수로 사용해서 학습을 하면 됩니다. ( opentutorials.org/module/4966/28988 )

 

 

 

출처 - opentutorials.org/

반응형