파이썬(33)
-
[추천 알고리즘] ALS 개념, Basic 하게 feat. 코드 X
Alternating Least Squares 추천 알고리즘 중 하나로, 교대 최소 제곱법이라고도 불린다. 이번 포스팅에선 간단한 추천 알고리즘 개념들을 살펴보고, ALS의 장점을 알아보자. 추천 알고리즘 : 사용자가 선호할만한 아이템을 추측함으로써 사용자에게 적합한 특정 항목을 추천한다. 추천 알고리즘에는 두개의 기본 축이 존재한다. 협업 필터링과 콘텐츠 필터링이다. (1) 협업 필터링(CF, Collaborative Filtering) 유저-아이템 상호작용 데이터를 활용한다. "이 음식을 좋게 평가한 사람들은 또 어떤 음식을 좋아할까?" 즉, 특정 유저와 성향이 비슷한 사람들이 좋게 평가한 것을 추천하는 알고리즘이라고 보면 된다. (2) 콘텐츠 필터링(CB, Contents-Based-Filterin..
2022.05.23 -
[BOJ] #25083: 새싹
문제 아래 예제와 같이 새싹을 출력하시오. 입력 입력은 없다. 출력 새싹을 출력한다. ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | | 풀이 무턱대고 print()를 써버리면, 새싹 안에 있는 따옴표들을 제대로 처리해줄 수 없다. 큰/작은따옴표 앞에 \(역슬래시)를 써줘야 문자 따옴표로서 처리할 수 있다. print(" ,r\'\"7") print("r`-_ ,\' ,/") print(" \. \". L_r\'") print(" `~\/") print(" |") print(" |")
2022.05.17 -
[BOJ] #16139번: 인간-컴퓨터 상호작용
https://www.acmicpc.net/problem/16139 16139번: 인간-컴퓨터 상호작용 첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째 www.acmicpc.net 문제 승재는 인간-컴퓨터 상호작용에서 생체공학 설계를 공부하다가 키보드 자판이 실용적인지 궁금해졌다. 이를 알아보기 위해 승재는 다음과 같은 생각을 했다. '문자열에서 특정 알파벳이 몇 번 나타나는지 알아봐서 자주 나타나는 알파벳이 중지나 검지 위치에 오는 알파벳인지 확인하면 실용적인지 확인할 수 있을 것이다.' 승재를 도와 특정 문자열 S$S$,..
2022.05.13 -
[BOJ] #1934번: 최소공배수
문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있으며, 최소 공배수는 30이다. 두 자연수 A와 B가 주어졌을 때, A와 B의 최소공배수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 둘째 줄부터 T개의 줄에 걸쳐서 A와 B가 주어진다. (1 ≤ A, B ≤ 45,000) 출력 첫째 줄부터 T개의 줄에 A와 B의 최소공배수를 입력받은 순서대로 한 줄에 하나씩 출력한다. # pypy로 제출했다. import sys n = int(sys.stdin.readline()) def..
2022.05.12 -
[SparkSQL] 택시 데이터 다운/전처리/분석 feat. TLC
이전 포스팅에서 공부한 SparkSQL 지식을 바탕으로, 실제 Taxi 데이터를 전처리해보자. * 전처리란? 이상치 제거, 그룹화 등 데이터 분석이 용이하도록 데이터를 변형하는 과정을 말한다. TLC Trip Record Data에서 먼저 데이터를 받아오자. TLC는 미국의 택시 운전 데이터를 모아놓은 아주 유용한 사이트다. [https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page] TLC Trip Record Data - TLC TLC Trip Record Data The yellow and green taxi trip records include fields capturing pick-up and drop-off dates/times, pick-..
2022.05.10 -
[SparkSQL] Catalyst, Tungsten 작동 원리
Spark Backend : Catalyst, Tungsten Spark는 쿼리를 돌리기 위해 위의 두 가지 엔진을 사용한다. Catalyst는 쿼리문을 최적화 시키는데 이용하고, Tungsten은 RDD level에서 용량을 최적화시킨다. Process를 보면 다음과 같다. Spark의 조직도는 다음과 같다. 조직도를 보면 알 수 있다시피 Catalyst는 SQL, DataFrame이 Structured Data를 다룰 수 있게 하는 필수 모듈이다. 그렇다면 Catalyst가 구체적으로 어떤 기능을 하는지 살펴보자. "본 포스팅은 패스트캠퍼스의 강의를 듣고, 정리한 자료임을 밝힙니다." Catalyst의 기능 Logical Plan -> Physical Plan Logical Plan이란? 수행하는 모..
2022.05.09