본문 바로가기

빅데이터

(11)
미세먼지,날씨 ,기온에 따른 이용량 EDA - 따릉이(4) 이번에는 날씨( 비 , 눈 , 폭염) , 기온에 따른 이용량을 살펴볼게요 우선 미세먼지 , 초미세먼지를 살펴볼게요 위의 정부에서 발표한 자료를 기준으로 그룹핑 했습니다. 다음으로 데이터를 볼게요 nan값들이 20% 가까이 되는데 다른값으로 변환하면 오차가 많이 날 것 같아 우선 nan 값은 그대로 두고 , 정상치들을 가지고 분석해볼게요. 특이한게, 변환하다보니 미세먼지도 그렇고 초미세먼지도 매우나쁨이라고 나온 값은 없었습니다. ax=data0_0.plot(kind='bar',rot=0,figsize=(10,8),width=0.8) #,labels=sex.index for p in ax.patches: left,bottom,width,height=p.get_bbox().bounds ax.annotate('..
대여소위치별,이용시간에 따른 이용내역 EDA -따릉이(3) 네 안녕하세요, 저번시간에 이어서 구와 동별 이용내역을 살펴보겠습니다. 먼저 구별 대여소 개수를 살펴볼게요. data1=pd.DataFrame(df.groupby('구분')['대여소번호'].nunique().sort_values(ascending=False)) data1 이런식으로 나오네요, 한눈에 볼 수 있게 시각화 해볼게요. 우선 seaborn부터! 화려하지만 뭔가 부족한 것 같네요. 그럼 matplotlib 을 이용해볼게요. 강남구 , 송파구 , 영등포구 , 서초구 순입니다 , 유동인구도 많고 2~30 대가 많이 활동하는 지역이네요, 다음으로 대여소별 이용량을 살펴볼게요 data2=pd.DataFrame(df.groupby('대여소명')['동'].count().sort_values(ascending..
성별에 따른 이용내역 EDA -따릉이(2) 더보기 전처리가 끝난 데이터셋입니다. 630만개 정도 되는군요 seaborn을 이용해서 시각화 하면 라고 나오지만 , 우리는 수치를 보고 싶습니다 그래서 matplotlib 을 이용해보겠습니다 male 이용량이 많은 걸 볼 수 있네요. 380만 - 220만 인 160만 정도 이용량 차이네요 숫자로는 감이 잘 안오니 %로 확인해보겠습니다 코드는 다음과 같습니다. 왜 legend가 원하는 대로 우측상단에 안나오는지.. ㅜㅜ get_bbox().bounds 를 이용해서 숫자가 표기될 위치와 형식을 지정해줬습니다 # legend=['Female','Male'] ax=sex.plot(kind='bar',rot=0,color=['crimson','royalblue'],figsize=(10,8)) #,labels=s..
떠오르는 소형 모빌리티 [따릉이] -따릉이(1) 여러분 다 [따릉이] 이용해 보셨나요? 다들 아시겠지만 혹시 모르시는 분들을 위해 설명드릴게요ㅎㅎ [따릉이]는 "서울시가 친환경 교통수단인 자전거 이용의 활성화를 통해 시민건강 증진을 실현하고, 대기질 개선 효과를 유도하기 위해 서울시가 실시하고 있는 자전거 대여제도" 라고 합니다 ㅎㅎ 요즘 소형 모빌리티 서비스가 다양하게 출시되면서 많은 기대를 받고 있는데 그 중 가장 대표격인 따릉이에 대해 조사를 하면서 좀 더 편하고 유동적으로 직장과 집을 오갈 수 있게 될까? 라는 궁금증과 약간의 기대를 가지면서 분석을 해보게 됬습니다ㅎㅎ 따릉이를 키워드로 검색했을 때 뉴스들입니다. 따릉이 서비스가 출시한지 벌써 5년차인데 연간 두배이상씩 사용량이 늘어나면서 2019년에는 벌써 대여건수 3000만 건 돌파했다고 합..
Item-based 를 들어가기전에 (np.corrcoef, .corr 연습)2- 추천시스템(6) 이번에는 추천시스템 예제로 유명한 movie-lens data로 연습해보겠습니다. pivot_table을 이용해서 data set을 만들었습니다. 먼저 np.corrcoef 를 먼저해보겠습니다 기본꼴인 movie_user를 먼저 해보겠습니다 . nan이 있으니 결과값이 다 nan으로 나왔습니다 nan값을 0으로 채운 fillzero 를 계산해보겠습니다 다음으로 numpy 꼴로 바꾼 matrix를 해보겠습니다 nan값을 0으로 메꾼 fillzero를 numpy 배열로 바꿔서 계산해보겠습니다 결론 np.corrcoef는 numpy 배열이든 , DataFrame 형태든 상관없이 다 작동한다 np.corrcoef는 nan값이 있으면 nan으로 반환한다(무조건인지는 잘 모르겠습니다) 다음으로 .corr()를 해보..
Item-based 를 들어가기전에 (np.corrcoef, .corr 연습)- 추천시스템(5) item-based 란? 아이템에 대한 유저들의 평가를 기반으로 유사도를 측정하는 것입니다 예를 들어보겠습니다 이 예시는 코사인유사도를 기반으로 합니다. item-based 는 아이템들에 대한 유사도를 계산합니다. 마찬가지로 두 아이템에 대한 사용자들의 평가 점수를 벡터로 나타냅니다 . 공조와 라라랜드의 유사도를 구하려고 한다면, 이 둘을 모두 평가한 사용자는, 재석, 명수, 세형, 광희다. 각각 (5, 1, 4, 4)와 (4, 1, 4, 3)입니다. 중요한 것은 평가가 있는 값들로만 비교를 해야 한다는 것 입니다. 공조와 라라랜드의 유사도는 0.99로 상당히 높은 유사도를 보이는데, 즉, 공조를 좋아하는 사람은 라라랜드를 좋아할 확률이 높다는 말로 해석할 수 있습니다. 이렇게 , 아이템 기반에서도 아이..
Content-based-filtering(컨텐츠기반 필터링) - 추천시스템(4) 앞선 포스팅에서 말했듯이 content-base-Filtering 은 쉽고 정확도가 높은 반면 뻔한 것들이 추천된다는 단점이 있습니다. import pandas as pd import numpy as np pd.options.display.max_columns=100 pd.options.display.max_rows=1003 book=pd.read_csv('thelast_final_bool.csv') book.shape book 저는 우선 TF-IDF 로구현해보았습니다. TF-IDF란 무엇이냐. 또 TF-IDF 를 이해하기 위해서는 DTM/TDM 을 이해할 필요가 있습니다 DTM/TDM (Document Term Matrix) 단어들이 각 문서에 몇번 나왔는지 행렬로 구성 문서 단어 행렬(Document..
데이터 전처리 - 추천시스템(3) 이번에는 크롤링 한 데이터들 전처리를 해보겠습니다. content-based filtering 에 쓰일 book data 입니다 전처리 순서입니다. 중복된 책 포함 14만권에서 5000권 으로 줄이려고 목표했습니다. 1. 제목이 없는 데이터 ('no_title')는 제거 2. 저자가 없는 데이터 ('no_writer') 는 제거 3. 정가 30000원 이하만 남기기 - 현재 판매가가 아닌 정가기준(판매가는 변동이 있습니다) , 이상치제거 , 시리즈(ex : 해리포터 1~4권 패키지)제거 4. 한줄평갯수가 5개 이상인 데이터 만 남기기 - 리뷰보다 접근성이 좋은 한줄평리뷰 갯수가 5개 미만인 책은 인기가 없는 책으로 판단, 추천 우선순위에서 밀린다고 생각하였습니다, 후에 7개 or 10개로 조정을 고려하였..