본문 바로가기

개발일지

(10)
대회 우수상 수상 한국경영과학회와 벡스인텔리전스가 주최하는 2023 DMC 빅데이터아이디어오디션 대회에 참가했다. 2023년 9월부터 시작하여 11월에 수상하였다. 유아동 그림 분석 알고리즘을 개발하는 것인데 4명과 함께 팀을 이루어 참여했다. 과정 이미지 데이터를 라벨링하여 전처리하고 클래스를 만들어 분류했다. 이미지 객체 모델인 yolo모델을 사용하여 유아동 그림 데이터를 18개의 요소로 분류하는 ai알고리즘을 개발했다. 예측된 이미지에서 좌표를 추출하여 좌표를 가지고 측정하였다. 최종적으로 요소별 정확도를 판단하고 모델을 개발하여 발표장에서 발표하였다. 시상식은 KAIST서울캠퍼스에서 하였고 우리는 우수상을 받았다. 이미지 데이터를 가지고 공부만 해봤지 실제로 이미지 데이터를 가지고 예측 대회에 나간 것은 처음이었다..
대회일지_발표 저번 대회 참여했던 것을 정리하여 학교에서 우리 팀이 발표를 하게 됐다. 그래서 팀원들과 발표 준비를 하며 블로그 포스팅 준비까지 하고 있다. 블로그 포스팅이 완성되면 올리겠다! 정리를 마크다운으로 하며 설명과 함께 모든 사람들이 이해할 수 있게끔 정리 중이다. 시간이 좀 지났지만 그래도 다시 한번 정리하고 발표할 수 있는 기회가 우리 팀에게 주어져서 좋다.
대회일지_피쳐엔지니어링 대회에서 내가 맡은 피쳐엔지니어링 부분을 정리해봤다! 피쳐엔지니어링 1. 결측치 처리 결측치에서 시간이 많이 소요됐다. 결측치를 처리해주면서도 힘들었던 게 설명이 뭔가 명확하지 않아서 스플라인 보간법으로 채워줄지 0으로 해줘야 할지 고민을 많이 했다. 결국은 기존 데이터들의 예측에 피해가 안 가게 결측값들을 윗 값과 아랫 값을 가져와서 채워줬다. train.fillna(method='bfill',inplace=True) train.fillna(method='ffill',inplace=True) inplace=True는 변수를 지정하지 않아도 바로 train에 적용이 된다는 의미이다. 0으로 채워주면 예측에 방해가 됐고, drop을 해줄 수도 없는 상황이었다. 스플라인보간법을 쓰려고 했지만 무한 값이 나오..
대회일지_파생변수 대회를 하며 만든 파생변수 나만의 인사이트를 도출하여 새로운 피쳐들을 추가해줬다. 새로운 피쳐를 만드는 일은 정말 머리가 아팠다. 창의력과 연관성을 함께 봐줘야 해서 언제나 제일 힘든 작업인 거 같다. 그래도 새로운 피쳐를 만들었는데 그 피쳐가 예측력에 도움이 되었을 때의 행복감은 최고다ㅎㅎ 피쳐는 총 5개를 추가해줬다. 그리고 요일과 년도 칼럼도 추가해줬다. 요일추가 우선 날짜를 '년도-월-일' 이런 식인 칼럼(datetime)을 추가하여 이 칼럼을 이용하여 구했다. 구한 요일을 수치화해줬다. train['datetime'] = train['datadate'].apply(lambda x: pd.to_datetime(str(x), format='%Y-%m-%d')) train['week_day'] = t..
대회일지 2022.10.05 같은 동아리 팀원들과 함께 스터디를 구성하여 대회에 참여한 이후 대회 준비 과정을 적으려고 한다. 9월 한 달을 총 달렸다. 팀원들과 밤을 새우며 대회를 준비했다. 대회에 참가하여 좋은 점수를 얻기 위해 공부하고 이해하고 노력했다는 것만으로도 좋은 경험이었다. 실력을 올릴 수 있었던 기회였고, 대회를 참가하는 것이 실력을 올리는 최고의 방법이라고 생각한다. 현재는 대회가 끝났지만, 대회를 준비하며 분석할 때 중요했던 부분이나 기억에 남는 것, 많이 고민했던 부분(오류 등)에 대해 정리하고자 한다. 이번 대회의 데이터가 깔끔하지 않아서 준비하기가 너무 힘들었고 설명도 적어서 지금까지 해본 대회 중에 최고로 힘들었던 대회였다. 우선 나는피쳐엔지니어링 부분을 맡았고 나만의 인사이트를 도출하..
대회_개발일지 2022.09.19 같은 동아리 팀원들과 함께 스터디를 구성하여 대회에 참여했다. 9월부터 시작하여 한 달간을 달린다. 최종 제출을 9월 30일! 그 안에 예측 대회 분석을 끝내야 하는데 너무 어렵다. 지금까지는 못 본 예측 데이터들이다. 예측해야 하는 데이터를 만들어내야 해서 어렵고 데이터 양도 많아서 그 많은 데이터를 사용하고 이해하기도 처음에는 어려웠다. 현재 나는 피쳐엔지니어링과 피쳐를 추가하고 있다. 전처리 부분도 데이터가 많고 특이한 데이터가 있어서 전처리하기 힘들다.. 가장 힘든 부분은 역시 나만의 인사이트를 만드는게 힘든 거 같다. 나만의 인사이트로 새로운 피쳐를 만들어내서 그것이 분석에 중요한 부분을 끼칠 것인가를 알아내기가 쉽지 않다. 피쳐를 만들어도 중요하지않거나 예측을 더 악화시키거..
개발일지4 학교에서 진행한 데이콘 스쿨에서 2022년 6월 29일부터 2022년 8월 8일까지의 교육 중 4번째(마지막) 대회의 일지를 쓰겠다. 마지막 대회는 와인 품질 분류 예측 대회였다. 지금까지 대회와는 다르게 회귀가 아닌 분류 문제였기에 더 기대가 됐다. 분류를 예측하는 방법에 대한 많은 배움을 얻고 가야겠다고 생각했다. 교육시간에 분류 대회라서 그런가 새로운 부분들을 많이 배웠다. 분류 문제에 이용할 수 있는 하드보팅, 소프트보팅을 배웠다. 하드보팅은 pred['pred'] = pred.mode(axis=1)[0].astype(int) 소프트보팅은 pred0 = models[0].predict_proba(test[features]) pd.DataFrame(np.argmax(np.array(pred), ax..
개발일지3 학교에서 진행한 데이콘 스쿨에서 2022년 6월 29일부터 2022년 8월 8일까지의 교육 중 세 번째 대회의 일지를 쓰겠다. 세 번째 대회는 버스 운행 시간 예측 대회였다. next_arrive_time : 다음 정류장에 도착할 때까지 걸린 시간 (단위:초)를 예측하는 대회이다. 이번 대회는 인사이트를 도출하기에 어려운 대회로 느껴졌다. 많은 인사이트를 만들어내려고 노력했지만 다 실패를 했다.. 실패한 나만의 인사이트들을 적어보겠다. 나만의 인사이트 가설1: 요일에 따른 버스 운행 시간이 다르지 않을까? 가설 1은 낮은 상관관계와 낮은 안 좋은 RMSE로 실패 가설 2: 그래도 주말과 평일의 차이가 있지 않을까? bar형태로 그래프를 그려본 결과, 주말과 평일의 버스 도착시간 평균은 거의 비슷했다. -..