전체 글

Garbage in, garbage out
파이썬・ML

Selenium, BeautifulSoup으로 무한스크롤 데이터 가져오기

무한스크롤은 스크롤이 뷰포트 하단에 도달할 때 서버에서 새 데이터를 불러오는 식으로 구현됩니다. 예를 들어보겠습니다. 현재 화면에는 5개의 컨텐츠가 보이는 상태입니다. 하지만 스크롤을 아래로 내리는 순간 로딩 스피너가 등장하고 컨텐츠 5개가 추가되었습니다. 무한스크롤 방식으로 새로운 데이터를 계속 불러오는 것입니다. 하지만 Selenium을 사용해 이런 식으로 추가되는 데이터를 가져오려면 어떻게 해야할까요? 초기 데이터 이후에 추가적인 데이터를 가져오려면 화면을 아래로 스크롤해 추가 데이터들이 화면에 렌더링 되도록 Selenium API를 사용해야 합니다. 여러 방법들이 존재하지만 대표적으로 while문을 사용해서 로직을 구현할 수 있습니다. 컨텐츠가 추가될 때마다 body 태그의 높이 또한 증가한다는 ..

파이썬・ML

CountVectorizer, TfidfVectorizer의 min_df와 max_df 매개변수 이해하기

문장이든 이미지든 혹은 음성 데이터든 벡터로 표현만 할 수 있다면 데이터간 유사도를 구할 수 있습니다. 이때 sklearn의 CountVectorizer과 TfidfVectorizer를 사용합니다. 그 중 눈에 가는 두 매개변수가 있었는데요, 바로 min_df와 max_df입니다. 이번 포스팅에서는 이 2가지 인자에 대해 알아보도록 하겠습니다. 우선 max_df부터 살펴보겠습니다. max_df는 특정 기준 이상 등장하는 단어를 제거하기 위해 사용합니다. 불용어 처리 기준을 설정하는 것과 같은 맥락입니다. max_df=0.5는 문서의 50%를 초과하는 단어를 무시한다는 의미입니다. max_df=30은 문서에서 30번을 초과해 등장한 단어를 무시한다는 의미입니다. 이처럼 float, int형으로 값을 넘길 ..

파이썬・ML

[ML]mlxtend 모듈로 결정 경계 확인하기

이번 포스팅에서는 mlxtend 모듈에서 제공하는 결정 경계 기능에 대해 알아보도록 하겠습니다. 사이킷런 iris 데이터셋을 사용했습니다. 모듈 설치 pip install mlxtend 모듈 사용 plot_decision_regions 메서드를 사용해서 결정 경계를 시각화할 수 있습니다. 보다 더 자세한 내용은 docs를 참고하겠습니다. from mlxtend.plotting import plot_decision_regions plt.figure(figsize=(14, 8)) plot_decision_regions( X=iris['data'][:, 2:], y=iris['target'], clf=iris_tree_clf, legend=2 ); 결과 모델이 데이터셋을 어떻게 분류했는지 확인할 수 있습니다.

태블로

태블로 작동 순서(Order of Operations) 알아보기

다음은 태블로 기능의 작동 순서입니다. 태블로를 사용해서 결과물을 만들었는데 의도했던 대로 결과가 나오지 않는 경우가 있습니다. 이때 태블로의 작동 순서를 참고하면 문제의 원인을 찾을 수 있습니다.

태블로

태블로 계산된 필드 사용하기(feat. 매개변수)

태블로에서는 연산자와 논리 함수 등을 사용해서 계산된 필드를 만들 수 있는데요, 이번 포스팅에서는 기존 필드를 통해 새로운 필드값을 만들어보도록 하겠습니다. 연산자 파이썬의 산술연산자처럼 태블로에서도 동일한 연산자를 사용해 사칙연산을 수행할 수 있습니다. 다음은 기존 필드값들을 활용해 새로운 필드를 만들어 새로운 비즈니스 KPI를 구하는 예제입니다. 새로운 필드(계산된 필드)를 만들면서 연산자를 사용했습니다. 논리 함수 태블로의 IF, IIF, CASE 논리 함수를 사용해서 새로운 필드값을 만들 수도 있습니다. 다음 예제는 IF 함수를 사용해 2억 이상 혹은 미만인 제품을 시각화하는 예제입니다. 새롭게 계산한 필드를 색상 마크로 설정하면 색이 다르게 나타납니다. 동일한 그래프를 IIF 함수를 사용해서도 ..

태블로

태블로 대시보드 만들기

이번 포스팅에서는 태블로를 사용해서 대시보드를 구성하는 방법에 대해 알아보도록 하겠습니다. 동작 기능 위와 같은 대시보드에 동작 기능을 추가해보겠습니다. 필터 ✅ 첫 번째 필터 우선 다음과 같이 연간 매출 시트를 클릭하면 나머지 시트들이 필터링 되는 동작기능부터 살펴보도록 하겠습니다. 결과는 다음과 같습니다. 연간 매출 테이블의 각 연도를 선택하면 연도에 해당하는 각 시트별 데이터가 필터링됩니다. ✅ 두 번째 필터 또 다른 필터 기능에 대해 알아보겠습니다. 이번에는 제품 중분류 매출을 클릭하면 월간 매출 시트가 필터링 되는 예제입니다. 필터링한 결과 2019년 제품 중분류별 월간 매출 추이를 확인할 수 있습니다. 이때 제품 중분류 항목을 복수 선택하면 월간 매출 시트는 합산된 결과를 보여줍니다. 하이라이..

알고리즘

[SQL]프로그래머스 Lv.3 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기

✅ 코드 SELECT CONCAT( '/home/grep/src/' , BOARD_ID , '/' , FILE_ID , FILE_NAME , FILE_EXT) AS FILE_PATH FROM USED_GOODS_FILE WHERE BOARD_ID = (SELECT BOARD_ID FROM USED_GOODS_BOARD ORDER BY VIEWS DESC LIMIT 1) ORDER BY FILE_ID DESC; WHERE문 단일행 서브쿼리를 사용한 풀이입니다.

알고리즘

[SQL]프로그래머스 Lv.4 년, 월, 성별 별 상품 구매 회원 수 구하기

✅ 코드 # GENDER 컬럼 NULL값 제외 WITH GENDER_INFO_Y AS ( SELECT USER_ID , GENDER FROM USER_INFO WHERE GENDER IS NOT NULL ) SELECT YEAR(SALES_DATE) AS YEAR , MONTH(SALES_DATE) AS MONTH , UI.GENDER AS GENDER , COUNT(DISTINCT UI.USER_ID) AS USERS FROM GENDER_INFO_Y AS UI INNER JOIN ONLINE_SALE AS OS ON UI.USER_ID = OS.USER_ID GROUP BY YEAR , MONTH , GENDER ORDER BY YEAR , MONTH , GENDER WITH문으로 우선 성별 컬럼의 ..

truezero
데이터 공부하는 제이슨