분류 전체보기(145)
-
[Analytics] 미국 택시로 생존하는 방법 (2) feat. TLC
당신은 NEWYORK에서 택시 기사로 일하고 있다. 택시는 Yellow Taxi이다. 택시 기사로 생존하기 위해선 다음과 같은 노력이 필요하다. 1) 근무 시간 동안, 손님을 최대한 많이 태울 것 (손님) 2) 많은 요금 + 풍부한 팁 (요금) 3) 현금 결제는 소득에 포함시키지 않고 슬쩍하기 (세금 절약) 첫 번째 노력은 이전 포스팅에서 다뤘다. 이번 포스팅에선 많은 요금과 팁을 받는 방법, 현금 결제하는 손님을 받는 방법을 알아보겠다. [Data] 데이터는 SparkSQL 포스팅에서 전 처리한 Yellow Taxi 데이터(cleaned)를 사용하도록 하겠다. NEWYORK Yellow Taxi의 운행을 2021.01~2021.07까지 모두 모아놓은 데이터다. [Yellow Taxi Data: http..
2022.05.25 -
[추천 알고리즘] ALS 개념, Basic 하게 feat. 코드 X
Alternating Least Squares 추천 알고리즘 중 하나로, 교대 최소 제곱법이라고도 불린다. 이번 포스팅에선 간단한 추천 알고리즘 개념들을 살펴보고, ALS의 장점을 알아보자. 추천 알고리즘 : 사용자가 선호할만한 아이템을 추측함으로써 사용자에게 적합한 특정 항목을 추천한다. 추천 알고리즘에는 두개의 기본 축이 존재한다. 협업 필터링과 콘텐츠 필터링이다. (1) 협업 필터링(CF, Collaborative Filtering) 유저-아이템 상호작용 데이터를 활용한다. "이 음식을 좋게 평가한 사람들은 또 어떤 음식을 좋아할까?" 즉, 특정 유저와 성향이 비슷한 사람들이 좋게 평가한 것을 추천하는 알고리즘이라고 보면 된다. (2) 콘텐츠 필터링(CB, Contents-Based-Filterin..
2022.05.23 -
[SparkML] ALS, 추천 알고리즘 활용하기
ALS, Alternating Least Squares SparkML은 추천 알고리즘인 ALS를 지원한다. 영화 평점 데이터를 가져와서 직접 ALS 모델을 Spark에서 사용해보자. [ALS 개념] https://mengu.tistory.com/60 [추천 알고리즘] ALS 개념, Basic 하게 feat. 코드 X Alternating Least Squares 추천 알고리즘 중 하나로, 교대 최소 제곱법이라고도 불린다. 이번 포스팅에선 간단한 추천 알고리즘 개념들을 살펴보고, ALS의 장점을 알아보자. 추천 알고리즘 : 사용자가 mengu.tistory.com Basic Settings from matplotlib import font_manager, rc font_path = 'C:\\WINDOWS\..
2022.05.23 -
[SparkML] MLlib Parameter 튜닝 개념 및 코드
Parameter Tuning 머신러닝을 다뤄본 사람이라면 익숙한 개념일 것이다. 머신러닝을 알고리즘을 이용하더라도, 그 안의 변수를 어떻게 조정하냐에 따라서 모델의 성능이 달라진다. MLlib은 당연히도 Paramter Tuning 기능을 제공한다. 코드를 살펴보며 어떻게 튜닝을 하는지 살펴보자. [만약 Spark에 대해 아무것도 모른다면?] https://mengu.tistory.com/26?category=932924 [Spark] Apache Spark 개념 및 버전 Apache Spark에 대해 알아보자. Apache Spark란 빅데이터 처리를 위한 오픈소스 엔진(고속 분산처리)이다. 이미 아마존, 우버, 넷플릭스 등 다양한 기업에서 쓰이고 있다. Apache Spark 등장 배경 데이터가 m..
2022.05.22 -
[SparkML] MLlib Pipeline 구축하기
Spark MLlib은 Pipeline 컴포넌트를 지원한다. Pipeline은 머신러닝의 워크플로우를 말하기도 하며, 여러 Stage를 담고 있다. persist() 함수를 통해 저장도 가능하다. 그렇다면 실제 코드는 어떻게 짤까? 이전 포스팅에서 다뤘던 택시 데이터로, MLlib Pipeline을 구축해보자. 기본 세팅은 이전 Spark 포스팅들을 보면 이해할 수 있다. [데이터 https://mengu.tistory.com/50?category=932924] [SparkSQL] 택시 데이터 다운/전처리/분석 feat. TLC 이전 포스팅에서 공부한 SparkSQL 지식을 바탕으로, 실제 Taxi 데이터를 전처리해보자. * 전처리란? 이상치 제거, 그룹화 등 데이터 분석이 용이하도록 데이터를 변형하는 ..
2022.05.21 -
[BOJ] #10986번: 나머지 합
문제 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 10^6, 2 ≤ M ≤ 10^3) 둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 109) 출력 첫째 줄에 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력한다. 예제 입력 1 5 3 1 2 3 1 2 예제 출력 1 7 풀이 단순 부분합을 이용해서는 풀 수 없다. N이 10^6까지 주어질 수 있기 때문에 효율의 효율의 효율을 추구해야..
2022.05.21