이진논리회귀와 전처리 실습
from sklearn.preprocessing import StandardScaler
표준화 전처리에 필요한 싸이킷런의 StandardScaler 사용
# 전처리 : 사용하지 않는 데이터 지우고, 필요한 데이터만 추출하기
df = pd.read_csv('train_and_test2.csv', usecols=[
'Age', # 나이
'Fare', # 승차 요금
'Sex', # 성별
'sibsp', # 타이타닉에 탑승한 형제자매, 배우자의 수
'Parch', # 타이타니게 탑승한 부모, 자식의 수
'Pclass', # 티켓 등급 (1, 2, 3등석)
'Embarked', # 탑승국
'2urvived' # 생존 여부 (0: 사망, 1: 생존)
])
필요한 데이터만 뽑아내는것도 전처리의 일부이다.
print(df.isnull().sum()) # 비어있는 데이터가 있는지 확인. isnull의 갯수
print(len(df)) # 지우기 전 데이터셋 길이
df = df.dropna() # 지워주기 # .dropna()
print(len(df)) # 지운 후
전처리 : 비어있는 값 확인 후 지워주기.
x_data = df.drop(columns=['2urvived'], axis=1) # 'survived'는 y데이터로 들어가기때문에 제외
x_data = x_data.astype(np.float32) # astype : 열의 요소의 dtype을 변경하는함수
x_data.head(5)
y 데이터로 들어갈 survived 제외 시키고 저장.
scaler = StandardScaler() # StandardScaler 사용한다
x_data_scaled = scaler.fit_transform(x_data) # fit_transform method 호출 # x 데이터 단위 맞춰주기 위해서
print(x_data.values[0]) # 표준화 전
print(x_data_scaled[0]) # 표준화 후
standardization : StandardScaler() 사용.
model = Sequential([
Dense(1, activation='sigmoid') # sigmoid function 사용 # linear regression 실행 후 sigmoid 실행
])
model.compile(loss='binary_crossentropy', optimizer=Adam(lr=0.01), metrics=['acc']) # 손실함수 binary_crossentropyh # matrics: loss 값만 보기 어려울때, accuracy 정확도(0~1)
model.fit(
x_train,
y_train,
validation_data=(x_val, y_val), # 검증 데이터를 넣어주면 한 epoch이 끝날때마다 자동으로 검증
epochs=20 # epochs 복수형으로 쓰기!
)
모델 학습.
다항논리회귀 실습
from sklearn.preprocessing import OneHotEncoder
다항논리회귀 출력값을 분류할 OneHotEncoder 임포트
encoder = OneHotEncoder() # 사이킷런의 OneHotEncoder() 클래스 사용
y_data_encoded = encoder.fit_transform(y_data).toarray() # toarray()
print(y_data.values[0]) # encoding 전 # [1.]
print(y_data_encoded[0]) # encoding 후 # [1. 0. 0.]
출력값을 OneHotEncoding 작업.
model = Sequential([
Dense(3, activation='softmax') # 출력 3가지, # 다항논리회귀이므로 softmax함수 사용
])
model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=0.02), metrics=['acc']) # 다항논리회귀이므로 categorical_crossentropy 손실함수
model.fit(
x_train,
y_train,
validation_data=(x_val, y_val), # 검증 데이터를 넣어주면 한 epoch이 끝날때마다 자동으로 검증
epochs=20 # epochs 복수형으로 쓰기!
)
다항논리회귀 모델 학습시키기.
'AI 웹 개발 과정 > 실전 머신러닝' 카테고리의 다른 글
07. CNN / 전이 학습 (0) | 2022.05.16 |
---|---|
06. 3주차 실습 - 딥러닝 XOR / MNIST 데이터셋 분류 (0) | 2022.05.16 |
03. 논리 회귀 / sigmoid / softmax / crossentropy / 전처리 (정규화, 표준화) (0) | 2022.05.14 |
02. 1주차 실습 : kaggle / tensorflow & keras / cost function / optimizer / learning rate (0) | 2022.05.13 |
01. 머신러닝 / 회귀와 분류 / 손실 함수 / 데이터셋 (1) | 2022.05.12 |