Tech (580) 썸네일형 리스트형 [추천시스템] Cold Start 문제는 어떻게 해결할까? 🔊 이번 포스팅에서는 추천시스템의 고질적인 문제점이라고 할 수 있는 Cold Start 문제가 무엇이고 어떤 원인으로 발생하며 이에 대한 해결책들도 몇가지 소개해보려 한다. 해당 글에서는 코드로 구현되는 실용적인 내용이 아닌 주로 이론적인 내용을 소개하려고 한다. 참고로 이 글을 작성하기 위해서 Cold Start에 대한 Wikipedia 문서를 나만의 방법으로 해석하여 한국인들이 이해하기 쉽도록 하기 위해 작성되었다. 기타 참고 문헌은 글의 하단에 첨부했다. 목차는 다음과 같다. 1. Cold Start란? 2. Cold Start가 발생하는 3가지 원인 3. Cold Start를 해결하는 방법 1. Cold Start란? Cold Start란, 추천 시스템이 새로운 또는 어떤 유저들에 대한 충분한 정.. [SQL] HackerRank - Ollivander's Inventory 문제풀이 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 HackerRank의 Olivander's Inventory 문제를 풀어보려고 한다. 해당 문제는 필자가 약 1시간 동안 쩔쩔 매다가 몇 번의 시도 끝에도 풀리지 않아서 문제의 Discussion을 보고 이해한 문제다. 개인적으로 문제가 해리포터와 연관된 이야기로 나오길래 오히려 문제가 더 잘 읽히지도 않았고 헷갈렸다.(Discussion을 보니 몇 사람들이 문제 설명이 명시적이지 않다고 불만을 제기한 의견들도 꽤 되었다..) 이 문제를 통해서 배우게 된 점은 서브 쿼리를 작성할 때 메인 쿼리에서 활용한 테이블의 칼럼을 .. [SQL] HackerRank - Top Competitors 문제풀이 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 해커랭크 사이트의 Top Competitors 문제를 풀이해보자. 문제 원본은 여기를 클릭해 읽어보자. 문제에서 주어진 테이블들은 문제 원본을 살펴보고 여기에서는 어떤 출력의 내용은 요구하는지에 대해서 이해해보자. Julia just finished conducting a coding contest, and she needs your help assembling the leaderboard! Write a query to print the respectivehacker_idandnameof hackers who achie.. [SQL] 연속적인 JOIN 구문으로 해결하기(HackerRank - New Companies 문제) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 해커랭크 문제의 New Companies 문제 풀이에 대해 소개하려고 한다. 필자가 직접 풀이했던 연속적인 JOIN 구문을 사용하는 방법과 Discussion에 존재했던 다른 분의 JOIN 구문을 사용하지 않은 풀이도 소개해보려 한다. 이번 문제는 주어진 테이블 개수도 여러개이기 때문에 포스팅에서 소개한다면 너무 번잡해질 것 같아 문제에 대한 이해는 원본 문제인 여기를 참고하자. 원본 문제를 읽고 나면 문제에서 요구하는 사항이 정확히 무엇인지 파악할 수 있다. 각 Company의 Company_code, Founder, .. [서평] 초집중 회고록 얼마 전, 필자가 자주 즐겨보는 유투브의 체인지그라운드 채널에서 한 책을 추천해주는 영상을 보았다. 책에 대한 내용을 간략히 소개해주면서 일종의 동기부여를 해주는 영상인데 책 내용에 대해 개인적으로 매우 호기심이 생겨서 당장 서점에 달려가 책을 구매했다. 책 이름은 바로 '초집중' 이다. 위 영상을 보고 회고록을 읽는 것도 좋을 것 같다. 책의 제목에서 말하고 있는 부분이 상당히 흥미롭다고 생각했다. 초집중이라.. "과연 나는 무엇인가에 초집중하면서 하고 있는가?" 에 대해 가장 먼저 상기되었다. 개인적으로 학창시절, 공부잘하는 비법의 근원에는 집중력이라는 것에 있다는 생각이 문득 들었던 기억이 있다. 고등학교 시절, 영어 선생님이 자신이 이전에 교사 생활을 했던 학교에서 집중력이 대단한 학생을 가르쳤던.. [PySpark] 컨텐츠 기반 영화 추천 시스템 만들어보기 🔊 본 포스팅은 PySpark를 활용한 Kaggle Notebook을 필사하면서 배우게 된 코드 내용을 기반으로 포스팅했음을 알려드립니다. 또한 앞으로 소개될 PySpark의 문법에 대해서 생소하시다면 여기를 참고해 간단한 예시를 통해 이해를 할 수 있습니다. 이번 포스팅에서는 PySpark 그 중에서도 Spark SQL 과 Spark MLlib을 활용해 잠재요인 기반의 영화 추천 시스템을 구현해보려 한다. 활용한 데이터는 Kaggle의 무비렌즈 데이터의 movies, ratings 데이터를 필자가 직접 전처리한 데이터를 활용했다. 전처리된 데이터를 활용하려면 여기를 클릭해 다운로드 받자. 추천 시스템 중에는 컨텐츠 기반 추천, 협업 기반 추천 등의 여러 종류가 있지만 여기서는 다른 사용자들의 제품에 대.. [SQL] MySQL로 중앙값(Median) 찾아내기 - (HackerRank - Weather Observation Station 20 문제) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 MySQL을 활용해 Median값을 출력해보는 문제를 풀어보려 한다. Median이란, 잘 알다시피 중앙값을 의미하며 보통 데이터 분포가 치우쳐져 있을 때 데이터의 대푯값으로 자주 설정하는 척도이다. 이런 중앙값을 SQL로 계산하는 방법에 대해 알아보자. 문제의 원본은 여기를 참조하자. 문제의 요구사항은 다음과 같다. A median is defined as a number separating the higher half of a data set from the lower half. Query themedianof theN.. [SQL] CASE WHEN으로 Pivot Table 만들기(HackerRank - Occupations 문제) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 MySQL의 CASE WHEN 구문으로 Pivot Table을 만들어 문제를 해결하는 방법에 대해 소개하려 한다. 활용하려는 문제는 HackerRank 사이트의 Occupations 문제이다. 원본은 여기를 참조하자. 우선 Pivot table이란 무엇일까? 직관적으로 말하면 Row에 있는 값들을 Column으로 변형한 테이블을 말하는데, Pandas의 pivot(), pivot_table() 메소드를 활용해본 사람들에겐 익숙할 것이다. Pivot table의 형태는 다음과 같다. 그렇다면 이것을 CASE WHEN 구문으로.. [PySpark] PySpark로 Regression 모델 만들기 🔊 본 포스팅은 PySpark를 활용한 Kaggle Notebook을 필사하면서 배우게 된 코드 내용을 기반으로 포스팅했음을 알려드립니다. 또한 앞으로 소개될 PySpark의 문법에 대해서 생소하시다면 여기를 참고해 간단한 예시를 통해 이해를 할 수 있습니다. 이번 포스팅에서는 PySpark 그 중에서도 Spark SQL 과 Spark MLlib을 활용한 머신러닝 회귀 모델을 만드는 방법에 대해 소개하려고 한다. 활용한 데이터는 California Housing 데이터를 사용했다. 데이터는 여기를 눌러 하단의 Input 목차를 보면 다운로드 받을 수 있다. 이전 포스팅에서 실습해봤던 분류 모델과 큰 프레임이 다르진 않다. 따라서 이번 포스팅에서는 수치형 변수에 주로 적용하는 기술통계량 값을 보는 방법이나.. [SQL] 복잡한 서브쿼리 문제풀이(HackerRank - Challenges 문제) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 여러가지 서브쿼리를 이용해야 해결할 수 있는 HackerRank의 Challenges 문제를 같이 풀어보려고 한다. 우선 문제 설명과 출력 형태를 살펴보자. 문제 원본을 살펴보려면 여기를 클릭해보자. 문제 설명은 다음과 같다. Julia asked her students to create some coding challenges. Write a query to print the hacker_id, name, and the total number of challenges created by each student. Sort.. [PySpark] 타이타닉 데이터로 분류 모델 만들기 🔊 본 포스팅은 PySpark를 활용한 Kaggle Notebook을 필사하면서 배우게 된 코드 내용을 기반으로 포스팅했음을 알려드립니다. 또한 앞으로 소개될 PySpark의 문법에 대해서 생소하시다면 여기를 참고해 간단한 예시를 통해 이해를 할 수 있습니다. 이번 포스팅에서는 PySpark 그 중에서도 Spark SQL 과 Spark MLlib을 활용한 머신러닝 분류 모델을 만드는 방법에 대해 소개하려고 한다. 활용한 데이터는 머신러닝에 입문할 때 가장 많이 사용되는 타이타닉의 Train 데이터를 사용했다. 1. 필요한 라이브러리와 데이터 로드 가장 먼저 할 일은 데이터 로드와 모델 빌딩 시 사용될 Spark SQL, Spark MLlib의 여러가지 메소드들을 임포트하자. 참고로 PySpark를 사용해.. [SQL] Second Highest Salary(Leetcode - 176번) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 Leetcode임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 Leetcode 사이트를 방문해 보세요! 이번 포스팅은 Leetcode 176번 문제인 'Second Highest Salary' 문제를 풀어보려 한다. 문제의 난이도는 비교적 어렵지 않지만 이 문제를 포스팅에 게시하는 이유는 LIMIT 과 OFFSET 문법을 사용 시 주의해야 할 점을 소개하기 위함이기 때문이다. 1. 서브쿼리를 사용해서 풀기! 우선 문제에서 요구하는 것은 문제 이름에도 나와 있듯이 2번째로 가장 높은 Salary를 출력하기만 하면 된다. 문제에서 주어진 테이블 형태를 자세히 들여다보자. 2번째로 가장 높은 Salary를 출력하기 위한 정석의 방법은 "1번째로 가장 높은.. [PySpark] Spark SQL 튜토리얼 🔊 본 포스팅은 Apache Spark 3.0.1 공식 문서를 직접 해석하여 필자가 이해한 내용으로 재구성했습니다. 혹여나 컨텐츠 중 틀린 내용이 있다면 적극적인 피드백은 환영입니다! : ) 이번 포스팅에서 다루어 볼 컨텐츠는 바로 Spark로 SQL을 이용할 수 있는 Spark SQL에 대한 내용이다. Spark는 이전 포스팅에서도 언급했다시피 기본적으로 RDD 자료구조를 갖고 있지만 Python의 Pandas 라이브러리에서 제공하는 DataFrame과 비슷한 구조의 DataFrame을 지원하고 있다.(이름도 DataFrame 으로 동일하다.) 추후에 다루겠지만 Spark는 Spark의 DataFrame을 Pandas의 DataFrame 형태로 바꾸어주는 것도 지원한다. 그럼 이제 Spark SQL을 .. [SQL] HAVING, WHERE, FROM 절에 서브쿼리 이용하기(HackerRank - Top Earners 문제) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 HackerRank 임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 HackerRank 사이트를 방문해 보세요! 이번 포스팅에서는 HackerRank 사이트의 SQL 문제중 'Top Earners' 문제에 대한 서로 다른 3가지 풀이방법에 대해 소개해보려 한다. 이 3가지 풀이의 공통점은 서브쿼리를 사용했다는 점인 반면 차이점은 서브쿼리를 SQL 구문의 어느 위치 즉, HAVING 다음인지, WHERE 다음인지, FROM 다음인지에 따라 조금씩 달라진다는 점이다. 우선 풀이할 문제와 문제가 요구하는 사항에 대해서 알아보자. 문제 원본을 보기 위해서는 여기를 클릭해 확인해보자. 위 테이블이 주어졌을 때, 문제사항은 다음과 같다. We define an.. [PySpark] Apache Spark 와 RDD 자료구조 🔊 본 포스팅은 Apache Spark 3.0.1 공식 문서를 직접 해석하여 필자가 이해한 내용으로 재구성했습니다. 혹여나 컨텐츠 중 틀린 내용이 있다면 적극적인 피드백은 환영입니다! : ) 이번 포스팅에서는 대용량 데이터 병렬 처리를 위한 통합 분석 엔진인 Apache Spark와 Apache Spark의 기본 자료 구조인 RDD 자료구조에 대해 소개하려 한다. Apache Spark는 구조화된 데이터를 처리하기 위한 Spark SQL과 머신러닝을 위한 ML Lib, 그래프 처리를 위한 Graph X, 실시간 처리와 방대한 연산을 위한 Structured Streaming 도구도 제공한다. 또한 Apache Spark는 본래 Scala 언어로 만들어졌지만 Java, R, Python 등과 같은 다양한 .. [SQL] MySQL - Window Function으로 문제풀기(Leetcode - 180, 184, 185번) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 Leetcode임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 Leetcode 사이트를 방문해 보세요! 이번 포스팅에서는 MySQL 8.0 버전부터 호환이 가능한 Window Function을 이용해 문제를 풀어보자. 만약 MySQL 8.0 이하 버전이라면 MSSQL을 활용해 Window Function을 구현할 수 있다. Window Function에 대해서는 공식 문서를 참조해보자. 상당히 유용한 기능들이 많다. 이번에는 총 3개의 문제를 풀어볼텐데 난이도가 어느 정도 있는 문제들이다. 따라서 자세한 문제는 여기를 클릭해 180번, 184번, 185번 문제를 자세히 읽어보자. # 180번 먼저 문제와 문제에서 요구하는 출력형태를 살펴보자. Wr.. [SQL] MySQL - 나만의 Function 만들기(Leetcode - 177번) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 Leetcode임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 Leetcode 사이트를 방문해 보세요! 이번 포스팅에서는 SQL도 Python과 같은 다른 프로그래밍 언어들처럼 사용자 함수를 만드는 방법에 대해 알아보고 이를 이용해 문제를 풀어보려 한다. 여기서는 MySQL 기준으로의 사용자 함수 만드는 방법에 대해서만 소개한다. 우선 MySQL로 사용자 함수를 만드는 구조에 대해서 알아보자. 위와 같은 구조를 간단히 설명하면 CREATE FUNCTION~ 첫 번째 RETURNS 부분은 인풋 변수와 아웃풋으로 내뱉을 값의 type을 정하는 부분이며 BEGIN ~ END 사이에는 출력값을 내뱉기 위한 연산과 변수를 할당하는 부분이라 할 수 있다. 구현.. [SQL] - Delete, Update문 사용하기(Leetcode - 196, 627번) 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 Leetcode임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 Leetcode 사이트를 방문해 보세요! 이번 포스팅에서 소개할 문제와 풀이법은 Leetcode의 196번, 627번 문제이다. 특이하게도 이 문제들은 SELECT 문을 사용하는 것이 아닌 DELETE, UPDATE 문을 사용해야 한다. 참고로 SELECT, DELETE, INSERT, UPDATE는 DB의 DML(Data Manipulation Language)이다. 문제에 대한 세부적인 사항은 Leetcode 사이트의 해당 문제를 참고하자. 먼저 196번 문제와 문제에서 요구하는 출력 형태를 살펴보자. Write a SQL query to delete all duplicate emai.. [서평] 움직임의 힘 회고록 얼마 전인 2020년 연말, 한 지인이 책을 선물해주었다. 솔직히 책 선물은 처음 받아 보았다. 선물해준 책 이름은 '움직임의 힘' 이었다. 책을 선물해준 지인이 내가 흥미를 가질만한 책을 선물한다고 넌지시 말했었는데, 책 제목을 받자마자 내 흥미를 자극했다. 그래서 바로 시간이 날 때마다 책을 읽기 시작했고 내용이 정말 유익한 것 같아 회고록으로 공유하려고 한다. 책 제목의 '움직임'은 걷기, 달리기부터 축구, 농구와 같은 구기종목 뿐만 아니라 웨이트 트레이닝 등 그야말로 신체를 움직이고 근육을 활성화시키는 모든 움직임을 포괄적으로 의미한다. 저자는 인간이 이러한 움직임 활동을 함으로써 어떤 효과를 얻을 수 있는지에 대해 강조한다. 운동은 마약이다? 위 사진 속 식물의 이름은 무엇일까? 일명 '마리화나.. [SQL] MySQL - SET 과 서브쿼리 사용하기 🔊 본 포스팅에서 사용되는 테이블의 자료와 출처는 프로그래머스임을 밝힙니다. 더 다양한 SQL 문제를 풀어보시려면 프로그래머스 사이트를 방문해보세요! 이번 포스팅에서 소개할 SQL 구문은 프로그래머스 SQL 고득점 Kit의 Group by 카테고리의 입양 시각 구하기(2) 문제 풀이에 사용된 구문이다. 문제 풀이에 사용될 테이블과 문제에 대한 자세한 설명은 해당 문제의 링크를 참고하자. 문제에서 요구하는 사항은 다음과 같다. 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 이 때 활용할 방법은 SET 이라는 문법을 이용해 새로운 변수를 할당.. 이전 1 ··· 19 20 21 22 23 24 25 ··· 29 다음