인공지능/데이터 분석

[DACON] 잡케어 추천 알고리즘 데이터 분석

Prcnsi 2022. 1. 15. 19:14
728x90

안녕하세요! 저는 현재 동아대 추천 연구실에서 데이콘의 여러 대회를 나가며 데이터 분석을 공부 중입니다.

한동안 바쁘다는 핑계로 블로그 관리에 소홀했던 것 같습니다. 그런데 이제는 바쁜 것도 끝났고 해왔던 것을 정리하는 겸 다시 꾸준히 올리겠습니다.

 

AI 플랫폼 데이콘

 

다시 본론으로 돌아와서 작년에(벌써 작년 ㅠㅠ) 2학기가 종강할 무렵에 캐글의 한국판 버전인 "데이콘"이라는 좋은 플랫폼을 발견하고 여기서 저희 연구실 방향과 맞는 잡케어 추천 알고리즘 경진대회와  KNOW기반 직업 추천 알고리즘 경진대회 중 어느 대회를 나갈까 각각 대회의 데이터를 분석하다 결국에 KNOW기반 직업 추천 대회를 하기로 하고 현재 그 데이터를 더 깊게 분석하기로 하였습니다:)

 

그래도 한 김에 블로그에 올리면 좋겠다 싶어서 올려봅니다.

대회 참여하시는 모든 분들 파이팅 하세요!!

 

(늦었지만 새해 복도 많이 받으시고 tmi로 데이콘이 개인적으로 진짜 좋은 것 같습니다. 왜냐면은 데이터 분석하기 좋은 데이터들이 많고 무엇보다 코드 공유란이라고 대회마다 있는데 여기 코드를 참고해서 하는 게 실력 늘리는데 도움이 많이 됩니다. 그리고 추가적으로 대회 끝나면 올라오는 대회 풀이도 입문자 입장에서는 큰 도움이 되고요)

 

 

 


 

 

 

1. 파일 구조

데이터의 크기를 보면 train와 test 데이터를 약 10:1로 나누었고 속성 D, H, L의 데이터 개수가 비슷하지 않고 H:D:L의 크기가 2:5:10 비율로 다르게 존재한다.

인덱스 파일명 내용 크기

1 sample_submission 제출 예시 (46404, 2)
2 속성_D_코드 분류 코드 (1114, 5)
3 속성_H_코드 분류 코드 (294, 3)
4 속성_L_코드 분류 코드 (2025, 5)
5 test.csv 학습용 데이터 (46404, 35)
6 train.csv 테스트용 데이터 (46404, 34)

 

1.1 파일 간의 관계

test.csv에 d, h, l이 들어가는 칼럼은 속성_D, H, L_코드 파일과 대응된다. 이는 아래와 같이 표현할 수 있다.

2. 속성

이 대회의 데이터에서 속성 D, H, L과 A, B, C, D 등의 항목은 비식별화된 것이다. 그리고 파일명에 D, H, L은 train.csv의 파일의 소문자가 d, h, l, 이 들어간 칼럼명과 대응된다.

정리하면 아래와 같다.

 

2.1 속성 리스트

현재까지 파악한 바로는 속성은 순차적으로 A~H까지 있는데 이 중 세부 속성이 많은 D와 H에 L을 얹어서 파일로(속성_D, H, L_코드) 제공하였다.

회원 속성: A, B, C, D, E, F, G, H(8)

콘텐츠 속성: A, C, D, E, H, I, J, K, L, M(10)

(n: 세분류 코드, s: 소분류 코드, m: 중분류 코드, l: 대분류 코드)

 

 

 

3. 파일별 칼럼 분석

3.1 train.csv 분석

칼럼 인덱스 큰 범주 칼럼 이름 정의 데이터 샘플
1 사용자 식별 id 사용자 id 1
2 분류 d_l_match_yn 속성 D 대분류 매칭 여부 False
3 분류 d_m_match_yn 속성 D 세분류 매칭 여부 False
4 분류 d_s_match_yn 속성 D 코드 매칭 여부 False
5 분류 h_l_match_yn 속성 H 대분류 매칭 여부 True
6 분류 h_m_match_yn 속성 H 중분류 매칭 여부 False
7 분류 h_s_match_yn 속성 H 코드 매칭 여부 False
8 사용자정보 person_attribute_a 회원 속성 A 2
9 사용자정보 person_attribute_a_1 회원 속성 A 하위 속성 1 0
10 사용자정보 person_attribute_b 회원 속성 B 2
11 사용자정보 person_prefer_c 회원 선호 속성 C 2
12 사용자정보 person_prefer_d_1 회원 선호 속성 D 1번 683
13 사용자정보 person_prefer_d_2 회원 선호 속성 D 2번 1086
14 사용자정보 person_prefer_d_3 회원 선호 속성 D 3번 662
15 사용자정보 person_prefer_e 회원 선호 속성 E 2
16 사용자정보 person_prefer_f 회원 선호 속성 F 1
17 사용자정보 person_prefer_g 회원 선호 속성 G 1
18 사용자정보 person_prefer_h_1 회원 선호 속성 H 1번 258
19 사용자정보 person_prefer_h_2 회원 선호 속성 H 3번 263
20 사용자정보 person_prefer_h_3 회원 선호 속성 H 2번 49
21 컨텐츠정보 contents_attribute_i 컨텐츠 속성 I 1
22 컨텐츠정보 contents_attribute_a 컨텐츠 속성 a 3
23 컨텐츠정보 contents_attribute_j_1 컨텐츠 속성 J 하위 속성 1 5
24 컨텐츠정보 contents_attribute_j 컨텐츠 속성 J 1
25 컨텐츠정보 contents_attribute_c 컨텐츠 속성 C 1
26 컨텐츠정보 contents_attribute_k 컨텐츠 속성 K 2
27 컨텐츠정보 contents_attribute_l 컨텐츠 속성 L 1611
28 컨텐츠정보 contents_attribute_d 컨텐츠 속성 D 278
29 컨텐츠정보 contents_attribute_m 컨텐츠 속성 M 1
30 컨텐츠정보 contents_attribute_e 컨텐츠 속성 E 4
31 컨텐츠정보 contents_attribute_h 컨텐츠 속성 H 263
32 부가 정보 person_rn 사용자번호 394058
33 부가 정보 contents_rn 컨텐츠번호 236572
34 부가 정보 contents_open_dt 컨텐츠 열람 일시 2020-12-17 5:42:53 AM
35 결과값 target 컨텐츠 사용 여부 1

 

3.2 train.csv 칼럼명 분석

먼저 이 파일의 큰 범주 칼럼에서 “분류”가 뜻하는 것은 대분류, 중분류, 세분류, 분류 중에서 어디 속하는지 명시하는 것이다. 그리고 아래와 같은 형식을 띤다.

 속성_분류_match_yn(yes or no)

 

위 형식에 맞춰 d_l_match_yn를 이해하면 속성 D(d_)의 대분류(l_)와 매치되는지 아닌지(match_yn)로 해석할 수 있다.

그래서 최종적으로 아래와 같은 예시가 있을 때 이의 뜻은 153번 회원은 속성 D이다.

 

728x90