상세 컨텐츠

본문 제목

데이콘 자율주행 센서의 안테나 성능 예측 AI 경진대회 리뷰(1) - 공부진행방식소개, 베이스라인코드, 데이터 보기

프로그래밍/경진대회(데이콘, 캐글)

by 아싸호랑나비 2022. 9. 4. 16:12

본문

딥러닝, 머신러닝 공부를 할때 원래는 청경채 대회를 시작해서 모든대회를 참여하는식으로 공부할예정이었지만

단순히 대회참여하는것으로 내 실력이 늘지는 않는것같아 

상위권분들의 코드를 볼수있는 이미 끝난 가장 최신의 대회부터 또 차례대로 리뷰하는 시간을가지려고한다

내 보다 잘한 다른사람의 코드를 보며 배우고싶은데 대회특성상 시간을 길게 주는 관계로

매번 대회끝날때까지 기다릴수는 없는 노릇이다 

https://dacon.io/competitions/official/235927/overview/description

 

자율주행 센서의 안테나 성능 예측 AI 경진대회 - DACON

분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.

dacon.io

공부 진행방식

배경과 데이터를 훑어보고 제공된 베이스라인코드를 확인할것이다 이를 바탕으로

최선의 제출을 해본뒤 결과를 확인한다

다른사람의 코드를 바탕으로 내코드와 비교하며 이 사람은 어떤식으로 접근했나를 확인한다

배경소개

radar란?

자율주행 차에 있어 차량과의 거리, 상대속도, 방향등을 측정해주는 필수적인 센서 부품

목표

공정 데이터를 활용하여 radar센서의 안테나 성능 예측을 위한 AI 모델 개발

 

데이터 살펴보기

y값은 성능 측정 결과이다 단 하나가 아니다 무려 15개이다

성능보다는 사실상 불량 센서를 잡는 느낌이다

 

피쳐 설명을보니 잡음비 피쳐들이 많았다 약간 잘못된 정보를 보내는 비율이 아닐까? 정도로 생각했다

 

x값은 공정과정 데이터이다

예를들어 스크류 삽입 깊이(이게 성능에 영향을 미치는건가? 싶지만), 핀 치수, 본드 소요량등등 57개의 피쳐로 이루어져있다

 

데이터 감상후기

  • 확실히 공정과정데이터를 가지고 이 radar의 성능을 예측할수있다면, 불량 radar가 실제 차량에 사용되는일도 막을수있으므로 의미있는 주제라고 생각했다
  • target이 하나가 아니고 여러개이다
  • 나한테는 공정과정에 관한 도메인 지식이 없다

베이스라인 코드 확인(처음보는 코드들은 구글링 해보았다)

filter를사용하여 데이터와 타겟을 분리시켜준다

train_x = train_df.filter(regex='X') # Input : X Featrue
train_y = train_df.filter(regex='Y') # Output : Y Feature

filter()를이용해 컬럼을 분리할수있다 regex는 파라미터중의 하나이다

regex는 정규표현식을 뜻하며 regex='X'의 정확한 의미는 아직 잘 모르겠다

X포함? X로시작? 일단은 넘어간다

 

FIT

LR = MultiOutputRegressor(LinearRegression()).fit(train_x, train_y)

머신러닝으로 진행한것같은데 확실히 문법이 이해하기 쉬웠다

 

PREDICT

test_x = pd.read_csv(path+'/test.csv').drop(columns=['ID'])

ID 빼주고

preds = LR.predict(test_x)
print('Done.')

예측

 

SUBMIT

submit = pd.read_csv(path+'/sample_submission.csv')

sample submit 파일열고

for idx, col in enumerate(submit.columns):
    if col=='ID':
        continue
    submit[col] = preds[:,idx-1]
print('Done.')

ID를 제외한 컬럼에, 컬럼별로 데이터를 넣어준다

submit.to_csv(path+'/submit.csv', index=False)

제출물 저장

 

제출해보니 1.9746점이 나왔다

 

이제(다른사람의 코드도움없이) 나만의 제출물을 만들어보자

관련글 더보기