관리 메뉴

솜씨좋은장씨

데이콘 X AI 프렌즈 온도추정 경진대회 도전 1회차 본문

DACON/AI프렌즈 시즌1 온도 추정 경진대회

데이콘 X AI 프렌즈 온도추정 경진대회 도전 1회차

솜씨좋은장씨 2020. 3. 12. 16:58
728x90
반응형

 

 

[공공] AI프렌즈 시즌1 온도 추정 경진대회

출처 : DACON - Data Science Competition

dacon.io

데이콘! 온도추정 경진대회 도전 1회차!

오늘은 저번에 분석해본 결과를 바탕으로 한번 도전해보았습니다.

 

DACON AI프렌즈 시즌1 온도 추정 경진대회 데이터 이해하고 분석해보기 (feat. DACON YOUTUBE)

3월 ! 이번 달은 지난 금융문자분석경진대회와 원자력 발전소 상태판단 알고리즘 경진대회에 이어 DACON과 AI프렌즈가 함께 개최한 AI프렌즈 시즌 1 온도 추정 경진대회에 참가해보려합니다. 이 대회는 시즌 3까..

somjang.tistory.com

지난 분석을 통해 센서 측정데이터와 기상청의 기온데이터의 상관관계가 높다는 것을 알게되었습니다.

 

오늘은 이를 바탕으로 결과를 내보려고 합니다.

 

먼저 기온데이터와 센서 데이터를 그래프로 시각화 해보았습니다.

plt.figure(figsize=(20, 10))
plt.plot(train.loc[:, ['X00', 'X07', 'X28', 'X31', 'X32', 'Y18']].dropna())
plt.legend(['X00', 'X07', 'X28', 'X31', 'X32', 'Y18'])

X00, X07, X28, X31, X32 (기온) / Y18 (센서) 데이터 그래프 시각화

 

plt.figure(figsize=(40, 20))
plt.plot(train.loc[:, ['X00', 'X07', 'X28', 'X31', 'X32', 'Y00', 'Y01', 'Y02', 'Y03', 'Y04', 'Y05', 'Y06', 'Y07', 'Y08', 'Y09', 'Y10', 'Y11', 'Y12', 'Y13', 'Y14', 'Y15', 'Y16', 'Y17']].dropna())
plt.legend(['X00', 'X07', 'X28', 'X31', 'X32', 'Y00', 'Y01', 'Y02', 'Y03', 'Y04', 'Y05', 'Y06', 'Y07', 'Y08', 'Y09', 'Y10', 'Y11', 'Y12', 'Y13', 'Y14', 'Y15', 'Y16', 'Y17'])

X00, X07, X28, X31, X32 (기온) / Y00 ~ Y17 (센서) 데이터 그래프 시각화

plt.figure(figsize=(40, 20))
plt.plot(train.loc[4000:, ['X00', 'X07', 'X28', 'X31', 'X32', 'Y00', 'Y01', 'Y02', 'Y03', 'Y04', 'Y05', 'Y06', 'Y07', 'Y08', 'Y09', 'Y10', 'Y11', 'Y12', 'Y13', 'Y14', 'Y15', 'Y16', 'Y17']].dropna())
plt.legend(['X00', 'X07', 'X28', 'X31', 'X32', 'Y00', 'Y01', 'Y02', 'Y03', 'Y04', 'Y05', 'Y06', 'Y07', 'Y08', 'Y09', 'Y10', 'Y11', 'Y12', 'Y13', 'Y14', 'Y15', 'Y16', 'Y17'])

X00, X07, X28, X31, X32 (기온) / Y00 ~ Y17 (센서) 데이터 일부 그래프 시각화

 

그래프로 그려보니 기온데이터와 센서의 데이터가 비슷한 형태를 띄는 것을 볼 수 있었습니다.

 

일단 Y18의 데이터 3일치와 기상청 데이터 3일치를 활용해서 결과를 내보았습니다.

data = train.loc[:, ['X00', 'X07', 'X28', 'X31', 'X32', 'Y18']].dropna()
data

X_train = data.loc[:, ['X00', 'X07', 'X28', 'X31', 'X32']]
Y_train = data['Y18']

X_train.shape, Y_train.shape

 

첫번째 제출

from keras.models import Sequential
from keras.layers import Dense
model = Sequential()
model.add(Dense(1, input_dim=5, activation='relu'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=20, batch_size=32, validation_split=0.1)

:

X_test = test.loc[:, ['X00', 'X07', 'X28', 'X31', 'X32']]
X_test.shape

predict = model.predict(X_test)
predict_labels = []

for i in range(len(predict)):
  predict_labels.append(predict[i][0])

ids = list(test['id'])
print(len(ids))

submission_dic = {"id":ids, "Y18":predict_labels}
submission_df = pd.DataFrame(submission_dic)
submission_df.to_csv("dacon_temp_sub_01_1.csv", index=False)

결과

acc가 0.0000에 loss가 198로 폭발하는 결과가 나왔습니다.

 

두번째 제출

model = Sequential()
model.add(Dense(1, input_dim=5, activation='relu'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=20, batch_size=64, validation_split=0.1)

:

predict = model.predict(X_test)
predict_labels = []

for i in range(len(predict)):
  predict_labels.append(predict[i][0])

ids = list(test['id'])
print(len(ids))

submission_dic = {"id":ids, "Y18":predict_labels}
submission_df = pd.DataFrame(submission_dic)
submission_df.to_csv("dacon_temp_sub_01_2.csv", index=False)

결과

 

세번째 제출

model = Sequential()
model.add(Dense(1, input_dim=5, activation='relu'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, Y_train, epochs=20, batch_size=16, validation_split=0.1)

:

predict = model.predict(X_test)
predict_labels = []

for i in range(len(predict)):
  predict_labels.append(predict[i][0])

ids = list(test['id'])
print(len(ids))

submission_dic = {"id":ids, "Y18":predict_labels}
submission_df = pd.DataFrame(submission_dic)
submission_df.to_csv("dacon_temp_sub_01_3.csv", index=False)

결과

 

1회차 결과

다음에는 상관관계가 낮았던 데이터도 활용해보고자 합니다.

 

읽어주셔서 감사합니다!

 

 

[공공] AI프렌즈 시즌1 온도 추정 경진대회

출처 : DACON - Data Science Competition

dacon.io

Comments