도배 하자 유형 분류 AI 경진대회

알고리즘 | 비전 | 분류 | MLOps | Weighted F1 Score

  • moneyIcon 상금 : 1,000 만원
  • 2,093명 마감

 

제출파일 0점 관련

2023.04.16 05:23 2,903 조회

무슨이슈때문인지.. 제출파일이 최근 3일동안 계속 0점으로 처리되네요..

submit.to_csv('./out/submit_10.csv', index=False, encoding='utf-8')

위 코드와 같이, 제출파일이 utf-8이어야하는 부분 고려해서 작성했었고, 기존에는 잘됬었는데 갑자기 말썽이네요..

제가 Mac이라서 그런지 잘모르겠는데.. 혹시 해결하신분 있으신가요?ㅠㅠ


참고로, 아래사진에서 Default - 쉼표로 구분된 값 (.csv)로 해도 안되고, CSV UTF-8(쉼표로 분리) (.csv)로 해도 안되네요..

몇일동안 삽질만하고있는거같아서 답답하네요..

로그인이 필요합니다
0 / 1000
KJC
2023.04.16 12:00

저도 어제부터 0점에 가깝게 나오고 있어서 답답하네요

KHJ
2023.04.18 00:10

삭제된 댓글입니다

KJC
2023.04.18 00:35

해결했습니다 ㅎㅎ

beomjuki
2023.04.18 21:43

엇 혹시 어떻게 해결하셨나요ㅠㅠ

KJC
2023.04.18 21:55

저의 경우 training code와 inference code가 따로있는데 폴더 리스트를 class 명으로 뒀었고 이를 추출하는 과정이 reproducible하지 않았습니다.

beomjuki
2023.04.18 22:01

딱 0점이 아니신가보군요ㅠ
저는 맥북이어서 그런지, 딱 0점이 나와서 이럴수 있나 싶습니다ㅠ

KJC
2023.04.18 22:02

네 0.0002 이런 식으로 나와서.. 전 윈도우에서 코랩 사용했었습니다.

pc론못하겠다
2023.04.16 13:57

저도 colab에서 베이스라인 코드대로 생성해서 제출하는데, 계속 0점으로 나와요, 
sample_submission.csv를 그대로 제출하면 0이 아닌 점수가 나오고요
몇일째 이러고 있어요.. 누가 이유를 아실까요?

KHJ
2023.04.18 00:05

아마 포맷문제일 가능성이 커보이네요..

orangeblue
2023.04.16 17:00

저는 코렙에서 진행하는데 label의 글씨(encoding 규격)가 달라서 그런 것 같아요. 
LabelEncoder로 라벨을 바꿔주셨다면 학습하신 후에 해당 글씨에 대한 후처리를 진행해주신 다음에 제출하시면 될 것 같아요.
제출하시기 전에 예컨대  if label == "훼손": label = "훼손"(직접 타이핑한 글자, **주의 라벨 복붙 하지 마세요!!) 이런 식으로 바꿔주신 다음에 제출해보셔요.  

김준모다
2023.04.17 15:59

문제 해결하셨나요?

KHJ
2023.04.18 00:12

LabelEncoder 쓴걸 inverse_transoform 안하고 손코딩 한 뒤에 to_csv에 encoding='utf-8'추가해서 내니까 문제가 안생기네요. 
이거때문에 몇일을날린지... 허무하네요;

kh3000
2023.04.19 17:29

코드 공유 해주실 수 있으실까요 ,,!

최정명
2023.04.19 20:02

submit.to_csv('submit.csv', index=False, encoding='utf-8') 을 말씀하시는 것 같네요

KHJ
2023.04.20 17:54

df[df.label=='오염']을 하게되면 실제로 있음에도 데이터가 안뜰거에요!
제 예상으로는 제가 입력한 '오염'과 df.label에 있는 '오염'은 우리가 보기엔 똑같은 한글이지만 인코딩이 달라서 그런 것 같습니다.
(예시로, 제가 입력한 '오염'은 utf-8이고 df.label에 있는 '오염'은 'cp949')
따라서, read_csv를 할 때 encoding을 넣어주는 것도 하나의 방법이 될 수 있을 것 같습니다.

저는 LabelEncoder를 사용해서 0,1,... 으로 변환한 뒤에, 나중에 le.inverse_transform을 사용하지 않고 아래의 함수를 사용해서 역변환해줬습니다.

아래의 함수 참조 부탁드립니다. 
def label_decoder(label):
    new_label =[
        '가구수정' if l==0 else
        '걸레받이수정' if l==1 else
        '곰팡이' if l==2 else
        '꼬임' if l==3 else
        '녹오염' if l==4 else
        '들뜸' if l==5 else
        '면불량' if l==6 else
        '몰딩수정' if l==7 else
        '반점' if l==8 else
        '석고수정' if l==9 else
        '오염' if l==10 else
        '오타공' if l==11 else
        '울음' if l==12 else
        '이음부불량' if l==13 else
        '창틀,문틀수정' if l==14 else
        '터짐' if l==15 else
        '틈새과다' if l==16 else
        '피스' if l==17 else
        '훼손' if l==18 else
        'NaN' for p in label
    ]
    return np.array(new_label)

KHJ
2023.04.20 17:54

참고로, [(i,label) for i,label in enumerate(le.classes_)]로 본인의 클래스가 함수와 매칭이 잘 되어있는지 확인 후 사용하셔야합니다!!

쇠질하는코린이
2023.05.02 19:46

정말 정말 감사합니다!

목쑤
2023.05.08 14:24

덕분에 쉽게 문제 해결하였습니다 감사합니다!!

kh3000
2023.04.19 17:29

삭제된 댓글입니다

상어인형
2023.05.09 16:31

혹시 이 문제 관련된 공식 답변 받을 수 없을까요.. 일주일째 온갖 방법 동원해서 고쳐볼라 했는데 해결이 안됩니다

아르키메데스
2023.05.27 12:56

한고쿠 대회는 또 이런 게 있구나 흠냐