일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- html
- 리버싱 워게임
- 백준 알고리즘
- webhacking
- abex crackme
- 머신러닝
- 회귀 수식
- 인공지능
- writeup
- C언어
- 보안
- 리눅스
- 컴퓨터 구조
- 웹
- 어셈블리어
- 넘파이
- 자바스크립트
- php
- MySQL
- 리액트
- sql injection
- 알고리즘
- 워게임
- 해킹
- webhacking.kr
- 리버싱
- CodeEngn
- 리버싱 문제
- 백준
- 웹해킹
- Today
- Total
인공지능 개발일지
[DACON] 잡케어 추천 알고리즘 데이터 분석 본문
안녕하세요! 저는 현재 동아대 추천 연구실에서 데이콘의 여러 대회를 나가며 데이터 분석을 공부 중입니다.
한동안 바쁘다는 핑계로 블로그 관리에 소홀했던 것 같습니다. 그런데 이제는 바쁜 것도 끝났고 해왔던 것을 정리하는 겸 다시 꾸준히 올리겠습니다.
다시 본론으로 돌아와서 작년에(벌써 작년 ㅠㅠ) 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이다.
'인공지능 > 데이터 분석' 카테고리의 다른 글
[데이터 분석] 넘파이(NumPy) 튜토리얼 겸 기초 총 정리 (feat. reshape에서 -1의 의미) (0) | 2022.05.01 |
---|---|
[Pandas] DataFrame 셀에 리스트(ndarray) 입력 / ValueError: Must have equal len keys and (0) | 2022.03.17 |
[Pandas] 데이터프레임 셀 반복문 빠르게 돌리는 법 / Pandas를 Numpy로 변환 (0) | 2022.02.28 |
[Python] Pandas DataFrame을 numpy 배열로 변환하는 방법 (0) | 2022.02.22 |
[Pandas] DataFrame의 mean() 특정 열 누락, 전체 평균 값 안 나올 때 해결법 (0) | 2022.01.24 |