전복 나이 예측 AI 해커톤

정형 | NMAE

  • moneyIcon 상금 : 참가시 최소 50 XP, 특별상 데이콘 후드
  • 653명 마감

 

간단한 nn 0.14045

2022.03.29 11:46 1,659 조회 language

간단한 코드 공유해봅니다. 
물린다님의 feature추가를 보고 많이 배웠습니다. 
저는 음수의 값을 0으로 두었지만 다른 값으로 하는 것도 생각해볼 수 있을 것 같습니다.
감사합니다!

+ Diameter를 단축의 지름으로 보고 둘레와 넓이도 변수로 만들어 봤습니다.

코드
로그인이 필요합니다
0 / 1000
물린다
2022.03.29 14:08

순식간에 0.139대로 진입하셨군요. 축하드립니다. ^^
분발해야겠네요. 확 긴장감이 도는군요. ㅎㅎ

즈믄
2022.03.29 14:13

아닙니다.... 물린다님 아니셨으면 어림도 없는 점수입니다. 
저는 주어진 변수만 가지고 예측하려 했는데, 물린다님의 변수들의 관계를 생각해보고 새로운 변수를 만든다. 이 아이디어를 보고 많이 배웠습니다. 감사합니다!  

물린다
2022.03.29 14:34

자극받아서 새로운 시도(AutoML 돌리는 시간을 120초에서 180초로 변경) 했더니 성능이 더 좋아졌네요. 덕분입니다. ^^
전체무게 - (껍질무게+살무게+내장무게)로 하셨군요. 
저는 살무게를 껍질을 제외한 거라고 생각해서 살과 내장을 합한 문게라고 생각했었는데...
내일 즈음에 즈믄님 아이디어를 적용해서 한 번 돌려봐야겠습니다. 여러모로 고맙습니다. ^^

즈믄
2022.03.29 14:50

구글에 abalone dataset을 검색해보니 kaggle 및 다양한 페이지에서 변수를 설명해 주더라구요. 그래서 그 내용을 바탕으로 해봤습니다.
또 새로운 변수를 만들고 싶은데 또 다른 아이디어가 있으시다면 부탁드립니다 .... ㅎ

물린다
2022.03.29 15:04

저는 R 사용자라 Python 코드는 잘 안봐서.. ㅎㅎ
토크에서 언급한 무게비율=껍질을 제외한 무게/전체 무게
추가해 보세요. 성능 더 좋아지실 거예요. ^^

즈믄
2022.03.29 17:42

넵! 시도해보겠습니다!

동마스
2022.03.29 16:31

삭제된 댓글입니다

동마스
2022.03.29 16:31

좋은 정보 감사합니다 ㅎㅎ~

즈믄
2022.03.29 17:42

동마스님 봐주셔서 감사합니다~

승민이
2022.03.29 19:26

오와 저는 샘플수가 너무 적어 고려를 안했는데 이렇게 딥러닝이 효과적일 수 있군요
저도 영감을 받아서 꼭 도전해보겠습니다.

즈믄
2022.03.29 21:05

승민이님 도전해보셔서 좋은 결과 있으시길!

jujukwakwkak
2022.03.29 23:34

activation 'elu'라는 것이 있다는 걸 배웁니다.
좋은 코드 공유 감사합니다~~^^

즈믄
2022.03.30 09:08

relu, elu말고도 다양한 활성함수들이 많으니 공부해보시는 것도 좋을 것 같습니다!

소원을말해봐
2022.03.29 23:53

와... neural network로 풀고 있는데 결과가 원하는대로 안 나와서 고민이 많았는데 이 코드를 보고 많이 배웠습니다! 코드 공유해주셔서 감사합니다 :)

즈믄
2022.03.30 09:09

한대일님 제 코드를 봐주셔서 감사합니다!! 

lastdefiance20
2022.03.30 10:13

오 간단한 nn으로도 성능이 꽤 좋게 나요네요! 코드 공유 감사합니다! 그런데 제가 알기로는 Shucked Weight가 전복 무게라서 Viscra Weight를 포함하고 있는 무게로 아는데 (사람으로 치면 사람 몸무게 / 사람 내장 무게) 두가지를 동시에 빼면 내장 무게가 두번 빠지지 않나요?

foreign_body = train_X['Whole Weight'] - (train_X['Shucked Weight'] + train_X['Viscra Weight'] + train_X['Shell Weight']) 이렇게 새로운 feature을 정의해서 만들게되신 이유가 궁금합니다

즈믄
2022.03.30 10:53

안녕하세요 lastdefiance20님! 손동작 분류 때 도움 많이 받았습니다!
제가 전복 나이 예측 데이터를 구글에 찾아보니까 이미 유명한 데이터였습니다. 그래서 변수 설명을 보던 중 

Whole Weight : 전복 전체 무게 (whole abalone weight)
Shucked Weight : 껍질을 제외한 무게 (weight of meat only)
Viscra Weight : 내장 무게 (gut weight, after bleeding)
Shell Weight : 껍질 무게 (weight after being dried)

이런 내용을 보게 되었습니다.  Shucked Weight를 내장을 포함하는 것이 아닌 살로 보았습니다. 전복 먹을 때 내장을 제거하고 살만 먹듯 순살(?)로 보았습니다.
사실 데이콘 데이터에 외부에서 설명하는 변수 설명을 적용하는 게 말이 안되긴 합니다...
하지만 물린다님 아이디어인 새로운 변수를 만들기 위해 한번 적용해봤더니 점수가 조금 올랐습니다...ㅎ
foreign_body이란 변수를 만든 이유는 전복 손질 과정에서 나오는 흙이나 이물질, 핏물 등을 포함한 것입니다. 
일단 회귀 변수로 하나 넣긴 했지만 변수로써 역할은 아직 더 고민해봐야 할 것 같습니다!

lastdefiance20
2022.03.30 11:06

오 저도 Shucked Weight가 그냥 말 그대로 껍질만 제외한 무게인줄 알았는데, 껍질에다가 내장까지 제거한 무게일수도 있겠네요! shucked가 껍질을 제외한 이라는 뜻이라서 그냥 그대로 해석하고 넘어갔는데 이부분은 다시 분석해봐야 할 것 같네요... 충분히 합리적인 파생변수인거 같아요! 답변 감사합니다

즈믄
2022.03.30 11:08

넵! 남은 기간 화이팅입니다!!

즈믄
2022.03.30 10:53

삭제된 댓글입니다

coding2b
2022.03.30 12:06

혹시 딥러닝 층을 쌓으시는 기준이나 활성화 함수를 고르시는 기준이 있으실까요??

즈믄
2022.03.30 12:56

아직 배움이 부족해서 정확한 기준은 없습니다. 
활성화함수는 relu와 elu 둘 중 좋은 성능을 내는 것을 사용하고 있습니다. 

퉤홍
2022.03.31 20:47

좋은 코드 공유 감사합니다! randomforest로는한계가 있더군요... ㅠㅠ