따릉이 대여량 예측 AI 해커톤

알고리즘 | 정형 | 회귀 | 행태심리 | NMAE

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

 

쉽게 따라올 수 있는 따릉이 대여량 EDA(RF, Public : 0.59891)

2021.11.03 02:35 4,582 Views language

처음 해보는 코드 공유라 많이 부끄럽습니다.
저도 배우는 단계라 많이 부족하니 코드는 어렵지는 않을 것 같습니다.
다만 설명이 부족한데, 댓글로 질문 남겨주시면 답변 열심히 달겠습니다.
감사합니다.

Code
로그인이 필요합니다
0 / 1000
냥낭펀치
2021.11.04 22:30

초보자가 알기 쉬운 코드인 것 같습니다. 공유 감사합니다!

ssu통계학과
2021.11.04 22:53

읽기 어려운 부분이 없으셔서 다행입니다. 댓글 감사합니다. 

chloe★
2021.12.01 00:55

삭제된 댓글입니다

ssu통계학과
2021.11.05 14:42

잘 읽어주셔서 감사합니다.

pidy
2021.11.05 15:19

초보자나 입문자에게 정말 좋은 코드네요. 깔끔하게 잘 봤습니다 ㅎㅎ

ssu통계학과
2021.11.05 15:20

좋게 봐주셔서 감사합니다.

khoooo
2021.11.07 21:49

혹시 년도별 bar 그래프 정의하신거 설명 한 번만 부탁드려도 될까요?

ssu통계학과
2021.11.07 23:07

아마 이 함수 말씀하신 것 같습니다.
def barplots(variable):
    plot = train.groupby(variable)['number_of_rentals'].mean()
    sns.barplot(plot.index,plot.values)

1) train.groupby('year')은 train 데이터를 연도별로 묶어줍니다. 연도가 2018,2019,2020년이 있으니 3개의 묶음이 생기겠죠.
2) train.groupby('year')['number_of_rentals'].mean()은 그 묶음에서 number_of_rentals의 평균을 구하는 것 입니다.
다시말해 연도별로 number_of_rentals 변수의 평균값을 구할 수 있겠죠.
저 코드를 통해 나오는 데이터 프레임을 쉽게 설명하면 대략 아래와 같은 모양이 되겠네요. 
인덱스 / 값
2018 / 2018년 number_of_rentals 값 평균 
2019 / 2019년 number_of_rentals 값 평균 
2020 / 2020년 number_of_rentals 값 평균

3) sns.barplot(plot.index,plot.values)은 그래프로 출력하기 위한 부분입니다.
x값의 방금 구한 데이터 프레임의 인덱스, y값의 방금 구한 데이터 프레임의 값으로 이루워진 bar 그래프를 출력합니다.
4) 전체 코드는 함수로, 입력값 variable가 바뀔 때마다 입력값으로 데이터를 그룹핑한 평균을 바 그래프로 그려주는 함수입니다.

설명을 상세히 적어보려고 했는데 이해가 되셨으면 좋겠습니다.

DVWN
2021.11.08 00:54

보면서 공부가 많이 되는 것 같습니다 감사합니다 :)

ssu통계학과
2021.11.08 01:49

공부에 도움이 되어서 기쁘네요. 감사합니다.

PIG_DUCK
2021.11.08 15:55

EDA 하는법 나중에 참고해야겠네요!!

ssu통계학과
2021.11.08 18:14

좋게 봐주셔서 감사합니다!

grasping
2021.11.09 17:35

초보자가 읽기에 굉장히 좋은 글입니다. 
많은 도움이 되었습니다. 
감사합니다.

ssu통계학과
2021.11.09 17:41

도움이 되셨다니 기쁘네요. 좋게 봐주셔서 감사합니다!

네즈코
2021.11.10 21:38

좋은 코드와 바른 설명이었습니다.
많은 도움이 되었습니다. 감사합니다.

ssu통계학과
2021.11.10 23:53

좋게 봐주셔서 감사합니다!

mkk4726
2021.11.11 15:34

와 진짜 좋네요!! 도움 많이 받았습니다.

ssu통계학과
2021.11.12 17:03

좋게 봐주셔서 정말 감사합니다!

ikmarch28
2021.12.06 10:06

코드 잘 보고 갑니다:)
수고하셨습니다:)
질문이 있는데요. 혹시 drop함수를 사용해서 앞서 설명한 변수들을 제거한 이유가 뭘까요?

아래 코드를 보고 질문드립니다.
train_label = train['number_of_rentals']
train.drop(['date_time','wind_direction', 'Precipitation_Probability', 'month', 'number_of_rentals'], axis = 1, inplace= True)
test.drop(['date_time','wind_direction', 'Precipitation_Probability', 'month'], axis = 1, inplace= True)

ssu통계학과
2021.12.08 13:49

쉽게 말해서 필요없는 변수를 제거했다고 보시면 되겠습니다.
date_time, month 변수는 날짜와 달 변수로 분석에 직접적인 영향을 끼치지 못한다 판단했고(day변수와 중첩)
wind_direction, Precipitation_Probability 변수는 본문에 상세히 설명했습니다.
감사합니다.