SlideShare uma empresa Scribd logo
1 de 126
Baixar para ler offline
강남 출근길에 정자/판교역
내릴 사람 예측하기
최규민
를 하기위한 탐색적 데이터 분석
최규민 소개
개발을 즐기는 개발자입니다.
추천시스템도 만들어보고패킷 분석도 해봤고 데이터 탐색 좋아하여
직장인 하루 출퇴근 시간
참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1
동아닷컴 2017-07-17 기사
직장인 하루 출퇴근 시간
참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1
동아닷컴 2017-07-17 기사
1일 = 101 min
1주 = 505 min
1년 = 26,260 min
= 437 hour
= 54.7 work day
(8h/day)
최규민 하루 출퇴근 시간
참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1
1일 = 120 min
1주 = 600 min
1년 = 31,200 min
= 520 hour
= 65 work day
(8h/day)
동아닷컴 2017-07-17 기사
동천역(수지) → 잠실역
직장인 하루 출퇴근 시간
참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1
• 1일 = 101분
• 1주 = 505분
• 1년 = 26,260분
지하철에서 생산성을
올리는 방법은?
참조 : http://www.alextip.com/?p=2078
직장인 하루 출퇴근 시간
참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1
• 1일 = 101분
• 1주 = 505분
• 1년 = 26,260분
지하철에서 생산성을
올리는 유일한 방법은?
참조 : http://www.alextip.com/?p=2078
직장인 하루 출퇴근 시간
참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1
• 1일 = 101분
• 1주 = 505분
• 1년 = 26,260분
지하철에서 생산성을
올리는 유일한 방법은?
일단 앉아라!!
참조 : http://www.alextip.com/?p=2078
‘지하철 자리앉기’ 검색하면?
‘지하철 자리앉기’ 검색하면?
!
다양한 자리앉기 꿀팁들!!
!
!
종로 3가에선
할머니/할아버지!관찰력
환승역을 노려라.
!
행선지를 알수 없는 패션 패스
책보는 사람 패스,
자는 사람 패스,
짐을 들고 있는사람
두리번 거리는 사람
자다가 깨어난 사람
백팩을 등에 맨사람, 카드 지갑 꺼내는 사람
무조건 좌석앞에
자리 잡기
경쟁자가 있는 곳을 피하라
360’를 주시하라
내리는 사람
길을 터주어라
반반씩 걸쳐서
자리 확보!
빠른 스캐닝
2,3번 플랫폼
‘지하철 자리앉기’ 검색하면?
!
다양한 자리앉기 꿀팁들!!
!
!
종로 3가에선
할머니/할아버지!관찰력
환승역을 노려라.
!
행선지를 알수 없는 패션 패스
책보는 사람 패스,
자는 사람 패스,
짐을 들고 있는사람
두리번 거리는 사람
자다가 깨어난 사람
백팩을 등에 맨사람, 카드 지갑 꺼내는 사람
무조건 좌석앞에
자리 잡기
경쟁자가 있는 곳을 피하라
360’를 주시하
내리는 사람
길을 터주어라
반반씩 걸쳐서
자리 확보!
빠른 스캐닝
2,3번 플랫1. 지치지 않는 피지컬
‘지하철 자리앉기’ 검색하면?
!
다양한 자리앉기 꿀팁들!!
!
!
종로 3가에선
할머니/할아버지!관찰
환승역을 노려라.
!
행선지를 알수 없는 패션 패스
책보는 사람 패스,
자는 사람 패스,
짐을 들고 있는사람
두리번 거리는 사람
자다가 깨어난 사람
백팩을 등에 맨사람, 카드 지갑 꺼내는 사람
무조건 좌석앞에
자리 잡기
경쟁자가 있는 곳을 피하라
360’를 주시하라
내리는 사람
길을 터주어라
반반씩 걸쳐서
자리 확보!
빠른 스캐닝
2,3번 플랫폼
2. 탁월한
위치 선점 능력
‘지하철 자리앉기’ 검색하면?
!
다양한 자리앉기 꿀팁들!!
!
!
종로 3가에선
할머니/할아버지!관찰
!
행선지를 알수 없는 패션 패스
책보는 사람 패스,
자는 사람 패스,
짐을 들고 있는사람
두리번 거리는 사람
자다가 깨어난 사람
백팩을 등에 맨사람, 카드 지갑 꺼내는 사람
무조건 좌석앞에
자리 잡기
경쟁자가 있는 곳을 피하라
360’를 주시하
내리는 사람
길을 터주어라
반반씩 걸쳐서
자리 확보!
빠른 스캐닝
2,3번 플랫
환승역을 노려라.
3. 냉철한 예측 능력
이제 나도 앉아 갈수 있을까?
동천역 정자역 판교역
청계산입구
양재
시민의숲
양재 강남
잠실역
역삼
선릉
삼성
종합
운동장
잠실내내
나의 출근 경로
이제 나도 앉아 갈수 있을까?
동천역 정자역 판교역
청계산입구
양재
시민의숲
양재 강남
잠실역
역삼
선릉
삼성
종합
운동장
잠실내내
나의 출근 경로
전략대로 해 보았습니다.!!
!
현실을 달랐습니다.
그럼 나도 앉아 갈수 있을까?
동천역 정자역 판교역
청계산입구
양재
시민의숲
양재 강남
잠실역
역삼
선릉
삼성
종합
운동장
잠실내내
정자역 판교역
•개발자스러운 사람?
• 개발자스러운 사람?
• 개발자스러운 사람?
• 개발자스러운 사람?
요기에서 내릴 사람을 찾자
‘지하철 자리앉기’ 검색하면?
!
다양한 자리앉기 꿀팁들!!
!
!
종로 3가에선
할머니/할아버지!관찰력
환승역을 노려라.
!
행선지를 알수 없는 패션 패스
책보는 사람 패스,
자는 사람 패스,
짐을 들고 있는사람
두리번 거리는 사람
자다가 깨어난 사람
백팩을 등에 맨사람, 카드 지갑 꺼내는 사람
무조건 좌석앞에
자리 잡기
경쟁자가 있는 곳을 피하라
360’를 주시하라
내리는 사람
길을 터주어라
반반씩 걸쳐서
자리 확보!
빠른 스캐닝
2,3번 플랫폼
그래서 나의 장기인
데이터로 풀어봤습니다
강남 출근길에 정자/판교역에
내릴 사람 예측하기
를 하기위한 탐색적 데이터 분석
강남 출근길에 정자/판교역에
내릴 사람 예측하기
를 하기위한 탐색적 데이터 분석
를 하기위한
탐색적 데이터 분석
탐색적 데이터 분석(EDA)?
쌓여 있는 데이터를 기반으로
가설을 세워 데이터를 분석하는 방법
Reference: http://hackersstudy.tistory.com/122
확증적 데이터 분석(CDA)?
목적을 가지고 데이터를 수집하고
분석하는 방법
1. 분석 할 ‘데이터를 수집’ 하고
!
2. 데이터를 읽고, 해석하기 쉽도록 ‘데이터를 정제’하고
!
3. 데이터를 요리조리 ‘탐색’해 보고
!
4. 정자/판교역에 내릴 사람을 ‘예측 모델’을 만들어하여
!
5. 자리에 앉아 가자.
자리앉기 EDA Pipeline
참조 : 캐글 predict-employee-kernelover Kernel Notebook
(Exploratory Data Analysis)
1. 데이터 수집
2. 데이터 정제
3. 데이터 탐색
4. 데이터 모델링
1. 데이터 수집
2.
3.
4.
출근길에 별로 할것도 없어서
• 2017-07-13부터 9-29 까지 46일간
• 동천역 2-2 플랫폼에서
• 매일 아침 시간(07:02 ~ 08:52)에
• 하루에 7명(지하철 1라인) 총 322명 데이터 기록했습
니다.
데이터가 많이 부족하네요!!!
6개의 특징을 기록했습니다.
여2핸평이:정
6개의 특징을 기록했습니다.
여2핸평이:정
20대
여성이
평상복 패션에
이어폰을 끼고
핸드폰을 하면서 앉아 있다가
정자역에서 내렸다
성별
여 남
나이
청년 중년 장년
그림 출처 : http://www.ktcunews.com/sub04/article.jsp?cid=12970&gotoPage=23&code=
앉아서 하는 행동
핸드폰 잠자기 책보기
생각 중 노트북 대화중
복장
평상복 세미정장 정장
좌석의 위치
0번 1번 2번 3번 4번 5번 6번
<<
>>
(노약자석)
좌측 중앙 우측
이이폰 사용여부
이어폰 착용 이어폰 미 착용
내리는 역
• 정자역
• 판교역
• 나머지는 모두 강남역
열심히 기록했습니다.
{platform-number} / {datetime} / {start:station}-{end:station} / {남|녀}{2|3|4|5|6}{정|세|평}{핸|책|잠|생}{노|이}
2-1 / 2017-07-13 07:30 / 동천 -> 강남 / 여3정핸노 남4정핸노 남3정잠이 남3세핸이 여3세노이:판 여5평핸노:판 남3정잠이
2-1 / 2017-07-14 08:25 / 동천 -> 강남 / 남3정핸노 남4세핸이백:판:성공 남4평핸노:정 여5평잠노 남3평잠노 여3세핸이 여3평핸노
2-1 / 2017-07-17 08:17 / 동천 -> 강남 / 여2핸평이:정 여3잠세이:판 남4잠세노 여3핸세노 남3책평이 여4잠세노:판 여3현세이
2-1 / 2017-07-18 08:40 / 동천 -> 강남 / 여2핸평이:정 남3핸세노 남4핸평노:정 남2핸평노 여3잠세노 여2핸평노 여3핸평노:정
2-1 / 2017-07-19 08:20 / 동천 -> 강남 / 여2핸평이:판 여2핸평이 여2잠평노 남4잠정노 여3잠정노 여3핸평이 여4현세이
2-1 / 2017-07-20 08:06 / 동천 -> 강남 / 남5잠세노:정 여3잠평노 남3핸평이:판 여4생세노:정 남3핸세노 여5잠세노 남6생세노
2-1 / 2017-07-21 07:30 / 동천 -> 강남 / 남4핸세노 남4핸평이 여3핸세이 남4정잠노 여4생세노 남3핸평이:정 여3잠세노
2-1 / 2017-07-24 07:35 / 동천 -> 강남 / 여3잠평이 여4평핸노 남4현장노 여3핸세노 여4핸평노:판 여3핸평이:판 남4핸평노:정
2-1 / 2017-07-25 07:43 / 동천 -> 강남 / 여4토세노 남5토세노 남4잠세노 남4잠평노:정 남3핸평이 남3잠정이 여4생세노:양
2-1 / 2017-07-26 08:15 / 동천 -> 강남 / 여3핸평이 남2책평이 여3핸세이 남5핸세노 여5핸세이 남3책세노 여2노평이
2-1 / 2017-07-27 08:35 / 동천 -> 강남 / 남3생평노:판 여3핸평노 남4잠평노 남4잠정노 여4잠세노:판 남6생세노 남4핸평이:판
2-1 / 2017-07-31 08:25 / 동천 -> 강남 / 남3생평이:판 남4책평노:정 여3핸평이 남4핸세노 여3핸평이 남4핸평이 여2핸평이
2-1 / 2017-08-02 07:12 / 동천 -> 강남 / 여3잠평이 여3핸평이 남4책평노 남4핸평이 남6현세이 남6잠생이 남2핸평이
2-1 / 2017-08-03 08:20 / 동천 -> 강남 / 남3핸평이:판 남3핸평노:정 남4핸세이 남5잠세노 여2핸세이 남3핸평노 여5잠세노
2-1 / 2017-08-08 07:48 / 동천 -> 강남 / 남4핸정이 남4핸평노 여4책세노 남5핸평노 남4핸평이 남6핸세노 여2핸평이
2-1 / 2017-08-09 08:02 / 동천 -> 강남 / 여3잠세노:정 남4잠세노 남4책평이 남4핸정이 남2잠평노 남3핸세노 여3잠세노
2-1 / 2017-08-10 07:35 / 동천 -> 강남 / 남2생세노:정 남2생평노:판 여4잠평노 남4핸평노 남4핸세노 여3핸세노 남3핸세이
2-1 / 2017-08-11 07:12 / 동천 -> 강남 / 남3책평노 남4핸세노 남4핸정노 여3생세노 남3생정노 여3잠세노 여3잠평노:판
2-1 / 2017-08-14 08:40 / 동천 -> 강남 / 여2핸평이 여3잠평노:판 여3핸평이 남4핸세노 남3핸평노 남3잠평노 여3핸세노
2-1 / 2017-08-16 07:35 / 동천 -> 강남 / 여4핸세노 남3핸세노 여5책세노 남3핸평이 남6잠세노 남3핸평이:정 여3잠세노
2-1 / 2017-08-17 08:52 / 동천 -> 강남 / 여3핸평노 남3핸평이:판교 남4핸평이 여5잠세노 남2핸평이:판 여3핸평노 여3핸세노
2-1 / 2017-08-18 08:35 / 동천 -> 강남 / 남4잠평이 여3핸평노 여3잠평노:판 여3토정노 여2토정노 남3토정노 여2핸평노:판
2-1 / 2017-08-22 08:20 / 동천 -> 강남 / 남3잠평노:판 남4핸정노 여2잠평노 여5잠세노 남5잠세노 여2핸세이 여3핸평노
2-1 / 2017-08-23 07:48 / 동천 -> 강남 / 남3핸세노:정 여4핸세노 여3핸세노 여3잠세이 남4핸평노 녀3핸평이 남4잠세이
1.
2. 데이터 정제
3.
4.
1.
2. 데이터 정제
3.
4.
Table 데이터 만들기
잘 만든 Table 데이터는
데이터 탐색 즐거움의 시작이다.
Table 데이터 변환
2-1 / 2017-07-13 07:30 / 동천 -> 강남 / 여3정핸노 남4정핸노 여3핸세이:판
플랫폼No 측정시간 이동경로 좌석 위치 + 특징
1. ’/‘으로 컬럼 분리
2-1 2017-07-13 07:30 동천 -> 강남 여3정핸노 남4정핸노 여3핸세이:판
여3정핸노 남4정핸노 여3핸세이:판
2. ’공백’ 으로 승객 분리
3. 승객별
Row로 변환
2-1 2017-07-13 07:30 동천 -> 강남 0번 여3정핸노
2-1 2017-07-13 07:30 동천 -> 강남 1번 남4정핸노
2-1 2017-07-13 07:30 동천 -> 강남 2번 여3핸세이:판
여자 30대 핸드폰 세미정장 이어폰 판교역
4. 읽기 쉽게 Renaming
2-1 2017-07-13 07:30 동천 -> 강남 2번
Table 데이터 변환 완료
여자 30대 핸드폰 세미정장 이어폰 판교역2-1 2017-07-13 07:30 동천 -> 강남 2번
여자 30대 핸드폰 세미정장 이어폰 판교역2017-07-13 07:30 2번
day hour seat_loc 성별 나이 행동 복장 이어폰여부 내린역
6. 읽기 좋은 컬럼 Naming
여자 30대 핸드폰 세미정장 이어폰 판교역X2017-07-13 07:30X 2번
5. 불필요한 컬럼 삭제하고
7. 컬럼 값을 의미 기반으로 그룹핑
10대
20대
30대
40대
50대
60대
0번
1번
2번
3번
4번
5번
6번
좌측
사이드
중앙
우측
사이드
청년
청년
청년
Table 데이터 변환
데이터 Cleansing
• 데이터가 아까우니 수작업으로 오류 보정
• 컬럼별 변수 타입의 통일
• 컬럼별 데이터 Value Validation
• Missing Data 처리 ( Null 값 drop, Default값처리)
1.
2.
3. 데이터 탐색
4.
• 46일 322명 신분당선 지하철 자리에 앉은 승객 데이터
• 평균 정자/판교역에서 22%(71명)가 내렸다 .
Statistics Overview
71명(22%) 251명(78%)
정자/판교역 내리는 사람 강남역 내리는 사람
Feature Distribution Plot
Feature Distribution Plot
Stop & Think
- 남-여 비율은 비슷하고
Feature Distribution Plot
- 남-여 비율은 비슷하고
!
- 중년(30/40대)가 다수이고
!
Stop & Think
Feature Distribution Plot
- 남-여 비율은 비슷하고
!
- 중년(30/40대)이 다수이고
!
- 핸드폰과 잠을 자며
!
!
!
!
Stop & Think
Feature Distribution Plot
- 남-여 비율은 비슷하고
!
- 중년(30/40대)이 다수이고
!
- 핸드폰과 잠을 자며
!
- 평상복을 많이 입고
!
!
!
!
Stop & Think
Feature Distribution Plot
- 남-여 비율은 비슷하고
!
- 중년(30/40대)이 다수이고
!
- 핸드폰과 잠을 자며
!
- 평상복을 많이 입고
!
- 이어폰 미 사용자가 

조금더 많다
!
!
Stop & Think
Most commons
흔한 승객 유형?
- 평상복을 입고 핸드폰 보는 30대 여자 승객
Most commons
정자/판교역 vs 강남역 승객 유형은?
- 강남역은 상위 랭크에 30대 여자의 비율이 높음
정자/판교역 강남역 하차 승객
Correlation Matrix & Heatmap
상관계수 측정을 위해 카테고리컬 데이터 → 넘버 타입 데이터로 변환
One hot Encoding(Binary)
카테고리컬 Value

(String)
Label Encoding

(Number)
Correlation Matrix
Correlation Matrix
Correlation 값 = [-0.2~0.2]
Binary(0,1) Encoding 때문에
Correlation 값이 작아 진 듯하다.
그래서 상대적인 수치로
분석의 힌트를 얻자!
Correlation Heatmap
Correlation Heatmap
이런 값들이 상대적으로
높은 값인듯하다
Correlation Matrix & Heatmap
Positive Correlated Features :
판교/정자역 하차 vs 좌측:사이드 = 0.211
판교/정자역 하차 vs 생각중 = 0.126
남자 vs 중앙좌석 = 0.102
책읽기 vs 장년층 = 0.168
잠자는중 vs 이어폰:X = 0.176
핸드폰 vs 이어폰:O = 0.225
!
Negative Correlated Features :
판교/정자역 하차 vs 중앙 = -0.188
판교/정자역 하차 vs 잠자는중 = -0.111
남자 vs 우측:사이드 = -0.145
핸드폰보기 vs 장년 = -0.202
Clustering by correlation
Clustering by correlation
Stop & Think 1
지하철에서 장년층은 남자가 많으며, 책읽기와 생각을 즐겨한다.
Clustering by correlation
Stop & Think 2
좌석의 중간에 앉은 사람이 강남까지 갈 경우가 더 많은 듯하다.
Clustering by correlation
Stop & Think 3
당연히 잠을 자거나 대화중일때는 이어폰 사용이 감소한다.
Clustering by correlation
Stop & Think 4
판교역 하차 승객은 좌측:사이드의 30/40대 중년층과 관련이 있다.
Clustering by correlation
Stop & Think 5
특히 청소년이 이어폰을 끼고 핸드폰을 본다.
Clustering by correlation
Stop & Think 6
우측:사이드에 앉은 사람은 여성 가능성이 높다.
( 참고로 임산부석이 우측:사이드에 있다. )
Stop & Think 1 : 나이 vs 행동
지하철에서 장년층은 남자가 많으며, 책읽기와 생각을 즐겨한다.
Stop & Think 2 : 좌석위치 vs 내리는역
좌석의 중간에 앉은 사람이 강남까지 갈 경우가 더 많은 듯하다.
Stop & Think 3 : 행동 vs 이어폰 여부
당연히 잠을 자거나 대화중일때는 이어폰 사용이 감소한다.
Stop & Think 4 : 좌석위치 vs 내리는 역
판교역 하차 승객은 좌측:사이드의 30/40대 중년층과 관련이 있다.
Stop & Think 5 : 나이 vs 이어폰
특히 청소년이 이어폰을 끼고 핸드폰을 본다.
Stop & Think 6 : Pass
우측:사이드에 앉은 사람은 여성 가능성이 높다.
( 참고로 임산부석이 우측:사이드에 있다. )
좀더 상세하게 알아보자.
Bivariate Distribution Plot
Stop & Think 1 : 나이 vs 행동
- 나이가 많을 수록 핸드폰 이용 비율이 적어지고
- 책, 잠자기의 비율이 높아진다.
Bivariate Distribution Plot
Stop & Think 2,4 : 좌석위치 vs 내리는역
- 좌측 0,1번 좌석은 판교/정자역,
- 중앙 2,3,4번 좌석은 강남역에 내리는 사람이 많다
Bivariate Distribution Plot
Stop & Think 3 : 행동 vs 이어폰 여부
- 잠, 책, 토크 중에는 이어폰 사용이 적은 평이긴 하나,
- 예상보다는 많은 수가 이어폰을 사용한다.
Bivariate Distribution Plot
Stop & Think 5 : 나이 vs 이어폰
- 나이가 많을스록 이어폰 사용을 자제한다.
Bivariate Distribution Plot
나이 vs 성별
- 나이가 많을 수록 남자의 비율이 높아 진다.
- 회사의서의 성별-나이 분포가 반영된듯하다 .
Bivariate Distribution Plot
나이 vs 복장
- 나이가 많을 수록 세미정장의 비율이 높다.
내리는역 vs
성별
나이
행동
복장
이어폰 여부
좌석 위치
내리는역 vs 성별
특별한 연관성 없어 보임
- 판교/정자역에 남자 비율이 조금 높으나 그리 큰차이는 아니다
내리는역 vs 연령대
특별한 연관성 없어 보임
- 강남역에 장년층이 조금더 많이 내린다.
내리는역 vs 행동
- 강남역은 잠자는 사람 비중이 좀더 높아 보이고
- 판교/정자역은 생각, 휴대폰 사용 비율이 높아 보인다.
내리는역 vs 복장
- 확연히 판교/정자역에 평상복 패션이 많다.
내리는역 vs 이어폰 사용여부
특별한 연관성 없어 보임
내리는역 vs 좌석위치
- 좌측:사이드 좌석의 사람이 판교/정자역에 많이 내린다.
이런 비교 분포를 보면
복장, 좌석위치, 행동
자리앉기 예측에 주요 특징값이
될듯 하다.
1.
2.
3.
4. 데이터 모델링
자리앉기위한 예측 모형을
만들어 보자
Modeling Overview
6개 특징 데이터
판교/정자역에 내릴 사람
을 예측하는
Binary Classification
판교/정자역에 22%만
내리는
Class 분포의 불균형
데이터가 322건
Model의 Baseline 정하기
• 좀 전 데이터 탐색결과에서
71명(22%) 251명(78%)
정자/판교역 내리는 사람 강남역 내리는 사람
Accuracy = 0.78 !!
• 그냥 모두 0-Class(강남역 내림)로 예측하면
Dataset 분리
내림여부
입력값 = X 정답 = y
75%
25%
Train Set
Test Set
내림여부
내림여부
일단 Model을 만들어 보자
• Scikit-Learn( )에서 쉽게 쓸수 있는
Classification Model을 적용해 보자
• 8개 Model 적용
Tree 계열
Regression
SVM
KNN
Bayesian
Neural Network
DecisionTreeClassifier
RandomForestClassifier
Gradient Boosting Decision Tree
LogisticRegression
SVC
KNeighborsClassifier
MultinomialNB
MLPClassifier
Decision Tree
Test Set Accuracy = 0.765
Decision Tree
Test Set Accuracy = 0.765 0.78
Baseline
Decision Tree
Test Set Accuracy = 0.765 0.78
Baseline
모델 파워가 약한가?
좀더 복잡한 Tree 계열의
!
RandomForest
Random Forest
Test Set Accuracy = 0.802
Random Forest
Test Set Accuracy = 0.802
0.78
Baseline
Decision Tree이 비해 Train set의 정확도는 낮아 졌으나
Test set의 정확도는 상승함
Random Forest
Test Set Accuracy = 0.802
0.78
Baseline
Decision Tree이 비해 Train set
Test set의 정확도는 상승함
그럼 Tree 계열의
GBDT(gradient boosting decision tree)
도 해보자
GBDT
Test Set Accuracy = 0.74 !!!!
0.78
Baseline
Accuracy 비교
Baseline
Feature importances
• RandomForestClassifier(n_estimators=1000)
학습 후 각 Feature 중요도(불순도 감소분) 측정
• seat_loc(좌석위치)가 가장 중요
한 Feature임
• 이 결과를 보면 

seat_loc, 행동, 연령대, 복장 을
Feature로 사용하는것이 좋아 보
임
다른 모델도 학습해 보자
Test Set Accuracy = 0.802
0.78
Baseline
Logistic Regression
Test Set Accuracy = 0.802
0.78
Baseline
Support Vector Classifier
Test Set Accuracy = 0.802
0.78
Baseline
K-Nearest Neighbors
Test Set Accuracy = 0.802
0.78
Baseline
Naive Bayse
Test Set Accuracy = 0.79
0.78
Baseline
Neural Network(MLP)
Baseline
Baseline
예측결과를 좀더
탐색해 보자
Baseline
어떤 클래스를 성능은 어떨까?
Baseline
Confusion Matrix
Predicted
Class
Negative Positive
Actual
Class
Negative A B
Positive C D
Baseline
Confusion Matrix
예측된 Class
강남역하차
= 0
판교/정자역
하차=1
정답 Class
강남역하차
= 0
A B
판교/정자역
하차=1
C D
Baseline
Confusion Matrix
예측된 Class
강남역하차
= 0
판교/정자역
하차=1
정답 Class
강남역하차
= 0
A B
판교/정자역
하차=1
C D
정답이 판교/정자역 인데
강남역으로 예측한 오류
정답은 강남역인데
판교/정자역으로
예측한 오류
Baseline
Confusion Matrix
예측된 Class
강남역하차
= 0
판교/정자역
하차=1
정답 Class
강남역하차
= 0
A B
판교/정자역
하차=1
C D
Precision = (A)/(A+C)
내가 예측한 것중 얼마나 얼마나 잘 맞추었는가?
Recall
= (A)/(A+B)
정답중에 얼마나
잘 예측했는가?
Baseline
Confusion Matrix
예측된 Class
강남역하차
= 0
판교/정자역
하차=1
정답 Class
강남역하차
= 0
A B
판교/정자역
하차=1
C D
Accuracy
= (A+B)/(A+B+C+D)
Confusion Matrix
Confusion Matrix
판교/정자역 예측하는
적절히 Model은?
Accuracy:
0.79
Precision : 0.82 0.43
Recall :
0.94
!
0.19
판교/정자역 내릴사람을 예측해보자?
둘중에 누가 내릴까?
1 0 0 0 1 0 0
1 = 판교/정자역 내림
0 = 강남역 내림
내릴 사람이 없네?
0 0 0 0 0 0 0
1 = 판교/정자역 내림
0 = 강남역 내림
확률값으로 예측
• predict_proba(X_test)
0.6 0 .2 0.002 0.25 0.04 0.1 0.11
Winner!
7개자리 중 1개 선택하는 문제
Muti-class classification
결과는 어떻게 되었을까요?
2018년
데이터야 놀자에서
확인하시길 바랍니다.
으 흐흐흐 ~~
지금까지
탐색하고
모델링한
남들보다
한발 앞서
꿀잠 자면서
출근하자
현실은?
대안은?
아침형 인간이 되어
6:30분에 출근을 한다.
대안은?
동천역 정자역 판교역 청계산입구
양재
시민의숲
양재 강남
수지구청
성복 상현 광교중앙 광교
출발역
자리 경쟁이 없는 역까지
역주행 한다
아!!! 내가 이럴려고
데이터 분석했나 했지만
과정만으로도 만족으로운
토이 프로젝트 였다.
마치면서 소감은?
뿌옇게 보였던 

탐색적 데이터 분석을 

좀더 또렷히 볼수 있는 

시간이 되었기를 

기대 합니다.
감사합니다.

Mais conteúdo relacionado

Mais procurados

제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
BOAZ Bigdata
 

Mais procurados (20)

Startup Metrics for Pirates: AARRR! (Startonomics SF 2008)
Startup Metrics for Pirates: AARRR! (Startonomics SF 2008)Startup Metrics for Pirates: AARRR! (Startonomics SF 2008)
Startup Metrics for Pirates: AARRR! (Startonomics SF 2008)
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
 
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
 
서비스 기획자의 데이터 분석
서비스 기획자의 데이터 분석서비스 기획자의 데이터 분석
서비스 기획자의 데이터 분석
 
데이터 분석에 필요한 기본 개념: 지표, Funnel 등 데이터를 이해하기 위한 멘탈 모델(Mental Model)
데이터 분석에 필요한 기본 개념: 지표, Funnel 등 데이터를 이해하기 위한 멘탈 모델(Mental Model)데이터 분석에 필요한 기본 개념: 지표, Funnel 등 데이터를 이해하기 위한 멘탈 모델(Mental Model)
데이터 분석에 필요한 기본 개념: 지표, Funnel 등 데이터를 이해하기 위한 멘탈 모델(Mental Model)
 
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
 
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
 
사회인의 휴학, Gap Year 이야기
사회인의 휴학, Gap Year 이야기사회인의 휴학, Gap Year 이야기
사회인의 휴학, Gap Year 이야기
 
Lean Analytics for Startups and Enterprises
Lean Analytics for Startups and EnterprisesLean Analytics for Startups and Enterprises
Lean Analytics for Startups and Enterprises
 
알면 알수록 어려운 서비스 기획 뽀개기_2020
알면 알수록 어려운 서비스 기획 뽀개기_2020알면 알수록 어려운 서비스 기획 뽀개기_2020
알면 알수록 어려운 서비스 기획 뽀개기_2020
 
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
 
린분석 with 레진코믹스 ( Lean Analytics with Lezhin Comics )
린분석 with 레진코믹스 ( Lean Analytics with Lezhin Comics )린분석 with 레진코믹스 ( Lean Analytics with Lezhin Comics )
린분석 with 레진코믹스 ( Lean Analytics with Lezhin Comics )
 
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스
 
디지털마케터 이연정 Portfolio
디지털마케터 이연정 Portfolio디지털마케터 이연정 Portfolio
디지털마케터 이연정 Portfolio
 
웹사이트기획 및 관리
웹사이트기획 및 관리웹사이트기획 및 관리
웹사이트기획 및 관리
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [마페터 팀] : 고객 페르소나를 활용한 마케팅 전략 대시보드
 
[기본] 수익률 지표 이해하기
[기본] 수익률 지표 이해하기[기본] 수익률 지표 이해하기
[기본] 수익률 지표 이해하기
 
[PAP] 팝콘 시즌 1 컨퍼런스 사전 QnA
[PAP] 팝콘 시즌 1 컨퍼런스 사전 QnA[PAP] 팝콘 시즌 1 컨퍼런스 사전 QnA
[PAP] 팝콘 시즌 1 컨퍼런스 사전 QnA
 
전환율 이해하기
전환율 이해하기전환율 이해하기
전환율 이해하기
 
추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.
 

Mais de Dataya Nolja

Mais de Dataya Nolja (20)

How to Study Mathematics for ML
How to Study Mathematics for MLHow to Study Mathematics for ML
How to Study Mathematics for ML
 
Music Data Start to End
Music Data Start to EndMusic Data Start to End
Music Data Start to End
 
Find a Leak Time in the Schedule
Find a Leak Time in the ScheduleFind a Leak Time in the Schedule
Find a Leak Time in the Schedule
 
A Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML inA Financial Company Story of Bringing Open Source and ML in
A Financial Company Story of Bringing Open Source and ML in
 
Practice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty WorkPractice, Practice, Practice and do the Dirty Work
Practice, Practice, Practice and do the Dirty Work
 
Endless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data CollectingEndless Trial-and-Errors for Data Collecting
Endless Trial-and-Errors for Data Collecting
 
Log Design Case Study
Log Design Case StudyLog Design Case Study
Log Design Case Study
 
Let's Play with Data Safely
Let's Play with Data SafelyLet's Play with Data Safely
Let's Play with Data Safely
 
Things Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in MindThings Data Scientists Should Keep in Mind
Things Data Scientists Should Keep in Mind
 
Things Happend between JDBC and MySQL
Things Happend between JDBC and MySQLThings Happend between JDBC and MySQL
Things Happend between JDBC and MySQL
 
Human-Machine Interaction and AI
Human-Machine Interaction and AIHuman-Machine Interaction and AI
Human-Machine Interaction and AI
 
Julia 0.5 and TensorFlow
Julia 0.5 and TensorFlowJulia 0.5 and TensorFlow
Julia 0.5 and TensorFlow
 
Zeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon ValleyZeppelin and Open Source Ecosystem and Silicon Valley
Zeppelin and Open Source Ecosystem and Silicon Valley
 
Hadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 AlphaHadoop 10th Birthday and Hadoop 3 Alpha
Hadoop 10th Birthday and Hadoop 3 Alpha
 
Kakao Bank Powered by Open Sources
Kakao Bank Powered by Open SourcesKakao Bank Powered by Open Sources
Kakao Bank Powered by Open Sources
 
Open Source is My Job
Open Source is My JobOpen Source is My Job
Open Source is My Job
 
Creating Value through Data Analysis
Creating Value through Data AnalysisCreating Value through Data Analysis
Creating Value through Data Analysis
 
How to Make Money from Data - Global Cases
How to Make Money from Data - Global CasesHow to Make Money from Data - Global Cases
How to Make Money from Data - Global Cases
 
Structured Streaming with Apache Spark
Structured Streaming with Apache SparkStructured Streaming with Apache Spark
Structured Streaming with Apache Spark
 
How to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its DifficultyHow to Create Value from Data, and Its Difficulty
How to Create Value from Data, and Its Difficulty
 

Predicting People Who May Get off at the Next Station

  • 1. 강남 출근길에 정자/판교역 내릴 사람 예측하기 최규민 를 하기위한 탐색적 데이터 분석
  • 2. 최규민 소개 개발을 즐기는 개발자입니다. 추천시스템도 만들어보고패킷 분석도 해봤고 데이터 탐색 좋아하여
  • 3. 직장인 하루 출퇴근 시간 참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1 동아닷컴 2017-07-17 기사
  • 4. 직장인 하루 출퇴근 시간 참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1 동아닷컴 2017-07-17 기사 1일 = 101 min 1주 = 505 min 1년 = 26,260 min = 437 hour = 54.7 work day (8h/day)
  • 5. 최규민 하루 출퇴근 시간 참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1 1일 = 120 min 1주 = 600 min 1년 = 31,200 min = 520 hour = 65 work day (8h/day) 동아닷컴 2017-07-17 기사 동천역(수지) → 잠실역
  • 6. 직장인 하루 출퇴근 시간 참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1 • 1일 = 101분 • 1주 = 505분 • 1년 = 26,260분 지하철에서 생산성을 올리는 방법은? 참조 : http://www.alextip.com/?p=2078
  • 7. 직장인 하루 출퇴근 시간 참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1 • 1일 = 101분 • 1주 = 505분 • 1년 = 26,260분 지하철에서 생산성을 올리는 유일한 방법은? 참조 : http://www.alextip.com/?p=2078
  • 8. 직장인 하루 출퇴근 시간 참조 : http://bizn.donga.com/dongaTop/Main/3/all/20170717/85387093/1 • 1일 = 101분 • 1주 = 505분 • 1년 = 26,260분 지하철에서 생산성을 올리는 유일한 방법은? 일단 앉아라!! 참조 : http://www.alextip.com/?p=2078
  • 10. ‘지하철 자리앉기’ 검색하면? ! 다양한 자리앉기 꿀팁들!! ! ! 종로 3가에선 할머니/할아버지!관찰력 환승역을 노려라. ! 행선지를 알수 없는 패션 패스 책보는 사람 패스, 자는 사람 패스, 짐을 들고 있는사람 두리번 거리는 사람 자다가 깨어난 사람 백팩을 등에 맨사람, 카드 지갑 꺼내는 사람 무조건 좌석앞에 자리 잡기 경쟁자가 있는 곳을 피하라 360’를 주시하라 내리는 사람 길을 터주어라 반반씩 걸쳐서 자리 확보! 빠른 스캐닝 2,3번 플랫폼
  • 11. ‘지하철 자리앉기’ 검색하면? ! 다양한 자리앉기 꿀팁들!! ! ! 종로 3가에선 할머니/할아버지!관찰력 환승역을 노려라. ! 행선지를 알수 없는 패션 패스 책보는 사람 패스, 자는 사람 패스, 짐을 들고 있는사람 두리번 거리는 사람 자다가 깨어난 사람 백팩을 등에 맨사람, 카드 지갑 꺼내는 사람 무조건 좌석앞에 자리 잡기 경쟁자가 있는 곳을 피하라 360’를 주시하 내리는 사람 길을 터주어라 반반씩 걸쳐서 자리 확보! 빠른 스캐닝 2,3번 플랫1. 지치지 않는 피지컬
  • 12. ‘지하철 자리앉기’ 검색하면? ! 다양한 자리앉기 꿀팁들!! ! ! 종로 3가에선 할머니/할아버지!관찰 환승역을 노려라. ! 행선지를 알수 없는 패션 패스 책보는 사람 패스, 자는 사람 패스, 짐을 들고 있는사람 두리번 거리는 사람 자다가 깨어난 사람 백팩을 등에 맨사람, 카드 지갑 꺼내는 사람 무조건 좌석앞에 자리 잡기 경쟁자가 있는 곳을 피하라 360’를 주시하라 내리는 사람 길을 터주어라 반반씩 걸쳐서 자리 확보! 빠른 스캐닝 2,3번 플랫폼 2. 탁월한 위치 선점 능력
  • 13. ‘지하철 자리앉기’ 검색하면? ! 다양한 자리앉기 꿀팁들!! ! ! 종로 3가에선 할머니/할아버지!관찰 ! 행선지를 알수 없는 패션 패스 책보는 사람 패스, 자는 사람 패스, 짐을 들고 있는사람 두리번 거리는 사람 자다가 깨어난 사람 백팩을 등에 맨사람, 카드 지갑 꺼내는 사람 무조건 좌석앞에 자리 잡기 경쟁자가 있는 곳을 피하라 360’를 주시하 내리는 사람 길을 터주어라 반반씩 걸쳐서 자리 확보! 빠른 스캐닝 2,3번 플랫 환승역을 노려라. 3. 냉철한 예측 능력
  • 14. 이제 나도 앉아 갈수 있을까? 동천역 정자역 판교역 청계산입구 양재 시민의숲 양재 강남 잠실역 역삼 선릉 삼성 종합 운동장 잠실내내 나의 출근 경로
  • 15. 이제 나도 앉아 갈수 있을까? 동천역 정자역 판교역 청계산입구 양재 시민의숲 양재 강남 잠실역 역삼 선릉 삼성 종합 운동장 잠실내내 나의 출근 경로 전략대로 해 보았습니다.!! ! 현실을 달랐습니다.
  • 16. 그럼 나도 앉아 갈수 있을까? 동천역 정자역 판교역 청계산입구 양재 시민의숲 양재 강남 잠실역 역삼 선릉 삼성 종합 운동장 잠실내내 정자역 판교역 •개발자스러운 사람? • 개발자스러운 사람? • 개발자스러운 사람? • 개발자스러운 사람? 요기에서 내릴 사람을 찾자
  • 17. ‘지하철 자리앉기’ 검색하면? ! 다양한 자리앉기 꿀팁들!! ! ! 종로 3가에선 할머니/할아버지!관찰력 환승역을 노려라. ! 행선지를 알수 없는 패션 패스 책보는 사람 패스, 자는 사람 패스, 짐을 들고 있는사람 두리번 거리는 사람 자다가 깨어난 사람 백팩을 등에 맨사람, 카드 지갑 꺼내는 사람 무조건 좌석앞에 자리 잡기 경쟁자가 있는 곳을 피하라 360’를 주시하라 내리는 사람 길을 터주어라 반반씩 걸쳐서 자리 확보! 빠른 스캐닝 2,3번 플랫폼 그래서 나의 장기인 데이터로 풀어봤습니다
  • 18. 강남 출근길에 정자/판교역에 내릴 사람 예측하기 를 하기위한 탐색적 데이터 분석
  • 19. 강남 출근길에 정자/판교역에 내릴 사람 예측하기 를 하기위한 탐색적 데이터 분석 를 하기위한 탐색적 데이터 분석
  • 20. 탐색적 데이터 분석(EDA)? 쌓여 있는 데이터를 기반으로 가설을 세워 데이터를 분석하는 방법 Reference: http://hackersstudy.tistory.com/122
  • 21. 확증적 데이터 분석(CDA)? 목적을 가지고 데이터를 수집하고 분석하는 방법
  • 22. 1. 분석 할 ‘데이터를 수집’ 하고 ! 2. 데이터를 읽고, 해석하기 쉽도록 ‘데이터를 정제’하고 ! 3. 데이터를 요리조리 ‘탐색’해 보고 ! 4. 정자/판교역에 내릴 사람을 ‘예측 모델’을 만들어하여 ! 5. 자리에 앉아 가자. 자리앉기 EDA Pipeline 참조 : 캐글 predict-employee-kernelover Kernel Notebook (Exploratory Data Analysis)
  • 23. 1. 데이터 수집 2. 데이터 정제 3. 데이터 탐색 4. 데이터 모델링
  • 25. 출근길에 별로 할것도 없어서 • 2017-07-13부터 9-29 까지 46일간 • 동천역 2-2 플랫폼에서 • 매일 아침 시간(07:02 ~ 08:52)에 • 하루에 7명(지하철 1라인) 총 322명 데이터 기록했습 니다. 데이터가 많이 부족하네요!!!
  • 27. 6개의 특징을 기록했습니다. 여2핸평이:정 20대 여성이 평상복 패션에 이어폰을 끼고 핸드폰을 하면서 앉아 있다가 정자역에서 내렸다
  • 29. 나이 청년 중년 장년 그림 출처 : http://www.ktcunews.com/sub04/article.jsp?cid=12970&gotoPage=23&code=
  • 30. 앉아서 하는 행동 핸드폰 잠자기 책보기 생각 중 노트북 대화중
  • 32. 좌석의 위치 0번 1번 2번 3번 4번 5번 6번 << >> (노약자석) 좌측 중앙 우측
  • 34. 내리는 역 • 정자역 • 판교역 • 나머지는 모두 강남역
  • 35. 열심히 기록했습니다. {platform-number} / {datetime} / {start:station}-{end:station} / {남|녀}{2|3|4|5|6}{정|세|평}{핸|책|잠|생}{노|이} 2-1 / 2017-07-13 07:30 / 동천 -> 강남 / 여3정핸노 남4정핸노 남3정잠이 남3세핸이 여3세노이:판 여5평핸노:판 남3정잠이 2-1 / 2017-07-14 08:25 / 동천 -> 강남 / 남3정핸노 남4세핸이백:판:성공 남4평핸노:정 여5평잠노 남3평잠노 여3세핸이 여3평핸노 2-1 / 2017-07-17 08:17 / 동천 -> 강남 / 여2핸평이:정 여3잠세이:판 남4잠세노 여3핸세노 남3책평이 여4잠세노:판 여3현세이 2-1 / 2017-07-18 08:40 / 동천 -> 강남 / 여2핸평이:정 남3핸세노 남4핸평노:정 남2핸평노 여3잠세노 여2핸평노 여3핸평노:정 2-1 / 2017-07-19 08:20 / 동천 -> 강남 / 여2핸평이:판 여2핸평이 여2잠평노 남4잠정노 여3잠정노 여3핸평이 여4현세이 2-1 / 2017-07-20 08:06 / 동천 -> 강남 / 남5잠세노:정 여3잠평노 남3핸평이:판 여4생세노:정 남3핸세노 여5잠세노 남6생세노 2-1 / 2017-07-21 07:30 / 동천 -> 강남 / 남4핸세노 남4핸평이 여3핸세이 남4정잠노 여4생세노 남3핸평이:정 여3잠세노 2-1 / 2017-07-24 07:35 / 동천 -> 강남 / 여3잠평이 여4평핸노 남4현장노 여3핸세노 여4핸평노:판 여3핸평이:판 남4핸평노:정 2-1 / 2017-07-25 07:43 / 동천 -> 강남 / 여4토세노 남5토세노 남4잠세노 남4잠평노:정 남3핸평이 남3잠정이 여4생세노:양 2-1 / 2017-07-26 08:15 / 동천 -> 강남 / 여3핸평이 남2책평이 여3핸세이 남5핸세노 여5핸세이 남3책세노 여2노평이 2-1 / 2017-07-27 08:35 / 동천 -> 강남 / 남3생평노:판 여3핸평노 남4잠평노 남4잠정노 여4잠세노:판 남6생세노 남4핸평이:판 2-1 / 2017-07-31 08:25 / 동천 -> 강남 / 남3생평이:판 남4책평노:정 여3핸평이 남4핸세노 여3핸평이 남4핸평이 여2핸평이 2-1 / 2017-08-02 07:12 / 동천 -> 강남 / 여3잠평이 여3핸평이 남4책평노 남4핸평이 남6현세이 남6잠생이 남2핸평이 2-1 / 2017-08-03 08:20 / 동천 -> 강남 / 남3핸평이:판 남3핸평노:정 남4핸세이 남5잠세노 여2핸세이 남3핸평노 여5잠세노 2-1 / 2017-08-08 07:48 / 동천 -> 강남 / 남4핸정이 남4핸평노 여4책세노 남5핸평노 남4핸평이 남6핸세노 여2핸평이 2-1 / 2017-08-09 08:02 / 동천 -> 강남 / 여3잠세노:정 남4잠세노 남4책평이 남4핸정이 남2잠평노 남3핸세노 여3잠세노 2-1 / 2017-08-10 07:35 / 동천 -> 강남 / 남2생세노:정 남2생평노:판 여4잠평노 남4핸평노 남4핸세노 여3핸세노 남3핸세이 2-1 / 2017-08-11 07:12 / 동천 -> 강남 / 남3책평노 남4핸세노 남4핸정노 여3생세노 남3생정노 여3잠세노 여3잠평노:판 2-1 / 2017-08-14 08:40 / 동천 -> 강남 / 여2핸평이 여3잠평노:판 여3핸평이 남4핸세노 남3핸평노 남3잠평노 여3핸세노 2-1 / 2017-08-16 07:35 / 동천 -> 강남 / 여4핸세노 남3핸세노 여5책세노 남3핸평이 남6잠세노 남3핸평이:정 여3잠세노 2-1 / 2017-08-17 08:52 / 동천 -> 강남 / 여3핸평노 남3핸평이:판교 남4핸평이 여5잠세노 남2핸평이:판 여3핸평노 여3핸세노 2-1 / 2017-08-18 08:35 / 동천 -> 강남 / 남4잠평이 여3핸평노 여3잠평노:판 여3토정노 여2토정노 남3토정노 여2핸평노:판 2-1 / 2017-08-22 08:20 / 동천 -> 강남 / 남3잠평노:판 남4핸정노 여2잠평노 여5잠세노 남5잠세노 여2핸세이 여3핸평노 2-1 / 2017-08-23 07:48 / 동천 -> 강남 / 남3핸세노:정 여4핸세노 여3핸세노 여3잠세이 남4핸평노 녀3핸평이 남4잠세이
  • 37. 1. 2. 데이터 정제 3. 4. Table 데이터 만들기
  • 38. 잘 만든 Table 데이터는 데이터 탐색 즐거움의 시작이다.
  • 39. Table 데이터 변환 2-1 / 2017-07-13 07:30 / 동천 -> 강남 / 여3정핸노 남4정핸노 여3핸세이:판 플랫폼No 측정시간 이동경로 좌석 위치 + 특징 1. ’/‘으로 컬럼 분리 2-1 2017-07-13 07:30 동천 -> 강남 여3정핸노 남4정핸노 여3핸세이:판 여3정핸노 남4정핸노 여3핸세이:판 2. ’공백’ 으로 승객 분리 3. 승객별 Row로 변환 2-1 2017-07-13 07:30 동천 -> 강남 0번 여3정핸노 2-1 2017-07-13 07:30 동천 -> 강남 1번 남4정핸노 2-1 2017-07-13 07:30 동천 -> 강남 2번 여3핸세이:판 여자 30대 핸드폰 세미정장 이어폰 판교역 4. 읽기 쉽게 Renaming 2-1 2017-07-13 07:30 동천 -> 강남 2번
  • 40. Table 데이터 변환 완료 여자 30대 핸드폰 세미정장 이어폰 판교역2-1 2017-07-13 07:30 동천 -> 강남 2번 여자 30대 핸드폰 세미정장 이어폰 판교역2017-07-13 07:30 2번 day hour seat_loc 성별 나이 행동 복장 이어폰여부 내린역 6. 읽기 좋은 컬럼 Naming 여자 30대 핸드폰 세미정장 이어폰 판교역X2017-07-13 07:30X 2번 5. 불필요한 컬럼 삭제하고 7. 컬럼 값을 의미 기반으로 그룹핑 10대 20대 30대 40대 50대 60대 0번 1번 2번 3번 4번 5번 6번 좌측 사이드 중앙 우측 사이드 청년 청년 청년
  • 42. 데이터 Cleansing • 데이터가 아까우니 수작업으로 오류 보정 • 컬럼별 변수 타입의 통일 • 컬럼별 데이터 Value Validation • Missing Data 처리 ( Null 값 drop, Default값처리)
  • 44. • 46일 322명 신분당선 지하철 자리에 앉은 승객 데이터 • 평균 정자/판교역에서 22%(71명)가 내렸다 . Statistics Overview 71명(22%) 251명(78%) 정자/판교역 내리는 사람 강남역 내리는 사람
  • 46. Feature Distribution Plot Stop & Think - 남-여 비율은 비슷하고
  • 47. Feature Distribution Plot - 남-여 비율은 비슷하고 ! - 중년(30/40대)가 다수이고 ! Stop & Think
  • 48. Feature Distribution Plot - 남-여 비율은 비슷하고 ! - 중년(30/40대)이 다수이고 ! - 핸드폰과 잠을 자며 ! ! ! ! Stop & Think
  • 49. Feature Distribution Plot - 남-여 비율은 비슷하고 ! - 중년(30/40대)이 다수이고 ! - 핸드폰과 잠을 자며 ! - 평상복을 많이 입고 ! ! ! ! Stop & Think
  • 50. Feature Distribution Plot - 남-여 비율은 비슷하고 ! - 중년(30/40대)이 다수이고 ! - 핸드폰과 잠을 자며 ! - 평상복을 많이 입고 ! - 이어폰 미 사용자가 
 조금더 많다 ! ! Stop & Think
  • 51. Most commons 흔한 승객 유형? - 평상복을 입고 핸드폰 보는 30대 여자 승객
  • 52. Most commons 정자/판교역 vs 강남역 승객 유형은? - 강남역은 상위 랭크에 30대 여자의 비율이 높음 정자/판교역 강남역 하차 승객
  • 53. Correlation Matrix & Heatmap 상관계수 측정을 위해 카테고리컬 데이터 → 넘버 타입 데이터로 변환 One hot Encoding(Binary) 카테고리컬 Value
 (String) Label Encoding
 (Number)
  • 55. Correlation Matrix Correlation 값 = [-0.2~0.2] Binary(0,1) Encoding 때문에 Correlation 값이 작아 진 듯하다. 그래서 상대적인 수치로 분석의 힌트를 얻자!
  • 57. Correlation Heatmap 이런 값들이 상대적으로 높은 값인듯하다
  • 58. Correlation Matrix & Heatmap Positive Correlated Features : 판교/정자역 하차 vs 좌측:사이드 = 0.211 판교/정자역 하차 vs 생각중 = 0.126 남자 vs 중앙좌석 = 0.102 책읽기 vs 장년층 = 0.168 잠자는중 vs 이어폰:X = 0.176 핸드폰 vs 이어폰:O = 0.225 ! Negative Correlated Features : 판교/정자역 하차 vs 중앙 = -0.188 판교/정자역 하차 vs 잠자는중 = -0.111 남자 vs 우측:사이드 = -0.145 핸드폰보기 vs 장년 = -0.202
  • 60. Clustering by correlation Stop & Think 1 지하철에서 장년층은 남자가 많으며, 책읽기와 생각을 즐겨한다.
  • 61. Clustering by correlation Stop & Think 2 좌석의 중간에 앉은 사람이 강남까지 갈 경우가 더 많은 듯하다.
  • 62. Clustering by correlation Stop & Think 3 당연히 잠을 자거나 대화중일때는 이어폰 사용이 감소한다.
  • 63. Clustering by correlation Stop & Think 4 판교역 하차 승객은 좌측:사이드의 30/40대 중년층과 관련이 있다.
  • 64. Clustering by correlation Stop & Think 5 특히 청소년이 이어폰을 끼고 핸드폰을 본다.
  • 65. Clustering by correlation Stop & Think 6 우측:사이드에 앉은 사람은 여성 가능성이 높다. ( 참고로 임산부석이 우측:사이드에 있다. )
  • 66. Stop & Think 1 : 나이 vs 행동 지하철에서 장년층은 남자가 많으며, 책읽기와 생각을 즐겨한다. Stop & Think 2 : 좌석위치 vs 내리는역 좌석의 중간에 앉은 사람이 강남까지 갈 경우가 더 많은 듯하다. Stop & Think 3 : 행동 vs 이어폰 여부 당연히 잠을 자거나 대화중일때는 이어폰 사용이 감소한다. Stop & Think 4 : 좌석위치 vs 내리는 역 판교역 하차 승객은 좌측:사이드의 30/40대 중년층과 관련이 있다. Stop & Think 5 : 나이 vs 이어폰 특히 청소년이 이어폰을 끼고 핸드폰을 본다. Stop & Think 6 : Pass 우측:사이드에 앉은 사람은 여성 가능성이 높다. ( 참고로 임산부석이 우측:사이드에 있다. ) 좀더 상세하게 알아보자.
  • 67. Bivariate Distribution Plot Stop & Think 1 : 나이 vs 행동 - 나이가 많을 수록 핸드폰 이용 비율이 적어지고 - 책, 잠자기의 비율이 높아진다.
  • 68. Bivariate Distribution Plot Stop & Think 2,4 : 좌석위치 vs 내리는역 - 좌측 0,1번 좌석은 판교/정자역, - 중앙 2,3,4번 좌석은 강남역에 내리는 사람이 많다
  • 69. Bivariate Distribution Plot Stop & Think 3 : 행동 vs 이어폰 여부 - 잠, 책, 토크 중에는 이어폰 사용이 적은 평이긴 하나, - 예상보다는 많은 수가 이어폰을 사용한다.
  • 70. Bivariate Distribution Plot Stop & Think 5 : 나이 vs 이어폰 - 나이가 많을스록 이어폰 사용을 자제한다.
  • 71. Bivariate Distribution Plot 나이 vs 성별 - 나이가 많을 수록 남자의 비율이 높아 진다. - 회사의서의 성별-나이 분포가 반영된듯하다 .
  • 72. Bivariate Distribution Plot 나이 vs 복장 - 나이가 많을 수록 세미정장의 비율이 높다.
  • 74. 내리는역 vs 성별 특별한 연관성 없어 보임 - 판교/정자역에 남자 비율이 조금 높으나 그리 큰차이는 아니다
  • 75. 내리는역 vs 연령대 특별한 연관성 없어 보임 - 강남역에 장년층이 조금더 많이 내린다.
  • 76. 내리는역 vs 행동 - 강남역은 잠자는 사람 비중이 좀더 높아 보이고 - 판교/정자역은 생각, 휴대폰 사용 비율이 높아 보인다.
  • 77. 내리는역 vs 복장 - 확연히 판교/정자역에 평상복 패션이 많다.
  • 78. 내리는역 vs 이어폰 사용여부 특별한 연관성 없어 보임
  • 79. 내리는역 vs 좌석위치 - 좌측:사이드 좌석의 사람이 판교/정자역에 많이 내린다.
  • 80. 이런 비교 분포를 보면 복장, 좌석위치, 행동 자리앉기 예측에 주요 특징값이 될듯 하다.
  • 83. Modeling Overview 6개 특징 데이터 판교/정자역에 내릴 사람 을 예측하는 Binary Classification 판교/정자역에 22%만 내리는 Class 분포의 불균형 데이터가 322건
  • 84. Model의 Baseline 정하기 • 좀 전 데이터 탐색결과에서 71명(22%) 251명(78%) 정자/판교역 내리는 사람 강남역 내리는 사람 Accuracy = 0.78 !! • 그냥 모두 0-Class(강남역 내림)로 예측하면
  • 85. Dataset 분리 내림여부 입력값 = X 정답 = y 75% 25% Train Set Test Set 내림여부 내림여부
  • 86. 일단 Model을 만들어 보자 • Scikit-Learn( )에서 쉽게 쓸수 있는 Classification Model을 적용해 보자 • 8개 Model 적용 Tree 계열 Regression SVM KNN Bayesian Neural Network DecisionTreeClassifier RandomForestClassifier Gradient Boosting Decision Tree LogisticRegression SVC KNeighborsClassifier MultinomialNB MLPClassifier
  • 87. Decision Tree Test Set Accuracy = 0.765
  • 88. Decision Tree Test Set Accuracy = 0.765 0.78 Baseline
  • 89. Decision Tree Test Set Accuracy = 0.765 0.78 Baseline 모델 파워가 약한가? 좀더 복잡한 Tree 계열의 ! RandomForest
  • 90. Random Forest Test Set Accuracy = 0.802
  • 91. Random Forest Test Set Accuracy = 0.802 0.78 Baseline Decision Tree이 비해 Train set의 정확도는 낮아 졌으나 Test set의 정확도는 상승함
  • 92. Random Forest Test Set Accuracy = 0.802 0.78 Baseline Decision Tree이 비해 Train set Test set의 정확도는 상승함 그럼 Tree 계열의 GBDT(gradient boosting decision tree) 도 해보자
  • 93. GBDT Test Set Accuracy = 0.74 !!!! 0.78 Baseline
  • 95. Feature importances • RandomForestClassifier(n_estimators=1000) 학습 후 각 Feature 중요도(불순도 감소분) 측정 • seat_loc(좌석위치)가 가장 중요 한 Feature임 • 이 결과를 보면 
 seat_loc, 행동, 연령대, 복장 을 Feature로 사용하는것이 좋아 보 임
  • 97. Test Set Accuracy = 0.802 0.78 Baseline Logistic Regression
  • 98. Test Set Accuracy = 0.802 0.78 Baseline Support Vector Classifier
  • 99. Test Set Accuracy = 0.802 0.78 Baseline K-Nearest Neighbors
  • 100. Test Set Accuracy = 0.802 0.78 Baseline Naive Bayse
  • 101. Test Set Accuracy = 0.79 0.78 Baseline Neural Network(MLP)
  • 106. Baseline Confusion Matrix 예측된 Class 강남역하차 = 0 판교/정자역 하차=1 정답 Class 강남역하차 = 0 A B 판교/정자역 하차=1 C D
  • 107. Baseline Confusion Matrix 예측된 Class 강남역하차 = 0 판교/정자역 하차=1 정답 Class 강남역하차 = 0 A B 판교/정자역 하차=1 C D 정답이 판교/정자역 인데 강남역으로 예측한 오류 정답은 강남역인데 판교/정자역으로 예측한 오류
  • 108. Baseline Confusion Matrix 예측된 Class 강남역하차 = 0 판교/정자역 하차=1 정답 Class 강남역하차 = 0 A B 판교/정자역 하차=1 C D Precision = (A)/(A+C) 내가 예측한 것중 얼마나 얼마나 잘 맞추었는가? Recall = (A)/(A+B) 정답중에 얼마나 잘 예측했는가?
  • 109. Baseline Confusion Matrix 예측된 Class 강남역하차 = 0 판교/정자역 하차=1 정답 Class 강남역하차 = 0 A B 판교/정자역 하차=1 C D Accuracy = (A+B)/(A+B+C+D)
  • 114. 둘중에 누가 내릴까? 1 0 0 0 1 0 0 1 = 판교/정자역 내림 0 = 강남역 내림
  • 115. 내릴 사람이 없네? 0 0 0 0 0 0 0 1 = 판교/정자역 내림 0 = 강남역 내림
  • 116. 확률값으로 예측 • predict_proba(X_test) 0.6 0 .2 0.002 0.25 0.04 0.1 0.11 Winner!
  • 117. 7개자리 중 1개 선택하는 문제 Muti-class classification
  • 123. 대안은? 동천역 정자역 판교역 청계산입구 양재 시민의숲 양재 강남 수지구청 성복 상현 광교중앙 광교 출발역 자리 경쟁이 없는 역까지 역주행 한다
  • 124. 아!!! 내가 이럴려고 데이터 분석했나 했지만 과정만으로도 만족으로운 토이 프로젝트 였다.
  • 125. 마치면서 소감은? 뿌옇게 보였던 
 탐색적 데이터 분석을 
 좀더 또렷히 볼수 있는 
 시간이 되었기를 
 기대 합니다.